Locating Causes of Program Failures
Holger Cleve and Andreas Zeller

Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Informatik Campus des Saarlandes
Campus E9 1 (CISPA)
66123 Saarbrücken
E-mail: zeller @ cs.uni-saarland.de
Telefon: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en franšais English home page
   Holger Cleve and Andreas Zeller. Locating Causes of Program Failures. Proc. 27th International Conference on Software Engineering (ICSE 2005), St. Louis, Missouri, May 2005.
"Cause transitions are not only good locations for fixes—they actually locate the defects that cause the failure. In fact, we show that cause transitions are significantly better locators of defects than any other methods previously known." (Case study: The GCC failure)
"Overall, to locate the defect, the programmer had to follow just one backwards dependency from the last isolated cause transition. In numbers, this translates into just 2 lines out of 338,000 lines of GCC code. Even if we assume the programmer examines all 9 transitions and all direct dependencies, the effort to locate the GCC defect is minimal." (Introduction)

Get the paper in PDF format (10 pages, 322k).


Which is the defect that causes a software failure? By comparing the program states of a failing and a passing run, we can identify the state differences that cause the failure. However, these state differences can occur all over the program run. Therefore, we focus in space on those variables and values that are relevant for the failure, and in time on those moments where cause transitions occur—moments where new relevant variables begin being failure causes: “Initially, variable argc was 3; therefore, at shell_sort(), variable a[2] was 0, and therefore, the program failed.” In our evaluation, cause transitions locate the failure-inducing defect twice as well as the best methods known so far.


  1. Introduction
  2. A Sample Failure
  3. Searching in Space
  4. Searching in Time
  5. Case Study: The GCC Failure
  6. Complexity and other Issues
  7. Evaluation: The Siemens Testsuite
    • Earlier Results and Related Work
    • Variables and Measures
    • Improved Strategies
    • Experiment Setup
    • Results and Analysis
    • Threats to Validity
  8. Conclusion and Consequences
  9. References
  10. Formal Definitions


See Also...

<webmaster@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de/papers/icse2005/ · Stand: 2017-01-03 21:10