Improving Fault Localization through Fault Propagation Analysis

Lots of studies have been done to pinpoint program faults almost to the exact line where different types of abnormal behaviors occur. Among them there is the promising testingbased fault localization (TBFL) technique, the aim of which is to locate the faults in the program automatically when the program is executed with test suite. This paper proposes an improved TBFL method augmented with fault propagation. It localizes faults in three major steps: generate the execution path and dependency information of program, modify the existing fault state of program, and ultimately infer statement suspicious score. Our empirical results show that, for the subject we studied, our technique can get better effectiveness than others. Empirical results show that our method can help to debug efficiently and get better effectiveness than other competitors. Keywords-software debugging; fault localization; fault propagation; program dependency.

[1]  Rajiv Gupta,et al.  Fault localization using value replacement , 2008, ISSTA '08.

[2]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[3]  Zuohua Ding,et al.  Fault localization based on statement frequency , 2016, Inf. Sci..

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

[5]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

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

[7]  Bin Li,et al.  IPSETFUL: an iterative process of selecting test cases for effective fault localization by exploring concept lattice of program spectra , 2016, Frontiers of Computer Science.

[8]  Xiangyu Zhang,et al.  Locating faults using multiple spectra-specific models , 2011, SAC.

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

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

[11]  T. H. Tse,et al.  Capturing propagation of infected program states , 2009, ESEC/FSE '09.

[12]  Alessandro Orso,et al.  Classifying data dependences in the presence of pointers for program comprehension, testing, and debugging , 2004, TSEM.

[13]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[14]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[15]  Andy Podgurski,et al.  The Probabilistic Program Dependence Graph and Its Application to Fault Diagnosis , 2010, IEEE Trans. Software Eng..