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.
- 1 Aristotle Research Group, Georgia Institute of Technology. Java Architecture for Bytecode Analysis. 2000.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 7 T. Cheatham and L. Mellinger. Testing object-oriented software systems. In Proceedings of the 1990 Computer Science Conference, pages 161-165, 1990. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 11 S. P. Fielder. Object-oriented unit testing. Hewlett- Packard Journal, 40(2):69-74, Apr. 1989.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 24 C. E. McDowell and D. P. Helmbold. Debugging concurrent programs. ACM Computing Surveys, 21(4):593-622, Dec. 1989. Google ScholarDigital Library
- 25 Sun Microsystems. Java Virtual Machine Debug Interface. http://java.sun.com/products/jdk/1.2/docs/guide/jvmdi/.Google Scholar
- 26 Sun Microsystems. Java Virtual Machine Profiler Interface. http://java.sun.com/products/jdk/- 1.2/docs/guide/jvmpi/jvmpi.html.Google Scholar
- 27 Sun Microsystems. Java2 Platform, API Specification. http://java.sun.com/j2se/1.3/docs/api/.Google Scholar
- 28 Sun Microsystems. The Java Foundation Class Abstract Window Toolkit. http://java.sun.com/products/jdk/awt/.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 32 Gregg Rothermel and Mary Jean Harrold. Analyzing regression test selection techniques. IEEE Transactions on Software Engineering, 22(8):529-551, Aug. 1996. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
Index Terms
- Regression test selection for Java software
Recommendations
A safe, efficient regression test selection technique
Regression testing is an expensive but necessary maintenance activity performed on modified software to provide confidence that changes are correct and do not adversely affect other portions of the softwore. A regression test selection technique choses, ...
Regression test selection for Java software
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsRegression 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 ...
Empirical Studies of a Safe Regression Test Selection Technique
Regression testing is an expensive testing procedure utilized to validate modified software. Regression test selection techniques attempt to reduce the cost of regression testing by selecting a subset of a program's existing test suite. Safe regression ...
Comments