Paarweises Testen
R 2.0.0
Beschreibung
Einer der sieben Grundsätze des Testens nach ISTQB besagt, dass vollständiges Testen unmöglich ist. Außer bei sehr trivialen Testobjekten ist es nicht notwendig und nicht verhältnismäßig, alle möglichen Kombinationen zu prüfen. Bei den Versuchen, die größtmögliche Abdeckung dieser Eingabewerte herzustellen, kommt es schnell zu einer sogenannten „Testfallexplosion“. Es zeigt sich jedoch, dass die meisten Fehler aufgrund der inkorrekten Verarbeitung einer einzelnen oder maximal zwei unabhängigen Variablen entstehen. Nur in sehr seltenen Fällen, die deswegen vernachlässigt werden können, haben Fehler das Zusammentreffen von drei oder mehr Faktoren als Ursache. Deshalb lässt sich der Test aller möglichen Kombinationen auf die Anzahl der Testfälle durch die Betrachtung aller gültigen Paarkombinationen signifikant reduzieren.
Der Einsatz dieses kombinatorischen Testverfahrens ist insbesondere dann sinnvoll, wenn verschiedene Kombinationen von Eingabewerten vorliegen und getestet werden sollen. Nehmen wir als einfaches Beispiel ein Formular aus einem Online-Shop, welches unterschiedliche Möglichkeiten zur Eingabe im Bestellvorgang ermöglicht. Hier könnte beispielsweise eine Auswahl des Kundentyps, der Region und der Bezahlfunktion vorliegen. (Testende werden es in der Regel mit einer viel größeren Anzahl und Komplexität von zu testenden Eingabe- und Ausgabewerten zu tun haben.)
Beispiel für paarweises Testen
Für die Tests des Bestellvorgangs gibt es in unserem Beispiel des Online-Shops drei unabhängige Variablen mit den unterschiedlichen Ausprägungen:
Region: Europa, USA, Asien, Australien
Bezahlfunktion: VISA, MasterCard, PayPal
Kundentyp: Individual, Firma
Die gesamte Zahl der möglichen Kombinationen beläuft sich in diesem sehr einfachen Beispiel auf 24 (4x3x2). In einem so überschaubaren Fall lässt sich die Auswahl der Testfälle noch manuell bilden. Dazu gibt es die folgenden Vorgehensweisen.
Variante A
Schritt 1: Die Variable mit den meisten Werten (Region – 4 Werte) wird zunächst als erstes notiert, und zwar gruppiert. Die Gruppen dieser Variable besteht aus so vielen Zeilen wie die zweite Gruppe Werte hat (Bezahlfunktion – 3 Werte).
Schritt 2: Die 2. Spalte wird nun mit den Werten der 2. Variablen (Bezahlfunktion) aufgefüllt:
Schritt 3: Die 3. Spalte wird anschließend mit den Werten der 3. Variablen (Individual, Firma) gefüllt:
Da hier deutlich wird, dass für die Kombination VISA/Firma und MasterCard/Individual keine Paare gebildet wurden, wird diese Kombination getauscht.
Somit sind wieder alle Wertepaare in der Tabelle vertreten.
Schritt 4: Die Werte in der 3. Spalte werden passend aufgefüllt, in den letzten beiden Zeilen ist egal, welcher Wert genommen wird, da alle Kombinationen bereits vorliegen:
Variante B
Schritt 1: Es bilden sich in unserem Beispiel folgende drei Gruppen mit den jeweils gültigen Paarkombinationen:
Die Aufgabe besteht nun darin, aus der Gesamtliste der möglichen Paarkombinationen die Auswahl so zu treffen, dass jedes Paar aus den drei Tabellen nur genau einmal vorkommt. So soll z.B. aus der ersten Zeile beispielsweise die Kombination Europa und VISA in keiner weiteren Zeile vorhanden sein. Die Zusammenstellung erfolgt individuell und kann entsprechend von unserem Beispiel abweichen, solange die Anforderung an die Bildung der eindeutigen Paare angewandt wird.
Schritt 2: In unserem Fall hilft die Gesamtliste der möglichen Kombinationen, beginnend mit der Spalte mit den meisten Einträgen, der die Kombinationen der anderen Werte sortiert zugeordnet werden:
Schritt 3: Um von einer Tabelle mit allen Kombinationsmöglichkeiten zu einer Tabelle nach der Paarweisen-Methode zu gelangen, kann folgendes Verfahren eingesetzt werden.
Die Liste wird Zeile für Zeile von oben geprüft und die bestehenden Paare abgeglichen. Es werden diejenigen Reihen gestrichen, zu denen in der Liste noch weitere der geprüften Paarkombination vorliegen, um Duplikate auszuschließen. Dieser Vorgang wird solange wiederholt, bis schließlich alle gültigen Paarkombinationen für die Testfälle nur noch jeweils einmal vorhanden sind.
In der Tabelle sind für die erste Zeile die Kombination der Paare (Europa/VISA, VISA/Firma, Firma/Europa) andere mögliche Paare in der Liste ersichtlich, daher kann diese Zeile gestrichen werden. In der zweiten Zeile (Europa/VISA, VISA/Individual, Individual/Europa) taucht Europa/VISA an anderer Stelle der Liste nicht mehr auf, weshalb die Zeile erhalten bleibt. Zeile 5 bleibt erhalten, da die Kombination Firma/Europa nur noch hier vorliegt. Stattdessen wird Zeile 6 entfernt, deren Kombinationen an anderer Stelle in der Liste zu finden sind.
Dieses Verfahren wird durchgängig angewandt, bis am Ende die gültigen Paare übrigbleiben. In unserem Beispiel sind es schließlich die folgenden 12 Zeilen, die erhalten bleiben:
Durch die Kombination aller gültigen Paare im Bestellvorgang entstehen schließlich 12 Testfälle, deren Zusammenstellung eine hohe systematische Abdeckung bietet.
Welche der beiden Methoden verwendet wird, hängt einerseits von der persönlichen Neigung ab, andererseits ist Variante B ab einer hohen Anzahl von Kombinationsmöglichkeiten weniger übersichtlich und schwieriger zu handhaben.
Problem Testfallexplosion
Bereits durch eine kleine Erweiterung dieses Beispiels wird deutlich, wie schnell es zur bereits genannten „Testfallexplosion“ kommen kann. Erweitert man die Möglichkeiten geringfügig, steigt die Anzahl der Möglichkeiten von vorher 24 bereits auf 300 (3x5x5x2x2):
Die beschriebene paarweise Zusammenstellung reduziert die Anzahl der Möglichkeiten in diesem Beispiel auf 25.
Die Anzahl insgesamt möglicher Testfälle wird bei komplexeren Sachverhalten sehr schnell durch eine größere Auswahl an unabhängigen Variablen in die Höhe schnellen. Die Technik des Paarweisen Testens macht diese Menge beherrschbar.
Zur Ermittlung der gültigen Kombinationen der Testfälle für das Paarweise Testen sollte in diesen umfangreichen Fällen unterstützend ein Werkzeug zur automatisierten Erstellung eingesetzt werden.
Mehrwert
Durch die Technik des Paarweisen Testens gelingt es, bei richtiger Auswahl der Testfälle eine hohe Testabdeckung bei gleichzeitiger Reduktion der Kombinationen sicherzustellen.
In Ergänzung zu anderen Techniken, wie z.B. dem Risikobasierten Testen ist das Paarweise Testen eine effektive Methode zur Auswahl der Testfälle. Beruhend auf der o.g. Beobachtung, dass Fehler häufig durch das Zusammenspiel von höchstens zwei Faktoren entstehen, reduziert sich die Anzahl der Testfälle. Dadurch können Tests kostengünstiger, schneller und einfacher durchgeführt werden.
Fehler, die durch das Zusammenspiel von drei oder mehr Faktoren entstehen sind so selten, dass sie den größeren Investitionsaufwand in die Suche i.d.R. nicht rechtfertigen.
Herausforderungen
Die Methode des Paarweisen Testens ist kein Selbstläufer, sondern muss nach Analyse der Testenden um deren Wissen um die Funktionen der Software und die geeigneten Werte ergänzt werden. So kann die Effektivität der Paarweisen Tests z.B. bei unbekannten Abhängigkeiten der Variablen untereinander oder bei unrealistischen Wertekombinationen eingeschränkt sein.
Werkzeuge
Es existiert eine Reihe quelloffener und kostenloser Tools zur Unterstützung bei der Erstellung der Testfälle mit den paarweisen Kombinationen. Diese Werkzeuge erleichtern die paarweise Zusammenstellung, können allerdings nicht die genannte fachliche Expertise bei der Ermittlung und Priorisierung der wirksamsten Eingabewerte ersetzen.
Quellen
-
ISTQB Glossary paarweiser Test, abgerufen am 19.08.2024
-
Dr. Oliver Kortendick, Kombinatorik I Paarweises Testen, Strategien zur Testfallreduktion - Vortrag im Forum für Test und Qualitätssicherung (ForTeQ - BVA) vom 25.02.2021
-
A. Spillner, T. Linz - Basiswissen Softwaretest, 7. Auflage, 2024
-
TechTarget, Basics of the Pairwise Testing Technique, abgerufen am 06.02.2024