Injecting mechanical faults to localize developer faults for evolving software

Lingming Zhang, Lu Zhang, Sarfraz Khurshid

Research output: Contribution to journalArticlepeer-review

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 languageEnglish (US)
Pages (from-to)765-784
Number of pages20
JournalACM SIGPLAN Notices
Volume48
Issue number10
DOIs
StatePublished - Oct 2013
Externally publishedYes

Keywords

  • Fault localization
  • Mutation testing
  • Regression testing
  • Software evolution

ASJC Scopus subject areas

  • General Computer Science

Fingerprint

Dive into the research topics of 'Injecting mechanical faults to localize developer faults for evolving software'. Together they form a unique fingerprint.

Cite this