Finding Failure-Inducing Changes using Change Classification

Maximilian Stoerzer, Barbara G. Ryder, Xiaoxia Ren, Frank Tip · 2005

Testing and code editing are interleaved activities during program development. When tests fail unexpectedly, the changes that caused the failure are not always easy to find. Change classification focuses programmer attention on those changes most likely to be failure-inducing. We define several classifiers that automatically label changes as Red, Yellow, or Green, indicating the likelihood that they have contributed to a test failure. We implemented our change classification tool JUnit/CIA as an extension to the JUnit component within Eclipse, and evaluated its effectiveness in two case studies. Initial results indicate that change classification succeeds in focusing programmer attention on failure-inducing changes, thus improving on manual debugging techniques. Furthermore, change classification can determine those changes that can be committed safely to a version control repository without breaking any tests, even if a developer’s local workspace contains failing tests.

Read the paper · More papers on PaperTik