1,014 research outputs found
Test Case Purification for Improving Fault Localization
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
Spectrum-based Fault Localization Techniques Application on Multiple-Fault Programs: A Review
Software fault localization is one of the most tedious and costly activities in program debugging in the endeavor to identify faults locations in a software program. In this paper, the studies that used spectrum-based fault localization (SBFL) techniques that makes use of different multiple fault localization debugging methods such as one-bug-at-a-time (OBA) debugging, parallel debugging, and simultaneous debugging in localizing multiple faults are classified and critically analyzed in order to extensively discuss the current research trends, issues, and challenges in this field of study. The outcome strongly shows that there is a high utilization of OBA debugging method, poor fault isolation accuracy, and dominant use of artificial faults that limit the existing techniques applicability in the software industry
A Comprehensive Empirical Investigation on Failure Clustering in Parallel Debugging
The clustering technique has attracted a lot of attention as a promising
strategy for parallel debugging in multi-fault scenarios, this heuristic
approach (i.e., failure indexing or fault isolation) enables developers to
perform multiple debugging tasks simultaneously through dividing failed test
cases into several disjoint groups. When using statement ranking representation
to model failures for better clustering, several factors influence clustering
effectiveness, including the risk evaluation formula (REF), the number of
faults (NOF), the fault type (FT), and the number of successful test cases
paired with one individual failed test case (NSP1F). In this paper, we present
the first comprehensive empirical study of how these four factors influence
clustering effectiveness. We conduct extensive controlled experiments on 1060
faulty versions of 228 simulated faults and 141 real faults, and the results
reveal that: 1) GP19 is highly competitive across all REFs, 2) clustering
effectiveness decreases as NOF increases, 3) higher clustering effectiveness is
easier to achieve when a program contains only predicate faults, and 4)
clustering effectiveness remains when the scale of NSP1F is reduced to 20%
- …