A novel model-based testing approach for software product lines

Model-based testing relies on a model of the system under test. FineFit is a framework for model-based testing of Java programs. In the FineFit approach, the model is expressed by a set of tables based on Parnas tables. A software product line is a family of programs (the products) with well-defined commonalities and variabilities that are developed by (re)using common artifacts. In this paper, we address the issue of using the FineFit approach to support the development of correct software product lines. We specify a software product line as a specification product line where each product is a FineFit specification of the corresponding software product. The main challenge is to concisely specify the software product line while retaining the readability of the specification of a single system. To address this, we used delta-oriented programming, a recently proposed flexible approach for implementing software product lines, and developed: (1) delta tables as a means to apply the delta-oriented programming idea to the specification of software product lines; and (2) DeltaFineFit as a novel model-based testing approach for software product lines.

[1]  Ina Schaefer,et al.  Compositional type-checking for delta-oriented programming , 2011, AOSD '11.

[2]  David Lorge Parnas,et al.  Tabular Representation of Relations , 1992 .

[3]  Willem-Paul de Roever,et al.  Data Refinement by Willem-Paul de Roever , 1998 .

[4]  Ina Schaefer,et al.  Compositional type checking of delta-oriented software product lines , 2012, Acta Informatica.

[5]  Øystein Haugen,et al.  Properties of realistic feature models make combinatorial testing of product lines feasible , 2011, MODELS'11.

[6]  Ina Schaefer,et al.  Pure delta-oriented programming , 2010, FOSD '10.

[7]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[8]  Rick Mugridge,et al.  Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin) , 2005 .

[9]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[10]  Malte Lochau,et al.  Feature Interaction Aware Test Case Generation for Embedded Control Systems , 2010, Electron. Notes Theor. Comput. Sci..

[11]  Johan Dovland,et al.  A transformational proof system for delta-oriented programming , 2012, SPLC '12.

[12]  John D. McGregor,et al.  On strategies for testing software product lines: A systematic literature review , 2014, Inf. Softw. Technol..

[13]  Goetz Botterweck,et al.  Software diversity: state of the art and perspectives , 2012, International Journal on Software Tools for Technology Transfer.

[14]  Bernhard Beckert,et al.  KeYGenU: combining verification-based and capture and replay techniques for regression unit testing , 2011, Int. J. Syst. Assur. Eng. Manag..

[15]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[16]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

[17]  Reiner Hähnle,et al.  A Liskov Principle for Delta-Oriented Programming , 2012, ISoLA.

[18]  John D. McGregor,et al.  A systematic mapping study of software product lines testing , 2011, Inf. Softw. Technol..

[19]  Per Runeson,et al.  Software product line testing - A systematic mapping study , 2011, Inf. Softw. Technol..

[20]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[21]  Sandro Schulze,et al.  Towards efficient SPL testing by variant reduction , 2013, VariComp@AOSD.

[22]  C. Krueger,et al.  Eliminating the adoption barrier , 2002, IEEE Software.

[23]  Bruce G. Lindsay,et al.  How to roll a join: asynchronous incremental view maintenance , 2000, SIGMOD '00.

[24]  Sandro Schulze,et al.  DeltaJ 1.5: delta-oriented programming for Java 1.5 , 2014, PPPJ.

[25]  Sarfraz Khurshid,et al.  Incremental Test Generation for Software Product Lines , 2010, IEEE Transactions on Software Engineering.

[26]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

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

[28]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[29]  Ina Schaefer,et al.  Dynamic delta-oriented programming , 2011, SPLC '11.

[30]  Willem-Paul de Roever,et al.  Data Refinement: Theory , 1998 .

[31]  Sven Apel,et al.  Type safety for feature-oriented product lines , 2010, Automated Software Engineering.

[32]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[33]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

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

[35]  Johan Dovland,et al.  Lazy Behavioral Subtyping , 2008, FM.

[36]  Willem P. de Roever,et al.  Data Refinement: Model-oriented Proof Theories and their Comparison , 1998, Cambridge Tracts in Theoretical Computer Science.

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

[38]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[39]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[40]  Sven Apel,et al.  Feature featherweight java: a calculus for feature-oriented programming and stepwise refinement , 2008, GPCE '08.

[41]  Shmuel S. Tyszberowicz,et al.  Data refinement based testing , 2011, Int. J. Syst. Assur. Eng. Manag..

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

[43]  John D. McGregor,et al.  Corrigendum to: "A systematic mapping study of software product lines testing" [Inf. Softw. Technology 53 (5) (2011) 407-423] , 2012, Information and Software Technology.

[44]  Shmuel S. Tyszberowicz,et al.  Refinement-based testing of delta-oriented product lines , 2013, PPPJ.

[45]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[46]  Luca Padovani,et al.  A formal foundation for dynamic delta-oriented software product lines , 2012, GPCE '12.

[47]  Malte Lochau,et al.  Delta-oriented model-based integration testing of large-scale systems , 2014, J. Syst. Softw..