Regression Test Selection for C++ Software

Regression testing is an important but expensive software maintenance activity performed with the aim of providing confidence in modified software. Regression test selection techniques reduce the cost of regression testing by selecting test cases for a modified program from a previously existing test suite. Many researchers have addressed the regression test selection problem for procedural language software, but few have addressed the problem for object-oriented software. This paper presents a regression test selection technique for use with object-oriented software. The technique constructs graph representations for software, and uses these graphs to select test cases, from the original test suite, that execute code that has been changed for the new version of the software. The technique is strictly code based, and requires no assumptions about the approach used to specify or test the software initially. The technique applies to modified and derived classes, and to application programs that use modified classes.

[1]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[2]  Gail E. Kaiser,et al.  Adequate testing and object-oriented programming , 1990 .

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

[4]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[5]  T. Dogsa,et al.  CAMOTE-computer aided module testing and design environment , 1988, Proceedings. Conference on Software Maintenance, 1988..

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

[7]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

[8]  Sik-Sang Yau,et al.  METHOD FOR REVALIDATING MODIFIED PROGRAMS IN THE MAINTENANCE PHASE. , 1987 .

[9]  KungDavid,et al.  Developing an object-oriented software testing and maintenance environment , 1995 .

[10]  David J. Robson,et al.  The state-based testing of object-oriented programs , 1993, 1993 Conference on Software Maintenance.

[11]  Gregg Rothermel,et al.  A Coherent Family of Analyzable Graphical Representations for Object-Oriented Software , 1996 .

[12]  BallThomas On the limit of control flow analysis for regression test selection , 1998 .

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

[14]  Barbara G. Ryder,et al.  Compile time analysis of c and c++ systems , 1996 .

[15]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[16]  Giuliano Antoniol,et al.  Flow Insensitive C++ Pointers and Polymorphism Analysis and its application to slicing , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[17]  Stephen M. Thebaut,et al.  An approach to software fault localization and revalidation based on incremental data flow analysis , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

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

[19]  Anneliese Amschler Andrews,et al.  Domain based regression testing , 1994, Proceedings 1994 International Conference on Software Maintenance.

[20]  Phyllis G. Frankl,et al.  Case studies on testing object-oriented programs , 1991, TAV4.

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

[22]  R. Lewis,et al.  Assay - A Tool to Support Regression Testing , 1989, ESEC.

[23]  Gregg Rothermel,et al.  Selecting regression tests for object-oriented software , 1994, Proceedings 1994 International Conference on Software Maintenance.

[24]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

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

[26]  J. Ziegler,et al.  An Ada based real-time closed-loop integration and regression test tool , 1989, Proceedings. Conference on Software Maintenance - 1989.

[27]  David W. Binkley,et al.  Semantics Guided Regression Test Cost Reduction , 1997, IEEE Trans. Software Eng..

[28]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

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

[30]  Rajiv Gupta,et al.  An approach to regression testing using slicing , 1992, Proceedings Conference on Software Maintenance 1992.

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

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

[33]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[34]  Gregg Rothermel,et al.  Effective regression testing using safe test selection techniques , 1995 .

[35]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[36]  Jean Zoren Werner Hartmann,et al.  Techniques for selective revalidation , 1990, IEEE Software.

[37]  Daniel Hoffman,et al.  Module test case generation , 1989, TAV3.

[38]  Gregg Rothermel,et al.  Selecting tests and identifying test coverage requirements for modified software , 1994, ISSTA '94.

[39]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[40]  P. A. Brown,et al.  The application of module regression testing at TRIUMF , 1990 .

[41]  Gregg Rothermel,et al.  An empirical comparison of regression test selection techniques , 1997 .

[42]  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.

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

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

[45]  David Binkley,et al.  Using semantic differencing to reduce the cost of regression testing , 1992, Proceedings Conference on Software Maintenance 1992.

[46]  Gregg Rothermel,et al.  A safe, efficient algorithm for regression test selection , 1993, 1993 Conference on Software Maintenance.

[47]  Elaine J. Weyuker,et al.  Axiomatizing software test data adequacy , 1986, IEEE Transactions on Software Engineering.

[48]  D. J. Robson,et al.  A framework for testing object-oriented programs , 1992 .

[49]  Donglin Liang,et al.  Slicing objects using system dependence graphs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[50]  Mary Lou Soffa,et al.  An incremental approach to unit testing during maintenance , 1988, Proceedings. Conference on Software Maintenance, 1988..

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

[52]  Barbara G. Ryder,et al.  Static Type Determination for C++ , 1994, C++ Conference.

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