Äquivalenzklassen
Als Äquivalenzklasse wird der Teil eines Wertebereiches definiert, in dem gleichartiges Verhalten des SUT (System under Test) angenommen wird. Diese Annahme stützt sich in aller Regel auf Anforderungen oder andere Quellen.
Äquivalenzklassen lassen sich sowohl für die möglichen Eingaben als auch für die Ausgaben des SUT bilden:
-
Ein konkretes Beispiel für eine Eingabeäquivalenzklasse kann zum Beispiel ein Alter zwischen 0 und 5 Jahren sein, wenn es um die Ermittlung des Fahrpreises geht.
-
In diesem Beispiel bilden dann die Preisstaffeln die Ausgabeäquivalenzklassen.
-
Zusätzlich kann auch eine Fehlermeldung eine Ausgabeäquivalenzklasse sein.
Bei den Eingabeäquivalenzklassen wird noch zwischen gültigen und ungültigen Äquivalenzklassen unterschieden:
-
Wird ein Wert aus einer gültigen Äquivalenzklasse als Eingabe verwendet, dann wird eine ordentliche Verarbeitung des Wertes erwartet.
-
Im Gegensatz dazu wird bei Eingabe eines Wertes aus einer ungültigen Äquivalenzklasse ein Abbruch der Verarbeitung erwartet und es kommt zum Beispiel zu einer Fehlermeldung.
Ein Test Analyst nutzt die Äquivalenzklassenbildung, um möglichst jede Äquivalenzklasse durch einen Testfall abzudecken.
Ein ganz konkreter Wert aus einer Äquivalenzklasse wird als Repräsentant bezeichnet.
Nachdem die Eingabeäquivalenzklassen gefunden sind, wird bei Wertebereichen geprüft, ob es keine Überlappungen und keine Lücken gibt:
-
Im Falle einer Überlappung gäbe es mindestens einen Wert, der Repräsentant von mindestens zwei Äquivalenzklassen ist. Dieses ist nicht gewollt, da nicht klar ist, welches Verhalten das System zeigen soll.
-
Im Falle einer Lücke gäbe es mindestens einen Wert, der in keiner Äquivalenzklasse enthalten ist. Somit ist das Systemverhalten für diesen Wert unklar, da eine Äquivalenzklasse fehlt.
Zur Bewertung der Testabdeckung wird das Maß der Äquivalenzklassenüberdeckung verwendet. Der Wert steht für den Quotienten aus Anzahl der im Test verwendeten Äquivalenzklassen und aller definierten Äquivalenzklassen. Der Wert wird in Prozent angegeben.
Bezüglich Eingabeäquivalenzklassen sollte ein guter Test 100% Überdeckung anstreben.