Was ist Pairwise Testing?
Zum vollständigen Anzeigen nach rechts wischen oder mit den Pfeiltasten scrollen.
Pairwise Testing (deutsch: paarweises Testen, die wichtigste Spielart des kombinatorischen Tests) ist ein Testverfahren, das aus allen möglichen Wertekombinationen mehrerer Parameter eine kleine Testmenge auswählt, in der jede Paarung zweier Parameterwerte mindestens einmal vorkommt. Statt das komplette kartesische Produkt abzuarbeiten, wird das Zusammenspiel je zweier Parameter geprüft, und zwar garantiert für jedes Paar. Die Werkzeuge optimieren dabei kräftig, das theoretische Minimum treffen sie aber nicht zuverlässig; die Suche danach ist rechnerisch hart. Entscheidend ist die Garantie, nicht die letzte eingesparte Zeile.
Warum das trägt, ist empirisch untersucht, wenn auch nicht so glatt, wie es oft dargestellt wird. Kuhn, Wallace und Gallo haben 2004 für NIST und die NASA die Fehlerdatenbanken von neun realen Systemen ausgewertet, vom medizinischen Embedded-Gerät über Webbrowser und HTTP-Server bis zu einer verteilten wissenschaftlichen Datenbank. Der gemeinsame Befund: Fast alle Fehler hängen an wenigen zusammenwirkenden Parametern.
Die Zahlen dahinter gehen allerdings weit auseinander. Einzelne Parameterwerte lösten je nach System zwischen 29 und 82 Prozent der Fehler aus. Rechnet man Paar-Interaktionen dazu, liegt man zwischen 47 und 97 Prozent, bei Dreier-Interaktionen zwischen 89 und 99 Prozent. Die Studie berichtet nirgends eine feste Kurve, und die Autoren schreiben ausdrücklich, dass für eine Verallgemeinerung deutlich mehr Datensätze nötig wären.
Für die Praxis bleibt trotzdem ein klarer Schluss: Der Sprung von Einzelwerten zu Paaren bringt in jedem untersuchten System den mit Abstand größten Zugewinn, der Schritt zu Dreier-Interaktionen deutlich weniger. Wo genau die eigenen Zahlen liegen, hängt vom System ab. Dass Pairwise der wirtschaftlichste Einstieg ist, gilt über alle neun.
Der kombinatorische Test zählt zu den datenbasierten Testentwurfsverfahren. Über das Paar hinaus lässt er sich verallgemeinern: Bei der t-way-Überdeckung kommt jedes Tupel aus t Parameterwerten mindestens einmal vor, Pairwise ist der Fall t gleich 2.
Wann ist das Verfahren geeignet?
Überall dort, wo mehrere Parameter mit klar definierten Werten zusammenspielen und vollständiges Testen unwirtschaftlich wäre. Typische Felder: Konfigurationstests über Browser, Betriebssystem, Auflösung und Sprache; Geschäftsregeln mit mehreren Faktoren; Schnittstellen mit vielen optionalen Parametern; systematische Berechtigungstests.
Voraussetzung ist, dass sich der Eingaberaum als endliche Liste von Parametern mit endlich vielen Werten beschreiben lässt. Kontinuierliche Wertebereiche werden vorab per Äquivalenzklassenbildung auf wenige Repräsentanten reduziert. Beide Verfahren greifen also ineinander: Der Wertebereichstest geht in die Tiefe einzelner Klassen und ihrer Grenzen, der kombinatorische Test in die Breite über mehrere Parameter.
Der Spareffekt wächst mit der Parameterzahl. Bei zwei Parametern gibt es nichts zu holen, da ist die Vollkombination selbst klein. Ab drei Parametern mit mehreren Werten wird der Unterschied spürbar, ab vier Parametern liegt oft ein Faktor fünf bis zehn zwischen Vollkombination und Pairwise-Suite.
Vorgehen in fünf Schritten
- Parameter identifizieren. Welche Eingabeparameter beeinflussen das Verhalten gemeinsam?
- Werte pro Parameter bestimmen. Bei kontinuierlichen Bereichen vorab durch Äquivalenzklassen reduzieren.
- Interaktionsstufe wählen. Üblich ist Pairwise (t gleich 2); bei hoher Risikostufe oder bekannten Dreifach-Abhängigkeiten t gleich 3.
- Testfallmenge erzeugen. Ein Werkzeug berechnet den optimierten Testsatz, der alle Paare abdeckt.
- Ausführen und auswerten. Fällt bei Fehlerwirkungen ein bestimmtes Parameterpaar auf, deutet das auf einen Interaktionsfehler hin.
Ein kompaktes Beispiel
Zum vollständigen Anzeigen nach rechts wischen oder mit den Pfeiltasten scrollen.
Die Buchungsstrecke eines Mietwagen-Portals hat drei Parameter mit je drei Werten: Fahrzeugklasse (Kompakt, Kombi, SUV), Zahlungsart (Kreditkarte, PayPal, Rechnung) und Abholstation (Flughafen, Bahnhof, Innenstadt). Die Vollkombination ergäbe 3 × 3 × 3 = 27 Testfälle. Eine paarweise optimierte Suite kommt mit neun aus:
| TF | Fahrzeugklasse | Zahlungsart | Abholstation |
|---|---|---|---|
| 1 | Kompakt | Kreditkarte | Flughafen |
| 2 | Kompakt | PayPal | Bahnhof |
| 3 | Kompakt | Rechnung | Innenstadt |
| 4 | Kombi | Kreditkarte | Bahnhof |
| 5 | Kombi | PayPal | Innenstadt |
| 6 | Kombi | Rechnung | Flughafen |
| 7 | SUV | Kreditkarte | Innenstadt |
| 8 | SUV | PayPal | Flughafen |
| 9 | SUV | Rechnung | Bahnhof |
Nachzählen lohnt sich: Jede Fahrzeugklasse trifft jede Zahlungsart genau einmal, jede Zahlungsart jede Station, jede Klasse jede Station. Alle 27 Wertepaare sind abgedeckt, mit einem Drittel der Vollkombination.
Angenommen, im Testlauf schlägt TF 6 fehl: Beim Kauf auf Rechnung mit Abholung am Flughafen unterbleibt die Bonitätsprüfung, die für Rechnungszahlung vorgeschrieben ist, weil die Flughafen-Station einen eigenen, älteren Checkout-Pfad nutzt. Das ist eine Interaktion aus genau zwei Werten (Rechnung und Flughafen), unabhängig von der Fahrzeugklasse. Solche Paar-Fehler findet die Pairwise-Suite nicht zufällig, sondern garantiert, denn das Paar kommt in mindestens einem Testfall vor.
Überdeckung und Erfolgskriterien
Zum vollständigen Anzeigen nach rechts wischen oder mit den Pfeiltasten scrollen.
Zwei Kriterien ergänzen sich in der Praxis. Die Basisauswahlüberdeckung startet mit einem Basistestfall aus den repräsentativsten Werten und variiert dann je Parameter jeden weiteren Wert einzeln; im Mietwagen-Beispiel ergibt das 1 + (2 + 2 + 2) = 7 Testfälle. Sie stellt sicher, dass jeder Wert einmal vorkommt, sagt aber nichts über Wechselwirkungen. Die paarweise Überdeckung misst dagegen den Anteil der abgedeckten Wertepaare an allen möglichen; Ziel sind 100 Prozent.
Was die Stufen konkret bedeuten, zeigt das Beispiel: Drei Testfälle reichen, um alle neun Einzelwerte einmal zu zeigen, decken aber höchstens neun der 27 Paare ab, also ein Drittel. Die Pairwise-Suite mit neun Testfällen erreicht alle 27 Paare und nebenbei neun der 27 Dreier-Kombinationen. Wer alle Dreier-Kombinationen will, landet bei drei Parametern zwangsläufig bei der Vollkombination, denn 3-way und Vollkombination fallen hier zusammen. Als Faustregel bewährt sich: Pairwise als Standard, plus gezielte Zusatztests für einzelne Kombinationen mit besonderem Risiko.
Stärken und Grenzen
Die Stärke liegt auf der Hand: garantierte Paar-Abdeckung bei einem Bruchteil des Aufwands, gut automatisierbar, und das Parameter-Modell lässt sich über Releases wiederverwenden. Kommt eine vierte Fahrzeugklasse dazu, wird das Modell um einen Wert erweitert und die Suite neu generiert, statt Testfälle von Hand nachzuziehen.
Drei Grenzen gehören dazu. Erstens findet Pairwise keine Fehler, die ausschließlich aus dem Zusammenspiel von drei oder mehr Parametern entstehen; für bekannte Dreifach-Abhängigkeiten braucht es t gleich 3 oder gezielte Ergänzungen. Zweitens verlangen Constraints, also unzulässige Wertekombinationen (etwa: am Bahnhof keine SUV-Abholung), Werkzeugunterstützung, sonst enthält die Suite unausführbare Tests. Drittens ist die Paar-Überdeckung nur so gut wie die gewählten Repräsentanten; schlecht geschnittene Äquivalenzklassen bleiben schlecht, egal wie clever man sie kombiniert.
Die Rechenarbeit übernehmen Werkzeuge: ACTS (frei, von NIST gepflegt), PICT (frei, von Microsoft) oder Hexawise (kommerziell). Pairwise-Suiten von Hand zu konstruieren ist heute nur noch als Fingerübung interessant.
Verwandte Verfahren
Der Wertebereichstest liefert die Vorarbeit: Er bildet pro Parameter die Äquivalenzklassen, deren Repräsentanten der kombinatorische Test dann verbindet. Lösen die Kombinationen klare Geschäftsregeln aus, ergänzt der Entscheidungstabellentest, weil er jede Regel explizit macht. Einen Überblick über alle elf Verfahren gibt die Seite Testentwurfsverfahren.