Statistical fault localization in decision support system based on probability distribution criterion

Finding the location of a fault in code is an important research and practical problem, which often requires much time and manual effort. To automate this time consuming task, a class of predicate-based statistical fault localization techniques have been proposed, which test the similarity of dynamic predicate spectra between non-failed runs and failed runs and suggest suspicious predicates to the programmers to facilitate the identification of faults. However, with the existence of coincidental correctness, how to efficiently and effectively compare the difference of predicate spectra distribution has become a crucial problem to be solved. In this paper, we make use of probability distribution criterion in developing a new statistical fault localization algorithm. Instead of using geometry distance, it calculates the overlapping of dynamic predicate spectra in two communities (non-failed runs and failed runs) to evaluate the difference. Empirical results show that our technique outperforms some representative predicate-based fault localization techniques for localizing faults in most subject programs of the Siemens suite and space program. To facilitate the debugging process and provide visual help to the debugger, we also designed a system software prototype, which integrates many recent fault localization algorithms, including the one proposed in this paper.

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

[2]  Wes Masri,et al.  Cleansing Test Suites from Coincidental Correctness to Enhance Fault-Localization , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

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

[4]  Jie Lu,et al.  On a generalized fuzzy goal optimization for solving fuzzy multi-objective linear programming problems , 2007, J. Intell. Fuzzy Syst..

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

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

[7]  Shing-Chi Cheung,et al.  Taming coincidental correctness: Coverage refinement with context patterns to improve fault localization , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[8]  Àngela Nebot,et al.  Genetic Learning of Fuzzy Parameters in Predictive and Decision Support Modelling , 2012, Int. J. Comput. Intell. Syst..

[9]  T. H. Tse,et al.  Is non-parametric hypothesis testing model robust for statistical fault localization? , 2009, Inf. Softw. Technol..

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

[11]  Ross Gore,et al.  Reducing confounding bias in predicate-level statistical debugging metrics , 2012, 2012 34th International Conference on Software Engineering (ICSE).

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

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

[14]  T. H. Tse,et al.  Non-parametric statistical fault localization , 2011, J. Syst. Softw..

[15]  Da Ruan,et al.  An Extended Branch and Bound Algorithm for bilevel Multi-Follower Decision Making in a Referential-Uncooperative Situation , 2007, Int. J. Inf. Technol. Decis. Mak..