Capítulo de livro Revisado por pares

ReCrash: Making Software Failures Reproducible by Preserving Object States

2008; Springer Science+Business Media; Linguagem: Inglês

10.1007/978-3-540-70592-5_23

ISSN

1611-3349

Autores

Shay Artzi, Sunghun Kim, Michael D. Ernst,

Tópico(s)

Software Engineering Research

Resumo

It is very hard to fix a software failure without being able to reproduce it. However, reproducing a failure is often difficult and time-consuming. This paper proposes a novel technique, ReCrash, that generates multiple unit tests that reproduce a given program failure. During every execution of the target program, ReCrash stores partial copies of method arguments in memory. If the program fails (e.g., crashes), ReCrash uses the saved information to create unit tests reproducing the failure. We present ReCrashJ, an implementation of ReCrash for Java. ReCrashJ reproduced real crashes from Javac, SVNKit, Eclipsec, and BST. ReCrashJ is efficient, incurring 13%–64% performance overhead. If this overhead is unacceptable, then ReCrashJ has another mode that has negligible overhead until a crash occurs and 0%–1.7% overhead until the crash occurs for a second time, at which point the test cases are generated.

Referência(s)