An Analysis on the Negative Effect of Multiple-Faults for Spectrum-Based Fault Localization

This paper aims to investigate the negative effects of multiple-faults on spectrum-based fault localization (SBFL). Previously, researchers validated the fact that the occurrence of multiple-faults could have a significant negative impact on fault localization. However, a very little current research addresses the degree of these impacts through a systemic analysis. Furthermore, the fundamental causes underlying that negative impact have not been investigated and are not fully understood. We conducted experiments on fourteen real-life open source programs to explore and possibly solve these problems. Our results indicate that: 1) although multiple-faults generally do have a negative impact on fault localization, different fault localizations displayed various levels of robustness against that negative impact; 2) restoring pass/fail fault interactions only has a modest effect on that negative impact; 3) our investigation of twelve Fault Localization Interactions (FLI) shows that there is a dominant FLI-1 interaction in multiple-fault programs which should be responsible for that negative impact; 4) restoring FLI-1 can significantly improve the performance of both SBFL and parallel debugging techniques; and 5) furthermore, this paper practically validated the revised Kendall Tau distance as an efficient measure to help locate test cases, which have triggered FLI-1. Based on the revised Kendall Tau distance, a fast search algorithm has been suggested to locate FLI-1 test cases. It is expected that this paper can provide some insight into the fundamental causes of multiple-faults’ negative impact on fault localization and drive the development of more efficient fault localization techniques to improve the identification and handling of multiple-faults.

[1]  Friedrich Steimann,et al.  More Debugging in Parallel , 2014, 2014 IEEE 25th International Symposium on Software Reliability Engineering.

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

[3]  C. Tappert,et al.  A Survey of Binary Similarity and Distance Measures , 2010 .

[4]  Steven P. Reiss,et al.  Fault localization with nearest neighbor queries , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[5]  James A. Jones,et al.  Fault interaction and its repercussions , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[6]  John Stasko,et al.  Visualization for Fault Localization , 2003 .

[7]  Marcelo d'Amorim,et al.  Prevalence of Single-Fault Fixes and Its Impact on Fault Localization , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[8]  Chetna Gupta,et al.  Complexity Estimation Approach for Debugging in Parallel , 2010, 2010 Second International Conference on Computer Research and Development.

[9]  James A. Jones,et al.  Fault density, fault types, and spectra-based fault localization , 2015, Empirical Software Engineering.

[10]  Peter Zoeteweij,et al.  An Evaluation of Similarity Coefficients for Software Fault Localization , 2006, 2006 12th Pacific Rim International Symposium on Dependable Computing (PRDC'06).

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

[12]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

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

[14]  Michael D. Ernst,et al.  Evaluating and Improving Fault Localization , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[15]  Baowen Xu,et al.  A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization , 2013, TSEM.

[16]  Mary Jean Harrold,et al.  Debugging in Parallel , 2007, ISSTA '07.

[17]  Dianxiang Xu,et al.  Towards Better Fault Localization: A Crosstab-Based Statistical Approach , 2012, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[18]  Peter Zoeteweij,et al.  An observation-based model for fault localization , 2008, WODA.

[19]  W. Eric Wong,et al.  Insights on Fault Interference for Programs with Multiple Bugs , 2009, 2009 20th International Symposium on Software Reliability Engineering.

[20]  R. Forthofer,et al.  Rank Correlation Methods , 1981 .

[21]  Gregg Rothermel,et al.  An empirical investigation of program spectra , 1998, PASTE '98.

[22]  Gregg Rothermel,et al.  On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques , 2006, IEEE Transactions on Software Engineering.

[23]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[24]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[25]  W. Eric Wong,et al.  The DStar Method for Effective Software Fault Localization , 2014, IEEE Transactions on Reliability.

[26]  James S. Collofello,et al.  Towards automatic software fault location through decision-to-decision path analysis , 1899 .

[27]  Peter Zoeteweij,et al.  Software fault diagnosis , 2007 .

[28]  David Lo,et al.  Are faults localizable? , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[29]  Mark Harman,et al.  No pot of gold at the end of program spectrum rainbow: Greatest risk evaluation formula does not exist , 2014 .

[30]  Byoungju Choi,et al.  A family of code coverage-based heuristics for effective fault localization , 2010, J. Syst. Softw..

[31]  Bhavani M. Thuraisingham,et al.  Effective Software Fault Localization Using an RBF Neural Network , 2012, IEEE Transactions on Reliability.

[32]  Yan Zheng,et al.  Localizing multiple software faults based on evolution algorithm , 2018, J. Syst. Softw..

[33]  Olivier Ridoux,et al.  Data mining and cross-checking of execution traces: a re-interpretation of Jones, Harrold and Stasko test information , 2005, ASE.

[34]  James A. Jones,et al.  On the influence of multiple faults on coverage-based fault localization , 2011, ISSTA '11.

[35]  Zhendong Su,et al.  An Empirical Study on Real Bug Fixes , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[36]  James H. Andrews,et al.  Evaluating the Accuracy of Fault Localization Techniques , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[37]  Ruizhi Gao,et al.  MSeer—An Advanced Technique for Locating Multiple Bugs in Parallel , 2019, IEEE Transactions on Software Engineering.

[38]  Gregg Rothermel,et al.  An experimental determination of sufficient mutant operators , 1996, TSEM.

[39]  Yuhua Qi,et al.  Slice-based statistical fault localization , 2014, J. Syst. Softw..

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

[41]  Friedrich Steimann,et al.  Improving Coverage-Based Localization of Multiple Faults Using Algorithms from Integer Linear Programming , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering.

[42]  A. Ochiai Zoogeographical Studies on the Soleoid Fishes Found in Japan and its Neighbouring Regions-III , 1957 .

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

[44]  Rui Abreu,et al.  GZoltar: an eclipse plug-in for testing and debugging , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[45]  K. Goseva-Popstojanova,et al.  Common Trends in Software Fault and Failure Data , 2009, IEEE Transactions on Software Engineering.

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