Abstract

Notes

Introduces an algorithm for automatically discovering minimal test input that generates a failure

Test cases are run in sequence, with adjustments to the test input, logging which inputs fail and which succeed

The differences between the inputs are compared until a minimal set is found

Input is adjusted in a divide-and-conquer way. A large failing input is first given, and split into two. If one of them fails, then divide that. If none fail, then the granularity of the input is increased, and smaller inputs and their complements are tested.

Case studies were performed on the Mozilla web browser, and GCC

*

BibTeX Reference

@ARTICLE{zeller02TSE,
title={Simplifying and isolating failure-inducing input},
author={Zeller, A. and Hildebrandt, R.},
journal={Software Engineering, IEEE Transactions on},
year={2002},
month={Feb},
volume={28},
number={2},
pages={183-200},
abstract={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},
keywords={online front-ends, program debugging, program testing500 MHz, HTML, Mozilla web browser, delta debugging algorithm, failure-inducing input, test case, user actions},
doi={10.1109/32.988498},
ISSN={0098-5589}, }