Test Case Purification for Improving Fault Localization
arXiv:1409.3176 · doi:10.1145/2635868.2635906
Abstract
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.
References in corpus (2)
Cited by in corpus (9)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- TBar: Revisiting Template-based Automated Program Repair
- Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset
- A Quantitative and Qualitative Evaluation of LLM-Based Explainable Fault Localization
- Automatic Test Improvement with DSpot: a Study with Ten Mature Open-Source Projects
- Testing with Fewer Resources: An Adaptive Approach to Performance-Aware Test Case Generation
- Improving Spectrum-Based Localization of Multiple Faults by Iterative Test Suite Reduction
- Isolating Compiler Bugs by Generating Effective Witness Programs with Large Language Models
- FDG: A Precise Measurement of Fault Diagnosability Gain of Test Cases