State dependency probabilistic model for fault localization

Abstract Context Fault localization is an important and expensive activity in software debugging. Previous studies indicated that statistically-based fault-localization techniques are effective in prioritizing the possible faulty statements with relatively low computational complexity, but prior works on statistical analysis have not fully investigated the behavior state information of each program element. Objective The objective of this paper is to propose an effective fault-localization approach based on the analysis of state dependence information between program elements. Method In this paper, state dependency is proposed to describe the control flow dependence between statements with particular states. A state dependency probabilistic model uses path profiles to analyze the state dependency information. Then, a fault-localization approach is proposed to locate faults by differentiating the state dependencies in passed and failed test cases. Results We evaluated the fault-localization effectiveness of our approach based on the experiments on Siemens programs and four UNIX programs. Furthermore, we compared our approach with current state-of-art fault-localization methods such as SOBER, Tarantula, and CP. The experimental results show that, our approach can locate more faults than the other methods in every range on Siemens programs, and the overall efficiency of our approach in the range of 10–30% of analyzed source code is higher than the other methods on UNIX programs. Conclusion Our studies show that our approach consistently outperforms the other evaluated techniques in terms of effectiveness in fault localization on Siemens programs. Moreover, our approach is highly effective in fault localization even when very few test cases are available.

[1]  Joseph Robert Horgan,et al.  Test set size minimization and fault detection effectiveness: A case study in a space application , 1999, J. Syst. Softw..

[2]  Franz Wotawa,et al.  Spectrum Enhanced Dynamic Slicing for better Fault Localization , 2012, ECAI.

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

[4]  Yu Qi,et al.  Effective program debugging based on execution slices and inter-block data dependency , 2006, J. Syst. Softw..

[5]  Trishul M. Chilimbi,et al.  HOLMES: Effective statistical debugging via efficient path profiling , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[6]  Kwan Yong Sim,et al.  Debugging in the Extreme: Spectrum-based Fault Localization with Limited Test Cases , 2013 .

[7]  Leonardo Mariani,et al.  Dynamic Detection of COTS Component Incompatibility , 2007, IEEE Software.

[8]  Xiangyu Zhang,et al.  Locating faults through automated predicate switching , 2006, ICSE.

[9]  W. K. Chan,et al.  Coincidental Correctness: Refine Code Coverage with Context Pattern to Improve Fault Localization , 2009, ICSE 2009.

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

[11]  Chao Liu,et al.  Failure proximity: a fault localization-based approach , 2006, SIGSOFT '06/FSE-14.

[12]  Iris Vessey,et al.  Expertise in Debugging Computer Programs: A Process Analysis , 1984, Int. J. Man Mach. Stud..

[13]  Long Zhang,et al.  A Theoretical Study: The Impact of Cloning Failed Test Cases on the Effectiveness of Fault Localization , 2013, 2013 13th International Conference on Quality Software.

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

[15]  Ronald A. Olsson,et al.  Automated bug isolation via program chipping , 2005, AADEBUG'05.

[16]  Mercer Jennifer Ann,et al.  PUBLICATION manual of the American Psychological Association. , 1952, Psychological bulletin.

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

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

[19]  Bixin Li,et al.  Program slicing spectrum-based software fault localization , 2011, SEKE.

[20]  Andy Podgurski,et al.  The Probabilistic Program Dependence Graph and Its Application to Fault Diagnosis , 2008, IEEE Transactions on Software Engineering.

[21]  Shriram Krishnamurthi,et al.  Automated Fault Localization Using Potential Invariants , 2003, ArXiv.

[22]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

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

[24]  Andreas Zeller,et al.  Generating Fixes from Object Behavior Anomalies , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

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

[26]  Xiangyu Zhang,et al.  Locating faulty code using failure-inducing chops , 2005, ASE.

[27]  Marcelo d'Amorim,et al.  Fault-localization using dynamic slicing and change impact analysis , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[28]  Iris Vessey,et al.  Expertise in Debugging Computer Programs , 1984 .

[29]  George Mason,et al.  Procedures for Reducing the Size of Coverage-based Test Sets , 1995 .

[30]  Leonardo Mariani,et al.  SEIM: static extraction of interaction models , 2010, PESOS '10.

[31]  Mark Harman,et al.  Dependence clusters in source code , 2009, TOPL.

[32]  Markus Stumptner,et al.  Model-Based Debugging or How to Diagnose Programs Automatically , 2002, IEA/AIE.

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

[34]  Yves Le Traon,et al.  Improving test suites for efficient fault localization , 2006, ICSE.

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

[36]  Rajiv Gupta,et al.  Execution suppression: An automated iterative technique for locating memory errors , 2010, TOPL.

[37]  Vikram S. Adve,et al.  Using likely invariants for automated software fault localization , 2013, ASPLOS '13.

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

[39]  Xiangyu Zhang,et al.  Locating faulty code by multiple points slicing , 2007, Softw. Pract. Exp..

[40]  Per Runeson,et al.  Roundtable: What's Next in Software Analytics , 2013, IEEE Software.

[41]  Rajiv Gupta,et al.  Learning universal probabilistic models for fault localization , 2010, PASTE '10.

[42]  Wei Zhao,et al.  A similarity-aware approach to testing based fault localization , 2005, ASE '05.

[43]  Alessandro Orso,et al.  MINTS: A general framework and tool for supporting test-suite minimization , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[44]  Ben Liblit,et al.  Adaptive bug isolation , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[45]  Tao Xie,et al.  Test input reduction for result inspection to facilitate fault localization , 2010, Automated Software Engineering.

[46]  Xiang Chen,et al.  A study of relative redundancy in test-suite reduction while retaining or improving fault-localization effectiveness , 2010, SAC '10.

[47]  Baowen Xu,et al.  A novel approach for test suite reduction based on requirement relation contraction , 2008, SAC '08.

[48]  Wang Tiantian,et al.  A test-suite reduction approach to improving fault-localization effectiveness , 2013 .

[49]  James A. Jones,et al.  On the influence of multiple faults on coverage-based fault localization , 2011, ISSTA '11.

[50]  Shriram Krishnamurthi,et al.  Automated Fault Localization Using Potential Invariants 1 , 2003 .

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

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

[53]  Xiaohong Su,et al.  A test-suite reduction approach to improving fault-localization effectiveness , 2013, Comput. Lang. Syst. Struct..