skip to main content
10.1145/1401827.1401835acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

BERT: BEhavioral Regression Testing

Published:21 July 2008Publication History

ABSTRACT

During maintenance, it is common to run the new version of a program against its existing test suite to check whether the modifications in the program introduced unforeseen side effects. Although this kind of regression testing can be effective in identifying some change-related faults, it is limited by the quality of the existing test suite. Because generating tests for real programs is expensive, developers build test suites by finding acceptable tradeoffs between cost and thoroughness of the tests. Such test suites necessarily target only a small subset of the program's functionality and may miss many regression faults. To address this issue, we introduce the concept of behavioral regression testing, whose goal is to identify behavioral differences between two versions of a program through dynamic analysis. Intuitively, given a set of changes in the code, behavioral regression testing works by (1) generating a large number of test cases that focus on the changed parts of the code, (2) running the generated test cases on the old and new versions of the code and identifying differences in the tests' outcome, and (3) analyzing the identified differences and presenting them to the developers. By focusing on a subset of the code and leveraging differential behavior, our approach can provide developers with more (and more focused) information than traditional regression testing techniques. This paper presents our approach and performs a preliminary assessment of its feasibility.

References

  1. T. Apiwattanapong, A. Orso, and M. J. Harrold. A differencing algorithm for object-oriented programs. In Proc. IEEE International Conference on Automated Software Engineering (ASE 2004), pages 2--13, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Apiwattanapong, R. Santelices, P. K. Chittimalli, A. Orso, and M. J. Harrold. Matrix: Maintenance-oriented testing requirements identifier and examiner. In Proc. Testing: Academic & Industrial Conference on Practice And Research Techniques (TAIC-PART 2006), pages 137--146, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Boshernitsan, R. Doong, and A. Savoia. From Daikon to Agitator: lessons and challenges in building a commercial tool for developer testing. In Proc. ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2006), pages 169--180, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Daniel, D. Dig, K. Garcia, and D. Marinov. Automated testing of refactoring engines. In Proc. joint meeting of European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2007), pages 185--194, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. A. DeMillo, R. J. Lipton, and F. G. Sayward. Hints on test data selection: Help for the practicing programmer. IEEE Computer, 11(4): 34--41, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. A. DeMillo and A. J. Offutt. Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9): 900--910, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Elbaum, H. N. Chin, M. Dwyer, and J. Dokulil. Carving differential unit test cases from system test cases. In Proc. ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 2006), pages 253--264, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. B. Evans and A. Savoia. Differential testing: a new approach to change detection. In Proc. joint meeting of European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2007), pages 549--552, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Gamma and K. Beck. JUnit: a regression testing framework. http://www.junit.org, 2002.Google ScholarGoogle Scholar
  10. T. Graves, M. J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. In Proc. International Conference on Software Engineering (ICSE 1998), pages 188--197, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Groce, G. Holzmann, and R. Joshi. Randomized differential testing as a prelude to formal verification. In Proc. International Conference on Software Engineering (ICSE 2007), pages 621--631, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. JUnit Factory website, 2008. http://www.junitfactory.com/.Google ScholarGoogle Scholar
  13. B. Korel and A. M. Al-Yami. Automated regression test generation. In Proc. ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 1998), pages 143--152, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Lämmel and W. Schulte. Controllable combinatorial coverage in grammar-based testing. In Proc. IFIP International Conference on Testing Communicating Systems (TestCom 2006), pages 19--38, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Technical Report TR 98-06i, Department of Computer Science, Iowa State University, 1998.Google ScholarGoogle Scholar
  16. H. K. N. Leung and L. White. Insights into regression testing. In Proc. International Conference on Software Maintenance (ICSM 1989), pages 60--69, 1989.Google ScholarGoogle ScholarCross RefCross Ref
  17. W. M. McKeeman. Differential testing for software. Digital Technical Journal of Digital Equipment Corporation, 10(1): 100--107, 1998.Google ScholarGoogle Scholar
  18. A. Orso, S. Joshi, M. Burger, and A. Zeller. Isolating relevant component interactions with JINSI. In Proc. International ICSE Workshop on Dynamic Analysis (WODA 2006), pages 3--9, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Orso and B. Kennedy. Selective capture and replay of program executions. In Proc. International ICSE Workshop on Dynamic Analysis (WODA 2005), pages 29--35, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Orso, N. Shi, and M. J. Harrold. Scaling regression testing to large software systems. In Proc. ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 2004), pages 241--252, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Pacheco and M. D. Ernst. Randoop: Feedback-directed random testing for Java. In Companion to the 22nd ACM SIGPLAN Conference on Object Oriented Programming Systems and Applications (OOPSLA Companion 2007), pages 815--816, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Parasoft Jtest manuals version 4.5. Online manual, 2003. http://www.parasoft.com/.Google ScholarGoogle Scholar
  23. A. Podgurski and E. J. Weyuker. Re-estimation of software reliability after maintenance. In Proc. International Conference on Software Engineering (ICSE 1997), pages 79--85, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. X. Ren, F. Shah, F. Tip, B. Ryder, and O. Chesley. Chianti: A tool for change impact analysis of Java programs. In Proc. ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004), pages 432--448, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. G. Rothermel, R. Untch, C. Chu, and M. Harrold. Test case prioritization. IEEE Transactions on Software Engineering, 27(10): 929--948, October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. D. Saff, S. Artzi, J. H. Perkins, and M. D. Ernst. Automatic test factoring for Java. In Proc. IEEE International Conference on Automated Software Engineering (ASE 2005), pages 114--123, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. E. J. Weyuker. On testing non-testable programs. Compuer Journal, 25: 465--470, 1982.Google ScholarGoogle ScholarCross RefCross Ref
  28. T. Xie. Augmenting automatically generated unit-test suites with regression oracle checking. In Proc. European Conference on Object-Oriented Programming (ECOOP 2006), pages 380--403, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. T. Xie, K. Taneja, S. Kale, and D. Marinov. Towards a framework for differential unit testing of object-oriented programs. In Proc. International Workshop on Automation of Software Test (AST 2007), pages 5--11, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. BERT: BEhavioral Regression Testing

    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
      WODA '08: Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
      July 2008
      81 pages
      ISBN:9781605580548
      DOI:10.1145/1401827

      Copyright © 2008 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: 21 July 2008

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader