An Empirical Framework for Evaluation of Spectral-based Fault Localization Techniques

Spectral-based fault localization is a statistical technique that aims at helping software developers to find programming faults quickly. In this technique fault locations are found by analyzing abstractions of program traces to provide a ranked list of most probable faulty components (e.g., program statement). Although the semantic structure of code is not considered in Spectral-based fault localization methods, they are widely known as high-performance and state-of-the-art methods. Many studies have been conducted in this area that have led to the creation of various methods, with different accuracy and efficiency. Nevertheless, the relative performance of these methods are neither examined nor discussed in the literature. In this paper, we introduce an empirical framework for implementation of SBFL methods in large-scale real bug java programs. Implementation results are reported using evaluation metrics to provide a clear comparison of the performance of the most effective methods.

[1]  Rui Abreu,et al.  Refining spectrum-based fault localization rankings , 2009, SAC '09.

[2]  Lee Naish,et al.  A model for spectra-based software diagnosis , 2011, TSEM.

[3]  Yuming Zhou,et al.  A Search Based Context-Aware Approach for Understanding and Localizing the Fault via Weighted Call Graph , 2016, 2016 Third International Conference on Trustworthy Systems and their Applications (TSA).

[4]  Alberto Sánchez Automatic Error Detection Techniques Based on Dynamic Invariants THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF , 2007 .

[5]  David Lo,et al.  Should I follow this fault localization tool’s output? , 2014, Empirical Software Engineering.

[6]  Mary Jean Harrold,et al.  Empirical evaluation of the tarantula automatic fault-localization technique , 2005, ASE.

[7]  Lei Zhao,et al.  PAFL: Fault Localization via Noise Reduction on Coverage Vector , 2011, SEKE.

[8]  Lars Grunske,et al.  A Critical Evaluation of Spectrum-Based Fault Localization Techniques on a Large-Scale Software System , 2017, 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[9]  Peter Zoeteweij,et al.  A practical evaluation of spectrum-based fault localization , 2009, J. Syst. Softw..

[10]  Bogdan Korel,et al.  STAD-a system for testing and debugging: user perspective , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[11]  Martin Monperrus,et al.  Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs , 2018, IEEE Transactions on Software Engineering.

[12]  Chao Liu,et al.  Statistical Debugging: A Hypothesis Testing-Based Approach , 2006, IEEE Transactions on Software Engineering.

[13]  Rui Abreu,et al.  A Survey on Software Fault Localization , 2016, IEEE Transactions on Software Engineering.

[14]  Frank Tip,et al.  Practical fault localization for dynamic web applications , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[15]  A.J.C. van Gemund,et al.  On the Accuracy of Spectrum-based Fault Localization , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[16]  Zhenyu Zhang,et al.  Accuracy Graphs of Spectrum-Based Fault Localization Formulas , 2017, IEEE Transactions on Reliability.

[17]  Bogdan Korel,et al.  PELAS - Program Error-Locating Assistant System , 1988, IEEE Trans. Software Eng..

[18]  Rui Abreu,et al.  A Survey on Fault Localization Techniques , 2014 .

[19]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[20]  Hao Chen,et al.  Geo-referencing Place from Everyday Natural Language Descriptions , 2017, ArXiv.

[21]  Fernando C. Lourenço,et al.  Binary-based similarity measures for categorical data and their application in Self- Organizing Maps , 2004 .

[22]  T. H. Tse,et al.  Fault Localization Based Only on Failed Runs , 2012, Computer.

[23]  James R. Larus,et al.  The use of program profiling for software maintenance with applications to the year 2000 problem , 1997, ESEC '97/FSE-5.

[24]  Michael D. Ernst,et al.  Defects4J: a database of existing faults to enable controlled testing studies for Java programs , 2014, ISSTA 2014.