skip to main content
10.1145/1831708.1831715acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Directed test generation for effective fault localization

Authors Info & Claims
Published:12 July 2010Publication History

ABSTRACT

Fault-localization techniques that apply statistical analyses to execution data gathered from multiple tests are quite effective when a large test suite is available. However, if no test suite is available, what is the best approach to generate one? This paper investigates the fault-localization effectiveness of test suites generated according to several test-generation techniques based on combined concrete and symbolic (concolic) execution. We evaluate these techniques by applying the Ochiai fault-localization technique to generated test suites in order to localize 35 faults in four PHP Web applications. Our results show that the test-generation techniques under consideration produce test suites with similar high fault-localization effectiveness, when given a large time budget. However, a new, "directed" test-generation technique, which aims to maximize the similarity between the path constraints of the generated tests and those of faulty executions, reaches this level of effectiveness with much smaller test suites. On average, when compared to test generation based on standard concolic execution techniques that aims to maximize code coverage, the new directed technique preserves fault-localization effectiveness while reducing test-suite size by 86.1% and test-suite generation time by 88.6%.

References

  1. R. Abreu, P. Zoeteweij, and A. J. van Gemund. On the accuracy of spectrum-based fault localization. In Proceedings of Testing: Academia and Industry Conference - Practice and Research Techniques (TAIC PART'07), pages 89--98, September 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Abreu, P. Zoeteweij, and A. J. C. van Gemund. An evaluation of similarity coefficients for software fault localization. In PRDC 2006, pages 39--46, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. H. Agrawal, J. R. Horgan, S. London, and W. E. Wong. Fault localization using execution slices and dataflow tests. In ISSRE, pages 143--151, Toulouse, France, 1995.Google ScholarGoogle ScholarCross RefCross Ref
  4. S. Artzi, J. Dolby, F. Tip, and M. Pistoia, editors. Practical Fault Localization for Dynamic Web Applications, 2010. To appear.Google ScholarGoogle Scholar
  5. S. Artzi, A. Kieżun, J. Dolby, F. Tip, D. Dig, A. Paradkar, and M. D. Ernst. Finding bugs in dynamic web applications. In ISSTA, pages 261--272, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Artzi, A. Kieżun, J. Dolby, F. Tip, D. Dig, A. Paradkar, and M. D. Ernst. Finding bugs in web applications using dynamic test generation and explicit state model checking. IEEE Transactions on Software Engineering, 2010. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Baudry, F. Fleurey, and Y. L. Traon. Improving test suites for efficient fault localization. In L. J. Osterweil, H. D. Rombach, and M. L. Soffa, editors, Proceedings of the 28th International Conference on Software Engineering (ICSE'06), pages 82--91. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Burnim and K. Sen. Heuristics for scalable dynamic test generation. In ASE, pages 443--446. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Cadar, V. Ganesh, P. M. Pawlowski, D. L. Dill, and D. R. Engler. EXE: automatically generating inputs of death. In CCS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. M. Chilimbi, B. Liblit, K. K. Mehra, A. V. Nori, and K. Vaswani. Holmes: Effective statistical debugging via efficient path profiling. In Proceedings of the 31st International Conference on Software Engineering (ICSE'09), pages 34--44, Vancouver, Canada, May 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H. Cleve and A. Zeller. Locating causes of program failures. In ICSE, pages 342--351, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Godefroid, N. Klarlund, and K. Sen. DART: Directed automated random testing. In PLDI, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Godefroid, M. Y. Levin, and D. Molnar. Automated whitebox fuzz testing. In NDSS, 2008.Google ScholarGoogle Scholar
  14. S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst., 12(1):26--60, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Hutchins, H. Foster, T. Goradia, and T. Ostrand. Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria. In ICSE, pages 191--200, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Jiang, Z. Zhang, T. Tse, and T. Y. Chen. How well do test case prioritization techniques support statistical fault localization. In Proceedings of the 33rd Annual IEEE International Computer Software and Applications Conference (COMPSAC 2009), July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In ASE, pages 273--282, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In ICSE, pages 467--477, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In PLDI, pages 141--154, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In PLDI'05, pages 15--26, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff. Sober: statistical model-based bug localization. In FSE, pages 286--295, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Lyle and M. Weiser. Automatic bug location by program slicing. In Proceedings of the Second International Conference on Computers and Applications, pages 877--883, Beijing (Peking), China, 1987.Google ScholarGoogle Scholar
  23. H. Pan and E. H. Spafford. Heuristics for automatic localization of software faults. Technical Report SERC-TR-116-P, Purdue University, July 1992.Google ScholarGoogle Scholar
  24. X. Ren and B. G. Ryder. Heuristic ranking of java program edits for fault localization. In D. S. Rosenblum and S. G. Elbaum, editors, Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis (ISSTA'07), pages 239--249. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Renieris and S. P. Reiss. Fault localization with nearest neighbor queries. In ASE, pages 30--39, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  26. R. Santelices, J. A. Jones, Y. Yu, and M. J. Harrold. Lightweight fault-localization using multiple coverage types. In Proceedings of the 31st International Conference on Software Engineering (ICSE'09), pages 56--66, Vancouver, Canada, May 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. K. Sen, D. Marinov, and G. Agha. CUTE: A concolic unit testing engine for C. In FSE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Stoerzer, B. G. Ryder, X. Ren, and F. Tip. Finding Failure-inducing Changes in Java Programs Using Change Classification. In FSE, pages 57--68, Portland, OR, USA, Nov. 7--9, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121--189, 1995.Google ScholarGoogle Scholar
  30. T. Wang and A. Roychoudhury. Automated path generation for software fault localization. In ASE '05: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pages 347--351, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. G. Wassermann, D. Yu, A. Chander, D. Dhurjati, H. Inamura, and Z. Su. Dynamic test input generation for web applications. In ISSTA, pages 249--260, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. C. Yilmaz, A. M. Paradkar, and C. Williams. Time will tell: fault localization using time spectra. In W. Schäfer, M. B. Dwyer, and V. Gruhn, editors, Proceedings of the 30th International Conference on Software Engineering (ICSE'08), pages 81--90. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Y. Yu, J. A. Jones, and M. J. Harrold. An empirical study of the effects of test-suite reduction on fault localization. In ICSE, pages 201--210, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Zeller. Yesterday, my program worked. today, it does not. why? SIGSOFT Softw. Eng. Notes, 24(6):253--267, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Directed test generation for effective fault localization

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ISSTA '10: Proceedings of the 19th international symposium on Software testing and analysis
      July 2010
      294 pages
      ISBN:9781605588230
      DOI:10.1145/1831708

      Copyright © 2010 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 12 July 2010

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate58of213submissions,27%

      Upcoming Conference

      ISSTA '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader