|
Simplifying Failure-Inducing Input
Ralf Hildebrandt and Andreas Zeller
|
|
Proc. ACM SIGSOFT
International Symposium on Software Testing and Analysis (ISSTA
2000), Portland, Oregon, August 2000, pp. 135-145.
Please note: A revised and expanded
version of this paper is now available.
Abstract
Given some test case, a program fails. Which part of the test case is
responsible for the particular failure? We show how our test
case minimization algorithm generalizes and simplifies some failing
input to a minimal test case that produces the failure.
In a case study, the Mozilla web browser crashed after 95 user
actions. Our prototype implementation automatically simplified the
input to 3 relevant user actions. Likewise, it simplified 896 lines
of HTML to the single line that caused the failure. The case study
required 139 automated test runs, or 35 minutes on a 500 MHz PC.
Categories and Subject Descriptors
D.2.5 [Software Engineering]: Testing and debugging -
debugging aids, diagnostics, testing tools, tracing
General Terms
Automated debugging, combinatorial testing
Contents
- Introduction
- Configurations and Tests
- Minimality of Test Cases
- A Minimizing Algorithm
- Case Study: GCC gets a Fatal Signal
- Case Study: Minimizing Fuzz
- Case Study: Mozilla Cannot Print
- Related Work
- Future Work
- Conclusion
Download
PDF version
(218k)
PostScript version
(74k, compressed)
Slides of ISSTA 2000 talk
(PDF, 218k)
Related Work
Ralf's diploma thesis with lots of material on the case studies
More on Delta Debugging