Enhancing Contexts for Automated Debugging Techniques

Most existing automated debugging techniques just focus on selecting a set of suspicious statements that may cause failures and ranking them in terms of suspiciousness. Therefore, these techniques always ignore the contextual information of how suspicious statements behave and propagate in the program. However, the contextual information is useful for discovering and understanding bugs. Hence, this paper proposes a novel approach to enhance contexts for automated debugging techniques. Based on localization results obtained from automated debugging techniques, our approach utilizes program slicing to classify suspicious statements into different contexts, and assigns different suspiciousness to the contexts and their elements. The experimental study shows that our approach can substantially improve debugging effectiveness. Keywords-automate debugging; program spectra; program slicing; statistical analysis.

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

[2]  Zhendong Su,et al.  Context-aware statistical debugging: from bug predictors to faulty control flow paths , 2007, ASE.

[3]  Xiangyu Zhang,et al.  Memory slicing , 2009, ISSTA.

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

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

[6]  Alessandro Orso,et al.  Are automated debugging techniques actually helping programmers? , 2011, ISSTA '11.

[7]  Tibor Gyimóthy,et al.  An efficient relevant slicing method for debugging , 1999, ESEC/FSE-7.

[8]  Eric A. Brewer,et al.  Pinpoint: problem determination in large, dynamic Internet services , 2002, Proceedings International Conference on Dependable Systems and Networks.

[9]  Xiangyu Zhang,et al.  Towards locating execution omission errors , 2007, PLDI '07.

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

[11]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

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

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

[14]  Shinji Kusumoto,et al.  Experimental Evaluation of Program Slicing for Fault Localization , 2002, Empirical Software Engineering.

[15]  Kai-Yuan Cai,et al.  Effective Fault Localization using Code Coverage , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[16]  Xiangyu Zhang,et al.  A study of effectiveness of dynamic slicing in locating real faults , 2006, Empirical Software Engineering.

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

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

[19]  Xiangyu Zhang,et al.  Dynamic slicing long running programs through execution fast forwarding , 2006, SIGSOFT '06/FSE-14.

[20]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

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

[22]  Xiaofeng Xu,et al.  A Grouping-Based Strategy to Improve the Effectiveness of Fault Localization Techniques , 2010, 2010 10th International Conference on Quality Software.

[23]  Jie Tian,et al.  Automating Software FMEA via Formal Analysis of Dependence Relations , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

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

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

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