skip to main content
article

Regression test selection for Java software

Authors Info & Claims
Published:01 October 2001Publication History
Skip Abstract Section

Abstract

Regression testing is applied to modified software to provide confidence that the changed parts behave as intended and that the unchanged parts have not been adversely affected by the modifications. To reduce the cost of regression testing, test cases are selected from the test suite that was used to test the original version of the software---this process is called regression test selection. A safe regression-test-selection algorithm selects every test case in the test suite that may reveal a fault in the modified software. Safe regression-test-selection technique that, based on the use of a suitable representation, handles the features of the Java language. Unlike other safe regression test selection techniques, the presented technique also handles incomplete programs. The technique can thus be safely applied in the (very common) case of Java software that uses external libraries of components; the analysis of the external code is note required for the technique to select test cases for such software. The paper also describes RETEST, a regression-test-selection algorithm can be effective in reducing the size of the test suite.

References

  1. 1 Aristotle Research Group, Georgia Institute of Technology. Java Architecture for Bytecode Analysis. 2000.Google ScholarGoogle Scholar
  2. 2 D. F. Bacon and P. F. Sweeney. Fast static analysis of C++ virtual function calls. In Proceedings of the 11th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 324- 341, Oct. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 T. Ball. On the limit of control ow analysis for regression test selection. In ACM Int'l Symp. on Softw. Testing and Analysis, pages 134-142, Mar. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 J. Bible and G. Rothermel. A unifying framework supporting the analysis and development of safe regression test selection techniques. Technical Report 99-60- 11, Oregon State University, Dec. 1999.Google ScholarGoogle Scholar
  5. 5 J. Bible, G. Rothermel, and D. Rosenblum. A comparative study of coarse- and fine-grained safe regression test selection. ACM Transactions on Software Engineering and Methodology, 10(2):149-183, Apr. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 A. Carzaniga, D. S. Rosenblum, and A. L. Wolf. Design and evaluation of a wide-area event notification service. ACM Transactions on Computer Systems, 19(3):332- 383, Aug. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 T. Cheatham and L. Mellinger. Testing object-oriented software systems. In Proceedings of the 1990 Computer Science Conference, pages 161-165, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Y. F. Chen, D. S. Rosenblum, and K. P. Vo. TestTube: A system for selective regression testing. In Proceedings of the 16th International Conference on Software Engineering, pages 211-222, May 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 B. F. Cooper, H. B. Lee, and B. G. Zorn. Profbuilder: A package for rapidly building java execution profilers. Technical report, University of Colorado.Google ScholarGoogle Scholar
  10. 10 J. Dean, D. Grove, and C. Chambers. Optimizations of object-oriented programs using static class hierachy analysis. In European Conference on Object-Oriented Programming, pages 77-101, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 S. P. Fielder. Object-oriented unit testing. Hewlett- Packard Journal, 40(2):69-74, Apr. 1989.Google ScholarGoogle Scholar
  12. 12 T. Graves, M. J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. In Proceedings of the International Conference on Software Engineering, pages 188-197, Apr. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 M. J. Harrold, J. D. McGregor, and K. J. Fitzpatrick. Incremental testing of object-oriented class inheritance structures. In Proceedings of the 14th International Conference on Software Engineering, pages 68-80, May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 P. Hsia, X. Li, D. Kung, C-T. Hsu, L. Li, Y. Toyoshima, and C. Chen. A technique for the selective revalidation of OO software. Software Maintenance: Research and Practice, 9:217-233, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test application frequency. In Proceedings of the 22nd International Conference on Software Engineering, pages 126-135, Jun. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 D. Kung, J. Gao, P. Hsia, Y. Toyoshima, and C. Chen. Firewall regression testing and software maintenance of object-oriented systems. Journal of Object-Oriented Programming, 1994.Google ScholarGoogle Scholar
  17. 17 D. Kung, J. Gao, P. Hsia, Y. Toyoshima, C. Chen, Y- S. K im, and Y-K. Song. Developing an object-oriented software testing and maintenance environment. Communications of the ACM, 38(10):75-87, Oct. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 D. Kung, J. Gao, P. Hsia, F. Wen, Y. Toyoshima, and C. Ch en. On regression testing of object-oriented programs. The Journal of Systems and Software, 32(1):21- 40, Jan. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 D. Kung, J. Gao, P. Hsia, Y. Wen, and Y. Toyoshima. Change impact identification in object-oriented software maintenance. In Proceedings of the International Conference on Software Maintenance '94, pages 202- 211, Sep. 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 H. K. N. Leung and L. J. White. A study of integration testing and software regression at the integration level. In Proceedings of the Conference on Software Maintenance - 1990, pages 290-300, Nov. 1990.Google ScholarGoogle ScholarCross RefCross Ref
  21. 21 H. K. N. Leung and L. J. White. Insights into testing and regression testing global variables. Journal of Software Maintenance: Research and Practice, 2:209-222, Dec. 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 H. K. N. Leung and L. J. White. A cost model to compare regression test strategies. In Proceedings of the Conference on Software Maintenance '91, pages 201- 208, Oct. 1991.Google ScholarGoogle ScholarCross RefCross Ref
  23. 23 D. Liang, M. Pennings, and M. J. Harrold. Extending and evaluating ow-insensitive and context-insensitive points-to analyses for java. In Proceedings of the ACM Workshop on Program Analyses for Software Tools and Engineering, Jun. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 C. E. McDowell and D. P. Helmbold. Debugging concurrent programs. ACM Computing Surveys, 21(4):593-622, Dec. 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Sun Microsystems. Java Virtual Machine Debug Interface. http://java.sun.com/products/jdk/1.2/docs/guide/jvmdi/.Google ScholarGoogle Scholar
  26. 26 Sun Microsystems. Java Virtual Machine Profiler Interface. http://java.sun.com/products/jdk/- 1.2/docs/guide/jvmpi/jvmpi.html.Google ScholarGoogle Scholar
  27. 27 Sun Microsystems. Java2 Platform, API Specification. http://java.sun.com/j2se/1.3/docs/api/.Google ScholarGoogle Scholar
  28. 28 Sun Microsystems. The Java Foundation Class Abstract Window Toolkit. http://java.sun.com/products/jdk/awt/.Google ScholarGoogle Scholar
  29. 29 G. Rothermel and M. J. Harrold. A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology, 6(2):173-210, Apr. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30 G. Rothermel and M. J. Harrold. Empirical studies of a safe regression test selection technique. IEEE Transactions on Software Engineering, 24(6):401-419, Jun. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 G. Rothermel, M. J. Harrold, and J. Dedhia. Regression test selection for C++ software. Journal of Software Testing, Verification, and Reliability, 10(6):77- 109, Jun. 2000.Google ScholarGoogle Scholar
  32. 32 Gregg Rothermel and Mary Jean Harrold. Analyzing regression test selection techniques. IEEE Transactions on Software Engineering, 22(8):529-551, Aug. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33 S. Sinha and M. J. Harrold. Analysis and testing of programs with exception-handling constructs. IEEE Transactions on Software Engineering, pages 849-871, Sep. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34 F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 281-293, Oct. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35 F. Vokolos and P. Frankl. Pythia: A regression test selection tool based on text differencing. In International Conference on Reliability, Quality, and Safety of Software Intensive Systems, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36 L. J. White and K. Abdullah. A firewall approach for regression testing of object-oriented software. In Proceedings of 10th Annual Software Quality Week, May 1997.Google ScholarGoogle Scholar
  37. 37 L. J. White and H. K. N. Leung. A firewall concept for both control- ow and data- ow in regression integration testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 262-270, Nov. 1992.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Regression test selection for Java software

        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

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 36, Issue 11
          11/01/2001
          380 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/504311
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
            October 2001
            382 pages
            ISBN:1581133359
            DOI:10.1145/504282

          Copyright © 2001 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: 1 October 2001

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader