Abstract
This paper presents a novel methodology for localizing faults in code as it evolves. Our insight is that the essence of failure-inducing edits made by the developer can be captured using mechanical program transformations (e.g., mutation changes). Based on the insight, we present the FIFL framework, which uses both the spectrum information of edits (obtained using the existing FaultTracer approach) as well as the potential impacts of edits (simulated by mutation changes) to achieve more accurate fault localization. We evaluate FIFL on real-world repositories of nine Java projects ranging from 5.7KLoC to 88.8KLoC. The experimental results show that FIFL is able to outperform the stateof-the-art FaultTracer technique for localizing failureinducing program edits significantly. For example, all 19 FIFL strategies that use both the spectrum information and simulated impact information for each edit outperform the existing FaultTracer approach statistically at the significance level of 0.01. In addition, FIFL with its default settings outperforms FaultTracer by 2.33% to 86.26% on 16 of the 26 studied version pairs, and is only inferior than FaultTracer on one version pair.
Original language | English (US) |
---|---|
Pages (from-to) | 765-784 |
Number of pages | 20 |
Journal | ACM SIGPLAN Notices |
Volume | 48 |
Issue number | 10 |
DOIs | |
State | Published - Oct 2013 |
Externally published | Yes |
Keywords
- Fault localization
- Mutation testing
- Regression testing
- Software evolution
ASJC Scopus subject areas
- General Computer Science