Simplifying and Isolating Failure-Inducing Input
Andreas Zeller and Ralf Hildebrandt

Software Engineering Chair (Prof. Zeller)
Saarland University – Computer Science
Saarland Informatics Campus
Campus E9 1 (CISPA)
66123 Saarbrücken, Germany
E-mail: zeller @
Phone: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en franšais English home page
   Andreas Zeller and Ralf Hildebrandt. 'Simplifying and Isolating Failure-Inducing Input. IEEE Transactions on Software Engineering 28(2), February 2002, pp. 183-200.
"We recommend that automated test case simplification be an integrated part of automated testing. Each time a test fails, Delta Debugging could be used to simplify and isolate the circumstances of the failure." (Conclusion)

Get the paper in PDF format (248k, 17 pages).


Given some test case, a program fails. Which circumstances of the test case are responsible for the particular failure? The Delta Debugging algorithm generalizes and simplifies some failing test case to a minimal test case that still produces the failure; it also isolates the difference between a passing and a failing test case. 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.


Automated debugging, debugging aids, testing tools, combinatorial testing, diagnostics, tracing


  1. Introduction
  2. Testing for Change
    • The Change that Causes a Failure
    • Decomposing Changes
    • Test Cases and Tests
  3. Minimizing Test Cases
    • Minimal Test Cases
    • A Minimizing Algorithm
    • Properties of ddmin
  4. Case Studies
    • GCC gets a Fatal Signal
    • Mozilla Cannot Print
    • Minimizing Fuzz
    • The Precision Effect
  5. Isolating Failure-Inducing Differences
    • Isolation Illustrated
    • An Isolating Algorithm
    • Properties of dd
  6. Case Studies Revisited
    • Isolating GCC Input
    • Isoalting Fuzz Input
  7. Related Work
  8. Future Work
  9. Conclusion


See Also...

<> · · Updated: 2014-03-23 23:44