Efficient testing of software product lines via centralization (short paper)

Software product line~(SPL) engineering manages families of software products that share common features. However, cost-effective test case generation for an SPL is challenging. Applying existing test case generation techniques to each product variant separately may test common code in a redundant way. Moreover, it is difficult to share the test results among multiple product variants. In this paper, we propose the use of centralization, which combines multiple product variants from the same SPL and generates test cases for the entire system. By taking into account all variants, our technique generally avoids generating redundant test cases for common software components. Our case study on three SPLs shows that compared with testing each variant independently, our technique is more efficient and achieves higher test coverage.

[1]  Yanhong A. Liu,et al.  Transformations for model checking distributed Java programs , 2001, SPIN '01.

[2]  Michael D. Ernst,et al.  Randoop: feedback-directed random testing for Java , 2007, OOPSLA '07.

[3]  R. Hamlet RANDOM TESTING , 1994 .

[4]  Øystein Haugen,et al.  An algorithm for generating t-wise covering arrays from large feature models , 2012, SPLC '12.

[5]  Sven Apel,et al.  Toward variability-aware testing , 2012, FOSD '12.

[6]  Hiroyuki Sato,et al.  Project centralization based on graph coloring , 2014, SAC.

[7]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[8]  John D. McGregor,et al.  Strategies for testing products in software product lines , 2012, ACM SIGSOFT Softw. Eng. Notes.

[9]  Carl K. Chang,et al.  OCAT: object capture-based automated testing , 2010, ISSTA '10.

[10]  Sarfraz Khurshid,et al.  Reducing combinatorics in testing product lines , 2011, AOSD '11.

[11]  Sebastian Oster,et al.  Automated Incremental Pairwise Testing of Software Product Lines , 2010, SPLC.

[12]  Myra B. Cohen,et al.  Integration Testing of Software Product Lines Using Compositional Symbolic Execution , 2012, FASE.

[13]  Myra B. Cohen,et al.  Improving the Testing and Testability of Software Product Lines , 2010, SPLC.

[14]  Hiroyuki Sato,et al.  Analyzing Distributed Java Applications by Automatic Centralization , 2013, 2013 IEEE 37th Annual Computer Software and Applications Conference Workshops.

[15]  Gilad Bracha,et al.  The Java Virtual Machine Specification, Java SE 8 Edition , 2013 .

[16]  Thierry Coupaye,et al.  ASM: a code manipulation tool to implement adaptable systems , 2002 .

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

[18]  Michael D. Ernst,et al.  Combined static and dynamic automated test generation , 2011, ISSTA '11.