Isolating Cause-Effect Chains
from Computer Programs
Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Informatik Campus des Saarlandes
Campus E9 1 (CISPA)
E-mail: zeller @ cs.uni-saarland.de
Telefon: +49 681 302-70970
Andreas Zeller. Isolating Cause-Effect
Chains from Computer Programs. Proc. ACM SIGSOFT
10th International Symposium on the Foundations of Software
Engineering (FSE-10), Charleston, South Carolina,
November 2002. Winner of the
ACM SIGSOFT Distinguished Paper Award.
"Cause-effect chains explain the causes of program failures automatically and effectively. All that is required is an automated test, two comparable program runs and a means to access the state of an executable program. Although relying on several test runs to prove causality, the isolation of cause-effect chains requires no manual interaction and thus saves valuable developer time." (Conclusion)
Get the paper in PDF format (580k, 10 pages).
AbstractConsider the execution of a failing program as a sequence of program states. Each state induces the following state, up to the failure. Which variables and values of a program state are relevant for the failure? We show how the Delta Debugging algorithm isolates the relevant variables and values by systematically narrowing the state difference between a passing run and a failing run - by assessing the outcome of altered executions to determine wether a change in the program state makes a difference in the test outcome. Applying Delta Debugging to multiple states of the program automatically reveals the cause-effect chain of the failure - that is, the variables and values that caused the failure.
In a case study, our prototype implementation successfully narrowed down the cause-effect chain for a failure of the GNU C compiler: "Initially, the C program to be compiled contained an addition of 1.0; this caused an addition operator in the intermediate RTL representation; this caused a cycle in the RTL tree - and this caused the compiler to crash."
KeywordsAutomated debugging, program analysis, combinatorial testing, tracing
See Also...<firstname.lastname@example.org> · http://www.st.cs.uni-saarland.de/papers/fse2002/ · Stand: 2017-01-03 21:10