To main content

Bow tie testing: a testing pattern for product lines

Abstract

Verification of highly configurable systems poses a significant challenge, the challenge of knowing that every configuration works when there often are intractably many different configurations. When a homogeneous abstraction layer has many mutually exclusive alternative implementations, we might, according to the polymorphic server test pattern, test these implementations using one test suite targeted towards the abstraction layer which is then run for each concrete implementation of the abstraction layer. But, the pattern does not handle interaction testing. Combinatorial interaction testing is one of the more promising techniques for doing interaction testing of a software product line. The bow tie testing pattern describes how the configurations which differ only in the implementation layer require one test suite. In addition, comparing the execution results of one product with another provides for a test oracle. The pattern reduces the effort of testing a highly configurable system without reducing the error detection capabilities provided by ordinary combinatorial interaction testing. We present an example of a subset of the Eclipse IDE product line, and show that only 20 test suites is required to test 41 products, a significant reduction.

Category

Academic chapter/article/Conference paper

Language

English

Author(s)

  • Martin Fagereng Johansen
  • Øystein Haugen
  • Franck Fleurey

Affiliation

  • University of Oslo
  • SINTEF Digital / Software and Service Innovation

Year

2012

Publisher

Association for Computing Machinery (ACM)

Book

EuroPLoP '11: Proceedings of the 16th European Conference on Pattern Languages of Programs

ISBN

978-1-4503-1302-5

Page(s)

9.1 - 9.13

View this publication at Cristin