23 research outputs found
Learning to Combine Multiple Ranking Metrics for Fault Localization
International audienceFault localization is an inevitable step in software debugging. Spectrum-based fault localization consists in computing a ranking metric on execution traces to identify faulty source code. Existing empirical studies on fault localization show that there is no optimal ranking metric for all faults in practice. In this paper, we propose Multric, a learning-based approach to combining multiple ranking metrics for effective fault localization. In Multric, a suspiciousness score of a program entity is a combination of existing ranking metrics. Multric consists two major phases: learning and ranking. Based on training faults, Multric builds a ranking model by learning from pairs of faulty and non-faulty source code elements. When a new fault appears, Multric computes the final ranking with the learned model. Experiments are conducted on 5386 seeded faults in ten open-source Java programs. We empirically compare Multric against four widely-studied metrics and three recently-proposed one. Our experimental results show that Multric localizes faults more effectively than state-of-art metrics, such as Tarantula, Ochiai, and Ample
A Fault Localization and Debugging Support Framework driven by Bug Tracking Data
Fault localization has been determined as a major resource factor in the
software development life cycle. Academic fault localization techniques are
mostly unknown and unused in professional environments. Although manual
debugging approaches can vary significantly depending on bug type (e.g. memory
bugs or semantic bugs), these differences are not reflected in most existing
fault localization tools. Little research has gone into automated
identification of bug types to optimize the fault localization process.
Further, existing fault localization techniques leverage on historical data
only for augmentation of suspiciousness rankings. This thesis aims to provide a
fault localization framework by combining data from various sources to help
developers in the fault localization process. To achieve this, a bug
classification schema is introduced, benchmarks are created, and a novel fault
localization method based on historical data is proposed.Comment: 4 page
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