Research of Multiple Fault Localization Based on Cluster Analysis of Program Failures

Locating faults is one of the most expensive and time-consuming components of debugging process. Fault localization technique based on mining associations analyzes the dependencies between application code and narrow down the location of faults. However, the efficiency of this technology will decrease with the increase of the number of faults. This paper presents a new fault location technique based on cluster analysis of program failures. Failures are categorized into different failure classes using cluster analysis method, and the failures are caused by one and only one fault in each class. We also study characteristics of a set of statements covered by failed executions, which are due to the same fault. According to failure classes’ difference, we describe a target association algorithm and a corresponding way to examine code. Empirical studies based on SIR benchmarks indicate that, for the subject we studied, our technique has higher efficiency than the popular Tarantula, Ochiai and Jaccard techniques in multiple-fault programs, and can be implemented in effective space and time complexity.

[1]  A. Zeller Isolating cause-effect chains from computer programs , 2002, SIGSOFT '02/FSE-10.

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

[3]  Rui Abreu,et al.  Exploiting count spectra for Bayesian fault localization , 2010, PROMISE '10.

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

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

[6]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

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

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

[9]  Jianhui Jiang,et al.  A method for validating the effectiveness of fault clustering and failure clustering of programs , 2014 .

[10]  Chao Liu,et al.  A Systematic Study of Failure Proximity , 2008, IEEE Transactions on Software Engineering.

[11]  Frank Tip,et al.  Fault Localization for Dynamic Web Applications , 2012, IEEE Transactions on Software Engineering.

[12]  H. Cleve,et al.  Locating causes of program failures , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

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

[14]  M. Levandowsky,et al.  Distance between Sets , 1971, Nature.

[15]  Zhao Lei,et al.  Mining Associations to Improve the Effectiveness of Fault Localization , 2012 .