Testing in a Software Product Line Environment

Author:
        John McGregor, Clemson University

This set of lectures provides a comprehensive test method for a software product line organization. A software product line is "a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. [Clements 02]" The product line organization is structured differently from a single product project team. The test method takes advantage of both the unique organization and the unique technical environment presented by the product line. A specialization of this method would produce a viable test method for a single product project.

The test method accommodates a wide variety of processes, tools, and techniques including those presented in the other lectures during this summer school. The test method is flexible so that it can be used with a wide variety of development methods yet be tightly integrated with the development approach. The method can also be tuned to account for the criticality of the system under development.

These lectures focus on the test assets and test processes used by a software product line organization. The tutorial will allow participants to consider how to modify their existing testing practices to take advantage of the strategic reuse experienced in building products using a software product line strategy. The software product line approach blends organizational management, technical management and software engineering principles to efficiently and effectively produce a set of related products. The major test assets: test plans, test cases, test data, and test reports are created using the same variation point mechanisms that the development team uses to ensure that all of the assets are usable across all products in the product line.

This tutorial will allow participants to consider how to modify existing testing practices to take advantage of strategic reuse. At the end of this tutorial you will be able to:

  • Understand the basic concepts of a software product line
  • Understand the basic concepts of testing in software product line organizations
  • Evaluate the benefits, costs and risks of creating reusable test assets.
  • Define a test method for your product line organization.
  • Identify the steps necessary to initiate these activities for your organization.

[Clements 02] Clements, Paul & Northrop, Linda. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2002.