Regression test size reduction using improved precision slices

We propose a technique to select regression test cases that is targeted to reduce the size of test suite by using improved precision slices. For this, we first construct the control flow graph model of an object-oriented program. Subsequently, we identify the infeasible paths and compute the definition-use (def-use) pairs only along the feasible paths. Next, we construct the dependency model using this information. This helps us to ignore the dependencies existing along infeasible paths leading to construction of precise slices. Then, we build the dependency model and construct forward slices on the dependency model to determine the affected nodes and the test cases that cover the affected nodes in the dependency graph model are selected for regression testing. The results obtained from our experimental studies indicate that our approach reduces the regression test suite size on an average by 11.25 % as compared to a related approach, without degrading the fault-revealing effectiveness.

[1]  P. D. Coward,et al.  Symbolic execution and testing , 1990 .

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

[3]  Minh Ngoc Ngo,et al.  Detecting large number of infeasible paths through recognizing their patterns , 2007, ESEC-FSE '07.

[4]  Zafar I. Malik,et al.  An approach for selective state machine based regression testing , 2007, A-MOST '07.

[5]  Eliane Martins,et al.  Regression Test Selection for Testable Classes , 2005, EDCC.

[6]  Allen Goldberg,et al.  Applications of feasible path analysis to program testing , 1994, ISSTA '94.

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

[8]  William Landi,et al.  Interprocedural Def-Use associations in C programs , 1991, TAV4.

[9]  Michael A. Hennell,et al.  The causes and effects of infeasible paths in computer programs , 1985, ICSE '85.

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

[11]  Debra J. Richardson,et al.  A model-based regression test selection technique , 2009, 2009 IEEE International Conference on Software Maintenance.

[12]  Rajib Mall,et al.  An approach to prioritize the regression test cases of object-oriented programs , 2013, CSI Transactions on ICT.

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

[14]  Antonia Bertolino,et al.  Feasible test path selection by principal slicing , 1997, ESEC '97/FSE-5.

[15]  Richard N. Taylor,et al.  Combining Static Concurrency Analysis with Symbolic Execution , 1988, IEEE Trans. Software Eng..

[16]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[17]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[18]  PanigrahiChhabi Rani,et al.  Regression test size reduction using improved precision slices , 2016 .

[19]  Mario Jino,et al.  Identification of potentially infeasible program paths by monitoring the search for test data , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[20]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

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

[22]  Lionel C. Briand,et al.  Automating regression test selection based on UML designs , 2009, Inf. Softw. Technol..

[23]  Laurie A. Williams,et al.  Applying regression test selection for COTS-based applications , 2006, ICSE.

[24]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[25]  Gregg Rothermel,et al.  Regression test selection for C++ software , 2000 .

[26]  Rajib Mall,et al.  A heuristic-based regression test case prioritization approach for object-oriented programs , 2013, Innovations in Systems and Software Engineering.

[27]  Malcolm Munro,et al.  An improved method of selecting regression tests for C++ programs , 2001, J. Softw. Maintenance Res. Pract..

[28]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[29]  Jian Zhang,et al.  A Constraint Solver and Its Application to Path Feasibility Analysis , 2001, Int. J. Softw. Eng. Knowl. Eng..

[30]  Rajiv Gupta,et al.  Refining data flow information using infeasible paths , 1997, ESEC '97/FSE-5.

[31]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

[32]  D. F. Yates,et al.  Predictive metric for likely feasibility of program paths , 1990 .