Extending Delta Debugging Minimization for Spectrum-Based Fault Localization
By: Charaka Geethal Kapugama
Potential Business Impact:
Finds program mistakes using just one error example.
This paper introduces DDMIN-LOC, a technique that combines Delta Debugging Minimization (DDMIN) with Spectrum-Based Fault Localization (SBFL). It can be applied to programs taking string inputs, even when only a single failure-inducing input is available. DDMIN is an algorithm that systematically explores the minimal failure-inducing input that exposes a bug, given an initial failing input. However, it does not provide information about the faulty statements responsible for the failure. DDMIN-LOC addresses this limitation by collecting the passing and failing inputs generated during the DDMIN process and computing suspiciousness scores for program statements and predicates using SBFL algorithms. These scores are then combined to rank statements according to their likelihood of being faulty. DDMIN-LOC requires only one failing input of the buggy program, although it can be applied only to programs that take string inputs. DDMIN-LOC was evaluated on 136 programs selected from the QuixBugs and Codeflaws benchmarks using the SBFL algorithms Tarantula, Ochiai, GenProg, Jaccard and DStar. Experimental results show that DDMIN-LOC performs best with Jaccard: in most subjects, fewer than 20% executable lines need to be examined to locate the faulty statements. Moreover, in most subjects, faulty statements are ranked within the top 3 positions in all the generated test suites derived from different failing inputs.
Similar Papers
MBFL-DKMR: Improving Mutation-based Fault Localization through Denoising-based Kill Matrix Refinement
Software Engineering
Finds computer bugs faster by cleaning up data.
FLIMs: Fault Localization Interference Mutants, Definition, Recognition and Mitigation
Software Engineering
Fixes computer bugs more accurately.
Model-Based Diagnosis with Multiple Observations: A Unified Approach for C Software and Boolean Circuits
Software Engineering
Finds bugs in computer code faster and more accurately.