This Article 
 Bibliographic References 
 Add to: 
Simplifying and Isolating Failure-Inducing Input
February 2002 (vol. 28 no. 2)
pp. 183-200

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 the 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 three 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.

[1] “Mozilla web site,” http:/, 2001.
[2] “Mozilla Web Site: The Gecko BugAThon,” , 2001.
[3] A. Zeller, “Yesterday, My Program Worked. Today, It Does Not. Why?” Proc. Seventh European Software Eng. Conf., Seventh ACM SIGSOFT Symp. Foundations of Software Eng., (ESEC/FSE '99), O. Nierstrasz and M. Lemoine, eds. vol. 1687, pp. 253-267, Sept. 1999.
[4] Test Methods for Measuring Conformance to POSIX. 1991, ANSI/IEEE Standard 1003.3-1991. ISO/IEC Standard 13210, 1994.
[5] M. Vertes, “Xlab—A Tool to Automate Graphical User Interfaces,” Linux Weekly News, May 1998, Archived as
[6] B.P. Miller, L. Fredrikson, and B. So, "An Empirical Study of the Reliability of Unix Utilities," Comm. ACM, Dec. 1990, pp. 32-44.
[7] B.P. Miller, D. Koski, C.P. Lee, V. Maganty, R. Murthy, A. Natarajan, and J. Steidl, “Fuzz Revisited: A Re-examination of the Reliability ofUNIXUtilities and Services,” technical report, Univ. of Wisconsin, Computer Science Dept., Nov. 1995.
[8] D.R. Slutz, “Massive Stochastic Testing of SQL,” Proc. 24th Int'l Conf. Very Large Data Bases (VLDB '98), A. Gupta, O. Shmueli, and J. Widom, eds., pp. 618-622, Aug. 1998.
[9] D.B. Whalley, “Automatic Isolation of Compiler Errors,” ACM Trans. Programming Languages and Systems, vol. 16, no. 5, pp. 1648-1659, 1994.
[10] A. Zeller and G. Snelting, “Unified Versioning through Feature Logic,” ACM Trans. Software Eng. and Methodology, vol. 6, no. 4, pp. 398-441, Oct. 1997.
[11] M. Weiser, “Programmers Use Slices when Debugging,” Comm. ACM, vol. 25, no. 7, pp. 446-452, 1982.
[12] F. Tip, “A Survey of Program Slicing Techniques,” J. Programming Languages, vol. 3, no. 3, pp. 121-189, Sept. 1995.
[13] H. Agrawal and J.R. Horgan, "Dynamic Program Slicing," Proc. ACM SIGPLAN '90 Conf. Programming Language Design and Implementation, pp. 246-256, June 1990.
[14] T. Gyimóthy, Á. Beszédes, and I. Forgács, “An Efficient Relevant Slicing Method for Debugging,” Proc. Seventh European Software Eng. Conf., Seventh ACM SIGSOFT Symp. Foundations of Software Eng., (ESEC/FSE '99), O. Nierstrasz and M. Lemoine, eds. vol. 1687, pp. 303-321, Sept. 1999.

Index Terms:
Automated debugging, debugging aids, testing tools, combinatorial testing, diagnostics, tracing.
A. Zeller, R. Hildebrandt, "Simplifying and Isolating Failure-Inducing Input," IEEE Transactions on Software Engineering, vol. 28, no. 2, pp. 183-200, Feb. 2002, doi:10.1109/32.988498
Usage of this product signifies your acceptance of the Terms of Use.