Wielding Statistical Fault Localization Statistically

Program debugging is a laborious but necessary phase of software development. It generally consists of fault localization, bug fix, and regression testing. Statistical software fault localization automates the manual and error-prone first task. It predicts fault locations by analyzing dynamic program spectrum captured in program runs. Previous studies mostly focused on how to provide reliable input data to such a technique and how to process the data accurately, but inadequately studied how to wield the output result of such a technique. In this work, we raise the assumption of symmetric distribution on the effectiveness of such a technique in locating faults, based on empirical results. We use maximum likelihood estimate and linear programming to develop a tuning method to enhance the result of a statistical fault localization technique. Experiments with two representative such techniques on two realistic UNIX utility programs validate our assumption and show our method effective.

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

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

[3]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[4]  T. H. Tse,et al.  Fault localization through evaluation sequences , 2010, J. Syst. Softw..

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

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

[7]  T. H. Tse,et al.  Fault Localization Based Only on Failed Runs , 2012, Computer.

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

[9]  Xiangyu Zhang,et al.  Practical isolation of failure-inducing changes for debugging regression faults , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[10]  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.

[11]  Mary Jean Harrold,et al.  An empirical study of the effects of test-suite reduction on fault localization , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[12]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

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

[14]  Tsong Yueh Chen,et al.  How well does test case prioritization integrate with statistical fault localization? , 2012, Inf. Softw. Technol..

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

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

[17]  Ting Chen,et al.  Statistical debugging using compound boolean predicates , 2007, ISSTA '07.