Enabling Verifiable Conformance for Product Lines

Software product-line engineering aims at improving the efficiency and effectiveness of software development by exploiting the product line members’ commonalities and by controlling their variabilities. The duality of commonalities and variabilities holds for all kinds of assets ranging from requirements specifications over design documents to test cases. A decision model controls the way a product can be distinguished from the rest of the family and is used to extract product-specific information (e.g., product requirements) from the family specifications. Though we traditionally employ decision models for generating code, we aim on capitalizing on the investment for designing the decision model by leveraging it to generate test cases. In this paper we focus on acceptance testing of functions and features, and introduce our approach of using the decision model concept to maintain and generate acceptance test cases for one of our major product lines. Preliminary evaluation of this method demonstrates very promising savings of space and effort as compared to conventional methods.

[1]  Henry Muccini,et al.  Towards Testing Product Line Architectures , 2003, TACoS.

[2]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[3]  Jan Bosch,et al.  Software product lines: organizational alternatives , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[4]  Daniel Hoffman,et al.  Software product lines: a case study , 2000 .

[5]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

[6]  B. Geppert,et al.  Combining Product Line Engineering with Options Thinking , 2001 .

[7]  Birgit Geppert,et al.  Goal-oriented assessment of product-line domains , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[8]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

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

[10]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[11]  Dieter Hogrefe,et al.  The CCITT-Specification and Description Language SDL , 1989, Comput. Networks.

[12]  Jan Bosch,et al.  Proceedings of the 23rd International Conference on Software Engineering, ICSE 2001, 12-19 May 2001, Toronto, Ontario, Canada , 2001, ICSE.

[13]  W. Eric Wong,et al.  Automatic test generation from communicating extended finite state machine (CEFSM)-based models , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[14]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.