Variantenmanagement

Herausforderung im Test variantenreicher Systeme

Mehrere individuelle Ausprägungen eines Produkts auf Basis einer gemeinsamen Plattform zu erstellen ist vielfach sinnvoll. Das Testen dieser Produktvarianten, kann jedoch zu einer komplexen und zeitaufwändigen Aufgabe werden. Das Unterscheiden und Testen von gemeinsamen Grundfunktionalitäten sowie variantenspezifischen Features erfordert eine präzise Organisation und Durchführung von Testfällen. Eine weitere Schwierigkeit besteht in der Anpassung der Testdaten, da jede Variante möglicherweise unterschiedliche Daten benötigt, um aussagekräftige Testergebnisse zu erzielen.

Das kann zu folgenden Problemstellungen führen:

  • Redundanzen und Effizienzverluste bei der Definition von Tests für gemeinsamer Funktionalitäten
  • Unzureichende Verfügbarkeit oder Aktualität der Tests für bestimmte Produktvarianten
  • Einschränkungen bei der individuellen Festlegung von Testdaten für jede Produktvariante
  • Unzureichende Erkennung, Analyse und Nachverfolgung von Änderungsauswirkungen über alle Varianten hinweg
  • Schwierigkeiten bei der Einschätzung und Steuerung der Testfallmenge je Produktvariante, was zu unnötigem Testaufwand führen kann
  • Fehlende Standardisierung und Koordination bei der Durchführung und Protokollierung von Tests über verschiedene Varianten hinweg
Ableitung von drei Varianten aus der gemeinsamen Testspezfifikation innerhalb der Basis-Testobjektversion.

Effizientes Testen von Systemvarianten

Variantenmanagement in TestBench

Mit der Variantenverwaltung in TestBench wird der Test von variantenreichen Systemen unterstützt. Der besondere Fokus liegt dabei auf der komfortablen und redundanzarmen Testspezifikation für Systemvarianten, die unabhängig voneinander getestet werden müssen, sich aber große Teile der Testspezifikation teilen.

Im Rahmen der Variantenverwaltung wird eine sogenannte Basis-Testobjektversion erstellt, die die gemeinsame Testspezifikation einer Produktlinie mit allen Tests für alle Varianten enthält. Aus dieser Basis-Testobjektversion werden für die einzelnen Produkte Variantenversionen abgeleitet, die dann die Testspezifikationen für je eines der Produkte der Produktlinie enthalten.

So funktioniert Varianten-Test

Die Funktionalitäten im Detail

Innerhalb der Testspezifikation der Basis-Testobjektversion kann festgelegt werden

  • welche Tests (Testthemen, Testfallsätze, Testfälle) für welche Varianten gültig sind,
  • welche Testschritte in den Testsequenzen der Testdefinition für welche Variante gültig sind,
  • welche Parameter bzw. Testdaten sich in den Varianten unterscheiden und welches die jeweiligen Daten jeder Variante sind.

Bei der Ableitung einer Variante wird zuerst die Menge der Tests an die Varianten angepasst. Dazu werden sogenannte Variantenmarker verwendet, die Testthemen, Testfallsätzen und Testfällen zugeordnet werden können und anhand derer bei der Ableitung entschieden wird ob eines dieser Elemente in die Variante übernommen wird oder nicht. Dabei werden auch die nicht für die Variante gültigen Testschritte entfernt.

Neben der Anpassung der Menge der Tests und der Testsequenzen werden in einem zweiten Schritt die Testdaten an die Variante angepasst. Dazu werden sogenannte Platzhalter verwendet, die anstatt von normalen Variablen verwendet werden. Für jede Variante wird festgelegt welchen Wert ein Platzhalter für diese Variante annimmt. Bei der Ableitung der Variante wird dieser variantenspezifische Wert in den Platzhalter eingesetzt.
Nach der Ausführung dieser beiden Regeln ist aus einer Varianten-übergreifenden Basis-Testobjektversion eine Varianten-spezifische Version erzeugt worden.

Liste der Variantendefinitionen
Liste der Variantendefinitionen

Erstellen von Elementen

Für jede Basis-Testobjektversion können in der Variantenverwaltung Elemente angelegt und bearbeitet werden.

Der Bereich Variantendefinitionen listet die Varianten auf, die jeweils eine Ableitungsvorschrift für eine konkrete Testspezifikation darstellen. Die Varianten in TestBench korrespondieren mit den (Produkt-)Varianten des Testobjekts.

Liste der Platzhalter einer Basis-Testobjektversion
Liste der Platzhalter einer Basis-Testobjektversion

Anlegen von Platzhaltern

Der Bereich Platzhalter beschreibt eine Liste von Platzhaltern, die in der Basis-Testobjektversion an Stelle von konkreten Werten verwendet werden können. In TestBench werden konkrete Werte in Äquivalenzklassen verwaltet und werden deshalb als Repräsentanten bezeichnet.

Ersetzungstabelle mit Varianten-spezifischen Werten für jeden Platzhalter
Ersetzungstabelle mit Varianten-spezifischen Werten für jeden Platzhalter

Befüllen der Platzhalter mit Varianten-spezifischen Werten

Der Bereich Ersetzungstabelle stellt die Verbindung zwischen Varianten und Platzhaltern her. Er erlaubt es, für jeden Platzhalter in jeder Variante einen konkreten Wert anzugeben.
Nach der Festlegung von Platzhaltern und Variantendefinitionen in der Variantenverwaltung können die definierten Objekte in der Spezifikation der Basis-Testobjektversion verwendet werden.

Verwendung von Variantenmarkern
Verwendung von Variantenmarkern

Verwenden von Variantenmarkern

Für jede Variante steht in der Basis-Testobjektversion ein Variantenmarker als spezielles Keyword zur Verfügung. Diese können an Testfallsätze und Testfälle angehängt werden, um zu spezifizieren, dass das markierte Element nur für spezifische Varianten relevant ist.

Verwendung von Platzhaltern
Verwendung von Platzhaltern

Verwenden von Platzhaltern

Platzhalter können statt normaler Repräsentanten in Datentypen angelegt werden. Sie sind durch ein Symbol als sogenannte Platzhalter-Repräsentanten gekennzeichnet, verhalten sich aber ansonsten innerhalb der Basis-Testobjektversion wie normale Repräsentanten.

Ableitung der Varianten Fahrzeuge und Raumschiffe.
Ableitung der Varianten Fahrzeuge und Raumschiffe.

Ein Beispiel

Ableitung der Varianten „Fahrzeuge“ und „Raumschiffe“, die in der gemeinsamen Testspezifikation innerhalb der Basis-Testobjektversion definiert sind. Dabei werden in der erzeugen Variante „Raumschiffe“ zwei Testschritte entfernt, da sie in der Basis-Testobjektversion für diese Variante als ungültig markiert sind.

Alle Vorteile auf einen Blick

Einmalige Definition gemeinsamer Testfälle

Tests für gemeinsame Funktionalität müssen nur einmal definiert werden.

Überschneidungsfreie Tests für Varianten

Die Tests für variantenspezifische Funktionalität können überschneidungsfrei entworfen werden.

Zentrale Verfügbarkeit aller Tests im Repository

Alle Tests für alle Varianten in allen Produktversionen sind im TestBench-Repository jederzeit zentral verfügbar.

Individuelle Testdaten je Produktvariante

Die für einen Testfall benötigten Testdaten sind individuell je Produktvariante festlegbar.

Umfassende Nachvollziehbarkeit von Änderungen

Auswirkungen von Änderungen an Anforderungen oder Tests werden über alle Produktvarianten erkannt, analysierbar und nachvollziehbar.

Effiziente Steuerung der Testfallmenge

Die Menge der je Produktvariante nötigen Testfälle kann exakter beurteilt und gesteuert werden, sodass unnötiger Testaufwand vermieden wird.

Einheitliche Durchführung und Protokollierung

Die Durchführung und Protokollierung der Tests ist über alle Produktvarianten hinweg vereinheitlicht und für das Testmanagement leicht koordinierbar.

Internationalisierungs- und Lokalisierungs-Tests

Eignet sich auch hervorragend für die Abbildung und das Management von Internationalisierungs- und Lokalisierungs-Tests! Die Spezifika einer Sprache werden hier übersichtlich als Varianten-spezifische Testdatenreihen verwaltet.