Journal of Computer Science and Technology

, Volume 24, Issue 5, pp 962–974 | Cite as

Interactive Fault Localization Using Test Information

Regular Paper

Abstract

Debugging is a time-consuming task in software development. Although various automated approaches have been proposed, they are not effective enough. On the other hand, in manual debugging, developers have difficulty in choosing breakpoints. To address these problems and help developers locate faults effectively, we propose an interactive fault-localization framework, combining the benefits of automated approaches and manual debugging. Before the fault is found, this framework continuously recommends checking points based on statements' suspicions, which are calculated according to the execution information of test cases and the feedback information from the developer at earlier checking points. Then we propose a naive approach, which is an initial implementation of this framework. However, with this naive approach or manual debugging, developers' wrong estimation of whether the faulty statement is executed before the checking point (breakpoint) may make the debugging process fail. So we propose another robust approach based on this framework, handling cases where developers make mistakes during the fault-localization process. We performed two experimental studies and the results show that the two interactive approaches are quite effective compared with existing fault-localization approaches. Moreover, the robust approach can help developers find faults when they make wrong estimation at some checking points.

Keywords

debugging fault localization interactive approach 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Jones J A, Harrold M J, Stasko J. Visualization of test in-formation to assist fault localization. In Proc. the 24th Int. Conf. Software Engineering, Orlando, Florida, USA, May 19–25, 2002, pp.467–477.Google Scholar
  2. [2]
    Agrawal H, Horgan J, London S, Wong W. Fault location using execution slices and dataflow tests. In Proc. the 6th Int. Symp. Software Reliability Engineering, Toulouse, France, Oct. 24–27, 1995, pp.143–151.Google Scholar
  3. [3]
    Cleve H, Zeller A. Locating causes of program failures. In Proc. the 27th Int. Conf. Software Engineering, St. Louis, Missouri, USA, May 15–21, 2005, pp.342–351.Google Scholar
  4. [4]
    Hao D, Pan Y, Zhang L, Mei H, Sun J. A similarity-aware approach to testing based fault localization. In Proc. the 20 th IEEE Int. Conf. Automated Software Engineering, Long Beach, CA, USA, Nov. 7–11, 2005, pp.291–294.Google Scholar
  5. [5]
    Liu C, Yan X, Fei L, Han J, Midkiff S P. SOBER: Statistical model-based bug localization. In Proc. the 13th ACM SIGSOFT Symp. Foundations of Software Engineering, Lisbon, Portugal, Sept. 5–9, 2005, pp.286–295.Google Scholar
  6. [6]
    Renieris M, Reiss S P. Fault localization with nearest neighbor queries. In Proc. the 18th Int. Conf. Automated Software Engineering, Montreal, Canada, Oct. 6–10, 2003, pp.30–39.Google Scholar
  7. [7]
    Misherghi G, Su Z. HDD: Hierarchical delta debugging. In Proc. the 28th IEEE Int. Conf. Software Engineering, Shanghai, China, May 20–28, 2006, pp.20–28.Google Scholar
  8. [8]
    Hutchins M, Foster H, Goradia T, Ostrand T. Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria. In Proc. the 16th Int. Conf. Software Engineering, Sorrento, Italy, May 16–21, 1994, pp.191–200.Google Scholar
  9. [9]
    Vokolos F I, Frankl P G. Empirical evaluation of the textual differencing regression testing technique. In Proc. the 14th Int. Conf. Software Maintenance, Bethesda, Maryland, USA, Nov. 16–19, 1998, pp.44–53.Google Scholar
  10. [10]
    Jones J A, Harrold M J. Empirical evaluation of tarantula automatic fault-localization technique. In Proc. the 20th IEEE Int. Conf. Automated Software Engineering, Long Beach, CA, USA, Nov. 7–11, 2005, pp.273–282.Google Scholar
  11. [11]
    Rothermel G, Harrold M J. Experimental studies of a safe regression test selection technique. IEEE Trans. Software Engineering, 1998, 24(6): 401–419.CrossRefGoogle Scholar
  12. [12]
    Rothermel G, Untch R H, Chu C, Harrold M J. Prioritizing test cases for regression testing. IEEE Trans. Software Engineering, 2001, 27(10): 929–948.CrossRefGoogle Scholar
  13. [13]
    Wharton C, Rieman J, Lewis C, Polson P. The Cognitive Walkthrough Method: A Practitioner's Guide. John Wiley, 1994.Google Scholar
  14. [14]
    Shapiro E Y. Algorithm Program Debugging. MIT Press, 1983.Google Scholar
  15. [15]
    Fritzson P, Shahmehri N, Kamkar M, Gyimothy T. Generalized algorithmic debugging and testing. ACM Letters on Programming Languages and Systems, 1992, 1(4): 303–322.CrossRefGoogle Scholar
  16. [16]
    Liblit B, Naik M, Zheng A X, Aiken A, Jordan M I. Scalable statistical bug isolation. In Proc. the ACM SIGPLAN Conf. Programming Language Design and Implementation, Chicago, IL, USA, June 12{15, 2005, pp.15–26.Google Scholar
  17. [17]
    Liblit B, Aiken A, Zheng A X, Jordan M I. Bug isolation via remote program sampling. In Proc. the ACM SIGPLAN Conf. Programming Languages Design and Implementation, San Diego, California, USA, June 9–11, 2003, pp.141–154.Google Scholar
  18. [18]
    Zhang X, He H, Gupta N, Gupta R. Experimental evaluation of using dynamic slices for fault localization. In Proc. the 6th Int. Symp. Automated and Analysis-Driven Debugging, Monterey, California, USA, Sept. 19–21, 2005, pp.33–42.Google Scholar
  19. [19]
    Zhang X, Gupta N, Gupta R. Locating faults through automated predicate switching. In Proc. the 28th IEEE Int. Conf. Software Engineering, Shanghai, China, May 20–28, 2006, pp.20–28.Google Scholar
  20. [20]
    Demillo R, Pan H, Spafford E. Failure and fault analysis for software debugging. In Proc. the 21st Int. Computer Software and Application Conf., Washington DC USA, Aug. 11–15, 1997, pp.515–521.Google Scholar
  21. [21]
    Hangal S, Lam M S. Tracking down software bugs using automatic anomaly detection. In Proc. the 24th Int. Conf. Software Engineering, Orlando, Florida, USA, May 19–25, 2002, pp.291–301.Google Scholar

Copyright information

© Springer 2009

Authors and Affiliations

  • Dan Hao
    • 1
  • Lu Zhang
    • 1
  • Tao Xie
    • 2
  • Hong Mei
    • 1
  • Jia-Su Sun
    • 1
  1. 1.Key Laboratory of High Confidence Software Technologies, Ministry of Education, Institute of Software School of Electronics Engineering and Computer SciencePeking UniversityBeijingChina
  2. 2.Department of Computer ScienceNorth Carolina State UniversityRaleighU.S.A.

Personalised recommendations