Test Design Techniken
Veröffentlicht auf 25. September 2008
Für die Erstellung von Testfällen werden je nach Testanforderung bestimmte Testtechniken verwendet. Bereits in der Anfangsphase eines Projektes können Black-Box-Techniken angewendet werden, diese Techniken beruhen auf den Anforderungen an die Software oder auf den Spezifikationen für den Programmcode. White-Box-Techniken werden meistens während der Modul- und Integrationstest eingesetzt, hierbei liegt den Testern der Programmcode bereits vor.
Die bekanntesten Techniken aus diesen Bereichen werden nachfolgend kurz erläutert.
1. Spezifikationsbasierte Techniken (Black Box)
-
Äquivalenzklassen (Equivalence partitioning)
Alle möglichen Eingabewerte werden in Klassen mit gleichen Auswirkungen eingeteilt. Sind zum Beispiel nur Werte größer oder gleich Null zugelassen werden folgende Äquivalenzklassen gebildet:
Bsp: Klasse 1 {-n, ... , -1}
Klasse 2 {0, ..., n} -
Grenzwertanalyse (Boundary values analysis)
Diese Technik baut auf der Technik für die Bestimmung von Äquivalenzklassen auf und testet speziell die fehleranfälligen Grenzen. Anknüpfend an das obige Beispiel werden folgende Eingabewerte geprüft:
Bsp: -1, 0, 1
Erweiterte Grenzwertanalyse (Extended boundary values analysis)
Eventuell bevorzugte der Programmierer folgende Umsetzung: if x>-1
Bsp: -2, -1, 0, 1 -
Zustandsbasiertes Testen (State transition testing)
Es wird ein Graph (Automat) erstellt, der jeden möglichen Zustand der Software und die möglichen Übergänge aufführt. Über den Test soll jeder Zustand über jeden möglichen Übergang mindestens einmal erreicht werden. -
Ursache-Wirkungsgraph (Cause-effect graphing)
Es wird ein so genannter boolscher Graph erstellt, der Äquivalenzklassen von Eingangsbedingungen logisch miteinander verknüpft und dafür eine Auswirkung definiert. Dieser Graph kann zu einer bereits vereifachten Entscheidungstabelle umgewandelt werden, jede Spalte ist dann ein Testfall. -
Entscheidungstabellen (Decision tables testing)
Für die logische Kombination aller möglichen Bedingungen werden Folgezustände definiert, bestimmte Kombinationen können dieselben Folgezustände besitzen. Da mit jeder Bedingung die Anzahl der Tests proportional ansteigt, kann durch eine geschickte Auswahl der Testfälle die Anzahl der Tests wieder reduziert werden. Jede Spalte dieser vereinfachten Tabelle wird dann zu einem Testfall. -
Klassifikationsbaum Methode (Classification tree method)
Bildet eine Erweiterung zu den Äquivalenzklassen (Wurzel), indem diese in weitere Unter-Äquivalenzklassen (Kinder) unterteilt werden. Die Blätter dieses Baumes werden in einer Tabelle kombiniert und daraus Testfälle abgeleitet. -
Use Case Testen (Use Case testing)
Für die Anforderungen werden Anwendungsfälle in Use Cases abgebildet. Aus diesen Anforderungsdefinitionen werden schließlich die Testfälle abgeleitet.
2. Strukturbasierte Techniken (White Box)
-
Anweisungsüberdeckungstests (Statement testing)
Jede Anweisung wird einmal ausgeführt. -
Zweigüberdeckungstests (Branch testing)
Jeder Programmzweig wird einmal ausgeführt. -
Bedingungsüberdeckungstests (Condition testing)
Jede Bedingung wird einmal positiv und einmal negativ durchlaufen. In der erweiterten Form wird auch jede Teilentscheidung durchlaufen. -
Pfadüberdeckungstests
Jeder Pfad des Programmflusses wird einmal ausgeführt.