Variant Management

The challenge of testing multi-variant systems

It often makes sense to create several individual versions of a product on the basis of a common platform. However, testing these product variants can become a complex and time-consuming task. Differentiating and testing common basic functionalities and variant-specific features requires precise organisation and execution of test cases. Another difficulty is the customisation of test data, as each variant may require different data to achieve meaningful test results.

This can lead to the following problems:

  • Redundancies and loss of efficiency when defining tests for common functionalities
  • Insufficient availability or timeliness of tests for certain product variants
  • Restrictions in the individual definition of test data for each product variant
  • Insufficient detection, analysis and tracking of change impacts across all variants
  • Difficulties in estimating and controlling the number of test cases per product variant, which can lead to unnecessary testing effort
  • Lack of standardisation and coordination in the execution and logging of tests across different variants

Efficient testing of system variants

Variant Management in TestBench

Variant management in TestBench supports the testing of variant-rich systems. The special focus here is on the convenient and low-redundancy test specification for system variants that have to be tested independently of each other but share large parts of the test specification.

As part of variant management, a so-called basic test object version is created, which contains the common test specification of a product line with all tests for all variants. Variant versions are derived from this basic test object version for the individual products, which then contain the test specifications for each of the products in the product line.

How variant testing works

The functionalities in detail

Within the test specification of the basic test object version, you can define

  • which tests (test topics, test case sets, test cases) are valid for which variants,
  • which test steps in the test sequences of the test definition are valid for which variant,
  • which parameters or test data differ in the variants and what the respective data of each variant is.

When deriving a variant, the set of tests is first adapted to the variants. To do this, so-called variant markers are used, which can be assigned to test topics, test case sets and test cases and which are used to decide during derivation whether one of these elements should be included in the variant or not. Test steps that are not valid for the variant are also removed.

In addition to adapting the number of tests and the test sequences, the test data is adapted to the variant in a second step. So-called placeholders are used for this, which are used instead of normal variables. For each variant, the value that a placeholder assumes for this variant is defined. When the variant is derived, this variant-specific value is inserted into the placeholder.
After executing these two rules, a variant-specific version is generated from a cross-variant basic test object version.

List of all variants definition

Creating elements

Elements can be created and edited for each basic test object version in variant management.

The Variant definitions area lists the variants, each of which represents a derivation rule for a specific test specification. The variants in TestBench correspond to the (product) variants of the test object.

List of all placeholders of a base test object version.

Creating placeholders

The Placeholders section describes a list of placeholders that can be used in the base test object version instead of concrete values. In TestBench, concrete values are managed in equivalence classes and are therefore referred to as representatives.

Replacement table with variant specific values for each placeholder.

Filling the placeholders with variant-specific values

The Replacement table area establishes the link between variants and placeholders. It allows you to specify a specific value for each placeholder in each variant.
Once placeholders and variant definitions have been defined in variant management, the defined objects can be used in the specification of the basic test object version.

Use of variants marker.

Using variant markers

A variant marker is available as a special keyword for each variant in the basic test object version. These can be attached to test case sets and test cases to specify that the marked element is only relevant for specific variants.

Use of placeholder.

Using placeholders

Placeholders can be created in data types instead of normal representatives. They are labelled with a symbol as so-called placeholder representatives, but otherwise behave like normal representatives within the basic test object version.

Derivation of the variants Vehicles and Spacecrafts.

An example

Derivation of the variants “Vehicles” and “Spaceships”, which are defined in the common test specification within the basic test object version. Two test steps are removed in the generated “Spacecrafts” variant, as they are marked as invalid for this variant in the base test object version.

All advantages at a glance

One-time definition of common test cases

Tests for common functionality only need to be defined once.

Overlap-free tests for variants

The tests for variant-specific functionality can be designed without overlaps.

Centralised availability of all tests in the repository

All tests for all variants in all product versions are centrally available in the TestBench repository at all times.

Individual test data for each product variant

The test data required for a test case can be defined individually for each product variant.

Comprehensive traceability of changes

The effects of changes to requirements or tests can be recognised, analysed and traced across all product variants.

Efficient control of the test case quantity

The number of test cases required for each product variant can be assessed and controlled more precisely, thus avoiding unnecessary testing effort.

Standardised execution and logging

The execution and logging of tests is standardised across all product variants and can be easily coordinated by test management.

Internationalisation and localisation tests

Also ideal for mapping and managing internationalisation and localisation tests! The specifics of a language are clearly managed here as variant-specific test data series.