Table of Contents
Fetching ...

Extending Delta Debugging Minimization for Spectrum-Based Fault Localization

Charaka Geethal Kapugama

TL;DR

DDMIN-LOC extends Delta Debugging Minimization to support spectrum-based fault localization, enabling fault localization from a single failure-inducing input for string-input programs. The method collects test inputs generated during DDMIN, computes SBFL-based suspiciousness for statements and predicates, and blends them into a hybrid ranking. Experimental results across 136 Codeflaws and QuixBugs subjects show the best performance with the Jaccard-based hybrid approach, with faulty statements often ranked in the top 3 and the exam score typically below 0.2. The study identifies predicate-based instability for certain bugs and highlights the hybrid approach as a robust solution, while proposing future work to broaden input types and integrate with additional debugging techniques.

Abstract

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.

Extending Delta Debugging Minimization for Spectrum-Based Fault Localization

TL;DR

DDMIN-LOC extends Delta Debugging Minimization to support spectrum-based fault localization, enabling fault localization from a single failure-inducing input for string-input programs. The method collects test inputs generated during DDMIN, computes SBFL-based suspiciousness for statements and predicates, and blends them into a hybrid ranking. Experimental results across 136 Codeflaws and QuixBugs subjects show the best performance with the Jaccard-based hybrid approach, with faulty statements often ranked in the top 3 and the exam score typically below 0.2. The study identifies predicate-based instability for certain bugs and highlights the hybrid approach as a robust solution, while proposing future work to broaden input types and integrate with additional debugging techniques.

Abstract

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.
Paper Structure (17 sections, 1 equation, 2 figures, 1 table, 1 algorithm)

This paper contains 17 sections, 1 equation, 2 figures, 1 table, 1 algorithm.

Figures (2)

  • Figure 1: Exam scores under different program elements and different SBFL techniques
  • Figure 2: Percentage of DDMIN-LOC generated test suites per each subject that achieved the inspect scores in Statement-Based, Predicate-Based and Hybrid methods