Cues for scent intensification in debugging

Information foraging is a theory to understand how people search for information. In this theory, information scent is the perceived likelihood by the “predator” that a cue will lead to a “prey”. The better the cues, the better the information scent. In automatic debugging, it is the perceived likelihood that the diagnostic report leads to the cause of failures. In this paper, we detail a visualization, offered by the GZoltar toolset, that has the potential to provide better cues. With better we mean providing more information that leads to the fault than, e.g., the source code and code coverage information. The toolset provides a graphical display of the diagnostic reports yielded by well-known debugging techniques. From an information foraging point of view, we argue that the visualization is of added value while debugging. Finally, we report a user study to confirm that GZOLTAR's visualization provides better cues for pinpointing faults.

[1]  Alex Aiken,et al.  Cooperative Bug Isolation , 2007 .

[2]  John Stasko,et al.  Visualization for Fault Localization , 2003 .

[3]  Anil K. Jain,et al.  Algorithms for Clustering Data , 1988 .

[4]  Alessandro Orso,et al.  Isolating failure causes through test case generation , 2012, ISSTA 2012.

[5]  Markus Stumptner,et al.  Evaluating Models for Model-Based Debugging , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[6]  José Carlos de Campos,et al.  Regression testing with GZoltar techniques for test suite minimization, selection, and prioritization , 2012 .

[7]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[8]  Janice Singer,et al.  Hipikat: a project memory for software development , 2005, IEEE Transactions on Software Engineering.

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

[10]  Franz Wotawa,et al.  From constraint representations of sequential code and program annotations to their use in debugging , 2008, ECAI.

[11]  Yanyong Guan,et al.  Set-valued information systems , 2006, Inf. Sci..

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

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

[14]  Brad A. Myers,et al.  Debugging reinvented , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[15]  Peter Zoeteweij,et al.  A practical evaluation of spectrum-based fault localization , 2009, J. Syst. Softw..

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

[17]  Rui Abreu,et al.  Using HTML5 visualizations in software fault localization , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[18]  Shigeru Chiba,et al.  Bugdel: an aspect-oriented debugging system , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

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

[20]  P. Pirolli Information Foraging Theory: Adaptive Interaction with Information , 2007 .

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

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

[23]  Yuming Zhou,et al.  Identifying Coincidental Correctness for Fault Localization by Clustering Test Cases , 2012, SEKE.

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

[25]  Rachel K. E. Bellamy,et al.  An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks , 2013, TSEM.

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

[27]  Bharat Jayaraman,et al.  Declarative and visual debugging in Eclipse , 2007, eclipse '07.

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

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

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

[31]  Jens Krinke,et al.  EzUnit: A Framework for Associating Failed Unit Tests with Potential Programming Errors , 2007, XP.

[32]  David Leon,et al.  Pursuing failure: the distribution of program failures in a profile space , 2001, ESEC/FSE-9.

[33]  Peter Zoeteweij,et al.  Diagnosis of Embedded Software Using Program Spectra , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[34]  Ben Liblit Cooperative debugging with five hundred million test cases , 2008, ISSTA '08.

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

[36]  Martin Burger,et al.  Minimizing reproduction of software failures , 2011, ISSTA '11.

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

[38]  Tore Dybå,et al.  Building Theories in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

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

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

[41]  Lu Zhang,et al.  VIDA: Visual interactive debugging , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[43]  Lei Zhao,et al.  A Crosstab-based Statistical Method for Effective Fault Localization , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

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

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

[46]  Lei Wang,et al.  Feature Selection with Kernel Class Separability , 2008, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[47]  Philip J. Guo,et al.  Opportunistic programming: how rapid ideation and prototyping occur in practice , 2008, WEUSE@ICSE.

[48]  Andy Podgurski,et al.  Mitigating the confounding effects of program dependences for effective fault localization , 2011, ESEC/FSE '11.

[49]  Andy Podgurski,et al.  Causal inference for statistical fault localization , 2010, ISSTA '10.

[50]  Rui Abreu,et al.  GZoltar: an eclipse plug-in for testing and debugging , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[51]  Martin Burger,et al.  Automated debugging in Eclipse: (at the touch of not even a button) , 2003, eclipse '03.

[52]  Rui Abreu,et al.  Zoltar: A Toolset for Automatic Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[53]  Rachel K. E. Bellamy,et al.  How Programmers Debug, Revisited: An Information Foraging Theory Perspective , 2013, IEEE Transactions on Software Engineering.