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]  John D. McGregor,et al.  Strategies for testing products in software product lines , 2012, ACM SIGSOFT Softw. Eng. Notes.

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

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

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

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

[6]  R. Hamlet RANDOM TESTING , 1994 .

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

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

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

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

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

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

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

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

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

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

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

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