Spectrum-Based Fault Localization via Enlarging Non-Fault Region to Improve Fault Absolute Ranking

Spectrum-based fault localization (<italic>SFL</italic>) is a popular lightweight automatic software fault localization technique that uses coverage information of program execution to compute the likelihood of root cause of failure(s) for each program component and ranks them descending by their suspiciousness scores. However, some recent studies indicate an <italic>SFL</italic> technique to be useful only if the root cause(s) of failures is ranked at <italic>top k</italic>. Due to the nature of the <italic>SFL</italic> technique, it is impossible that the root fault(s) is always ranked at <italic>top k</italic>, which may interfere with the usefulness of <italic>SFL</italic> in practice. To solve this issue, an <italic>SFL</italic> technique via enlarging the non-fault region to further improve fault absolute ranking was proposed. The idea behind this is that we can intuitively improve fault absolute ranking for an <italic>SFL</italic> technique if some non-fault components ranked higher were excluded from the fault ranking list. In the approach, we enlarge the non-fault region iteratively to narrow down the suspicious region based on two scenarios, and then rank those components in the suspicious region using existing <italic>SFL</italic> techniques. The empirical results indicate that our approach significantly helps existing <italic>SFL</italic> techniques to further improve their usefulness.

[1]  Lingfeng Bao,et al.  “Automated Debugging Considered Harmful” Considered Harmful: A User Study Revisiting the Usefulness of Spectra-Based Fault Localization Techniques with Professionals Using Real Bugs from Large Systems , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[2]  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).

[3]  Yong Li,et al.  Lightweight fault localization combined with fault context to improve fault absolute rank , 2017, Science China Information Sciences.

[4]  Raúl A. Santelices,et al.  Lightweight fault-localization using multiple coverage types , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[5]  Baowen Xu,et al.  Isolating Suspiciousness from Spectrum-Based Fault Localization Techniques , 2010, 2010 10th International Conference on Quality Software.

[6]  David Lo,et al.  Practitioners' expectations on automated fault localization , 2016, ISSTA.

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

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

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

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

[11]  Baowen Xu,et al.  Revisit of Automatic Debugging via Human Focus-Tracking Analysis , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[12]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[13]  Chao Liu,et al.  SOBER: statistical model-based bug localization , 2005, ESEC/FSE-13.

[14]  Larry Joe Morell A theory of error-based testing , 1983 .

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

[16]  Gregg Rothermel,et al.  An empirical investigation of the relationship between spectra differences and regression faults , 2000 .

[17]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[18]  Michael I. Jordan,et al.  Scalable statistical bug isolation , 2005, PLDI '05.

[19]  Hajimu Iida,et al.  A multiple-view analysis model of debugging processes , 2002, Proceedings International Symposium on Empirical Software Engineering.

[20]  Alessandro Orso,et al.  Are automated debugging techniques actually helping programmers? , 2011, ISSTA '11.

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

[22]  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).

[23]  Jingde Cheng,et al.  A general framework for debugging , 1991, IEEE Software.

[24]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[25]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[26]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

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

[28]  Lee Naish,et al.  Spectral Debugging with Weights and Incremental Ranking , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

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

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