Finding and fixing bugs are time-consuming activities in software development. Spectrum-based fault localization aims to identify the faulty position in source code based on the execution trace of test cases. Failing test cases and their assertions form test oracles for the failing behavior of the system under analysis. In this paper, we propose a novel concept of spectrum driven test case purification for improving fault localization. The goal of test case purification is to separate existing test cases into small fractions (called purified test cases) and to enhance the test oracles to further localize faults. Combining with an original fault localization technique (e.g., Tarantula), test case purification results in better ranking the program statements. Our experiments on 1800 faults in six open-source Java programs show that test case purification can effectively improve existing fault localization techniques.
Xuan & Monperrus REF develop test case purification, which seperates test cases into small fractions to enhance the test oracle for fault localization.
Test Case Purification for Improving Fault Localization
FSE - 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (2014)
Computer Science