Automated Code-Based Test Selection for Software Product Line Regression Testing

Regression testing for software product line (SPL) is challenging and can be expensive because it must ensure that all the products of a product family are correct whenever changes are made. SPL regression testing can be made efficient by selecting only the test cases that are relevant to the changes. In the past, some approaches for SPL test case selection have been proposed. However, they require requirements specification, architecture and/or traceabilities for test cases that are well managed for selecting test cases for a retest. In this paper, we propose an automated method of source code-based regression test selection for SPLs that selects regression tests, based on the commonality and variability of a product family while leaving out the test cases not affected by the changes to the source code. Preliminary evaluation of our method using five product lines shows that our method reduces without missing any fault-revealing test cases the number of test cases for a retest by 22.4%, 13.4% and 20.4%, on average, compared to, respectively, the retest-all method, the random selection method and the complete selection method.

[1]  Sandro Schulze,et al.  Delta-oriented test case prioritization for integration testing of software product lines , 2015, SPLC.

[2]  Arnaud Gotlieb,et al.  A systematic test case selection methodology for product lines: results and insights from an industrial case study , 2014, Empirical Software Engineering.

[3]  Malte Lochau,et al.  Incremental Model-Based Testing of Delta-Oriented Software Product Lines , 2012, TAP@TOOLS.

[4]  Lionel C. Briand,et al.  Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria , 2006, IEEE Transactions on Software Engineering.

[5]  Emily Hill,et al.  An empirical comparison of test suite reduction techniques for user-session-based testing of Web applications , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[6]  Per Runeson,et al.  A systematic review on regression test selection techniques , 2010, Inf. Softw. Technol..

[7]  Myra B. Cohen,et al.  Continuous test suite augmentation in software product lines , 2013, SPLC '13.

[8]  Shigeru Hosono,et al.  Genetic Algorithm-based Test Generation for Software Product Line with the Integration of Fault Localization Techniques , 2017, Empirical Software Engineering.

[9]  A. Orso,et al.  Retesting software during development and maintenance , 2008, 2008 Frontiers of Software Maintenance.

[10]  Gordon Fraser,et al.  EvoSuite: automatic test suite generation for object-oriented software , 2011, ESEC/FSE '11.

[11]  Arnaud Gotlieb,et al.  Multi-objective test prioritization in software product line testing: an industrial case study , 2014, SPLC.

[12]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[13]  Gunter Saake,et al.  Effective product-line testing using similarity-based product prioritization , 2016, Software & Systems Modeling.

[14]  Arnaud Gotlieb,et al.  Cost-effective test suite minimization in product lines using search techniques , 2015, J. Syst. Softw..

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

[16]  Malte Lochau,et al.  Multi-objective Test Suite Optimization for Incremental Product Family Testing , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[17]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[18]  Sungwon Kang,et al.  A survey on software product line testing , 2012, SPLC '12.

[19]  Thomas Thüm,et al.  Applying Incremental Model Slicing to Product-Line Regression Testing , 2016, ICSR.

[20]  Miguel A. Laguna,et al.  A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring , 2013, Sci. Comput. Program..

[21]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .