Skip to main content
Log in

Interactive Fault Localization Using Test Information

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  11. Rothermel G, Harrold M J. Experimental studies of a safe regression test selection technique. IEEE Trans. Software Engineering, 1998, 24(6): 401–419.

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  13. Wharton C, Rieman J, Lewis C, Polson P. The Cognitive Walkthrough Method: A Practitioner's Guide. John Wiley, 1994.

  14. Shapiro E Y. Algorithm Program Debugging. MIT Press, 1983.

  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.

    Article  Google Scholar 

  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.

  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.

  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.

  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.

  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.

  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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hong Mei.

Additional information

A preliminary version of this paper appeared in “Hao D, Zhang L, Mei H, Sun J. Towards interactive fault localization using test information. In Proc. 13th Asia Pacific Software Engineering Conference, 2006, pp.277–284."

This work is supported by the National Basic Research Program of China under Grant No. 2009CB320703, the National High-Tech Research and Development 863 Program of China under Grant No. 2007AA010301, the Science Fund for Creative Research Groups of China under Grant No. 60821003, the National Natural Science Foundation of China under Grant No. 60803012, and the China Postdoctoral Science Foundation Project under Grant No. 20080440254.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hao, D., Zhang, L., Xie, T. et al. Interactive Fault Localization Using Test Information. J. Comput. Sci. Technol. 24, 962–974 (2009). https://doi.org/10.1007/s11390-009-9270-z

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-009-9270-z

Keywords

Navigation