Regression test selection for Java software

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]  Jens Palsberg,et al.  Scalable propagation-based call graph construction algorithms , 2000, OOPSLA '00.

[2]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[3]  Gregg Rothermel,et al.  An empirical study of regression test application frequency , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[4]  David Chenho Kung,et al.  A technique for the selective revalidation of OO software , 1997, J. Softw. Maintenance Res. Pract..

[5]  John D. McGregor,et al.  Incremental testing of object-oriented class structures , 1992, ICSE '92.

[6]  Gregg Rothermel,et al.  An empirical study of regression test selection techniques , 2001, ACM Trans. Softw. Eng. Methodol..

[7]  Gregg Rothermel,et al.  A comparative study of coarse- and fine-grained safe regression test-selection techniques , 2001, TSEM.

[8]  Hareton Leung,et al.  A firewall concept for both control-flow and data-flow in regression integration testing , 1992, Proceedings Conference on Software Maintenance 1992.

[9]  David Chenho Kung,et al.  Change impact identification in object oriented software maintenance , 1994, Proceedings 1994 International Conference on Software Maintenance.

[10]  Gregg Rothermel,et al.  Empirical Studies of a Safe Regression Test Selection Technique , 1998, IEEE Trans. Software Eng..

[11]  David S. Rosenblum,et al.  TESTTUBE: a system for selective regression testing , 1994, Proceedings of 16th International Conference on Software Engineering.

[12]  Rothermel Karen,et al.  A Comparative Study of Coarse-and Fine-Grained Safe Regression Test Selection , 1999 .

[13]  Donglin Liang,et al.  Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java , 2001, PASTE '01.

[14]  Thomas Ball,et al.  On the limit of control flow analysis for regression test selection , 1998, ISSTA '98.

[15]  Brian F. Cooper,et al.  Prof Builder: A Package for Rapidly Building Java Execution Profilers ; CU-CS-853-98 , 1998 .

[16]  Gregg Rothermel,et al.  Regression Test Selection for C++ Software , 2000, Softw. Test. Verification Reliab..

[17]  Hareton K. N. Leung,et al.  A cost model to compare regression test strategies , 1991, Proceedings. Conference on Software Maintenance 1991.

[18]  Sheng Liang,et al.  Java Virtual Machine Profiler Interface , 2000, IBM Syst. J..

[19]  David Chenho Kung,et al.  Developing an object-oriented software testing and maintenance environment , 1995, CACM.

[20]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[21]  Hareton K. N. Leung,et al.  Insights into testing and regression testing global variables , 1990, J. Softw. Maintenance Res. Pract..

[22]  David S. Rosenblum,et al.  Design and evaluation of a wide-area event notification service , 2001, TOCS.

[23]  Hareton Leung,et al.  A study of integration testing and software regression at the integration level , 1990, Proceedings. Conference on Software Maintenance 1990.

[24]  Thomas J. Cheatham,et al.  Testing object-oriented software systems , 1990, CSC '90.

[25]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[26]  Gregg Rothermel,et al.  A com-parative study of coarse-and ne-grained safe regres-sion test selection , 2001 .

[27]  Brian F. Cooper,et al.  ProfBuilder: A Package for Rapidly Building Java Execution Prolers , 1998 .

[28]  Phyllis G. Frankl,et al.  Pythia: a regression test selection tool based on textual differencing , 1997 .

[29]  David F. Bacon,et al.  Fast static analysis of C++ virtual function calls , 1996, OOPSLA '96.

[30]  John D. McGregor,et al.  Incremental Testing Of Object-Oriented Class Structures/spl dagger/ , 1992, International Conference on Software Engineering.

[31]  David Chenho Kung,et al.  Or Regression Testing of Object-Oriented Programs , 1996, J. Syst. Softw..

[32]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, ACM Comput. Surv..

[33]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[34]  Gregg Rothermel,et al.  A Unifying Framework Supporting the Analysis and Development of Safe Regression Test Selection Techniques , 1999 .