Finding Failure Causes through Automated Testing
Holger Cleve, Andreas Zeller · 2000
A program fails. Under which circumstances does this failure occur? One single algorithm, the delta debugging algorithm, suffices to determine these failure-inducing circumstances. Delta debugging tests a program systematically and automatically to isolate failure-inducing circumstances such as the program input, changes to the program code, or executed statements. Keywords: Testing and debugging, debugging aids, combinatorial testing, execution tracing 1 Debugging by Testing Debugging falls into three phases: reproducing a failure, finding the root cause of the failure, and correcting the error such that the failure no longer occurs. While failure reproduction and correction are important issues, it is the second phase, finding the root cause, which is the most significant. Early studies have shown that finding the root cause accounts for 95% of the whole debugging effort [6]. The common definition of a cause is some preceding event without which the effect would not have occurred....