Grenzwertanalyse
Wenn in der Phase des Testentwurfs durch den Test Analyst Äquivalenzklassen gefunden werden, die Wertebereiche beschreiben, dann kann es Sinn machen, neben einem Repräsentanten auch die Grenzwerte der Äquivalenzklassen durch zusätzliche Testfälle zu testen.
Die Auswertung der Äquivalenzklassen auf Grenzwerte wird Grenzwertanalyse genannt.
Grenzwerte innerhalb einer Äquivalenzklasse sind der jeweils kleinste und größte Wert, die noch innerhalb der Äquivalenzklasse liegen. Zusätzlich betrachtet man in der Lehre auch die beiden Nachbarn der beiden Werte, die gerade eben nicht mehr innerhalb der Äquivalenzklasse sind.
Somit lassen sich für eine Äquivalenzklasse genau vier Grenzwerte bestimmen:
-
Wenn ein Fahrgast im Alter von 0 bis 5 Jahren kein Entgeld bezahlen muss, dann sind nach Grenzwertanalyse die Altersangaben -1, 0, 5 und 6 zu testen.
-
Bei 0 und 5 Jahren ist das erwartete Verhalten, dass kein Entgelt zu entrichten ist.
-
Das Verhalten bei -1 Jahre und 6 Jahren ist in der Spezifikation nachzuschlagen.
Es gibt teilweise Äquivalenzklassen, bei denen sich nicht alle Grenzwerte bestimmen lassen, da die Grenze keinem konkreten Wert entspricht. Wenn zum Beispiel Altersangaben kleiner 0 ungültig sind und zu einer Fehlermeldung führen, dann lässt sich der kleinste Wert mit -∞ nicht konkret angeben.
Natürlich sind Grenzwerte immer auch Repräsentanten von Äquivalenzklassen, jedoch sind diese Werte aus Sicht des Test Analysten von besonderer Bedeutung, da Fehler häufig auf den Grenzen der Äquivalenzklassen zu finden sind, da zum Beispiel „<“ an Stelle von „<=“ verwendet wurde.
Für die Bewertung der durchgeführten Tests nach Grenzwertanalyse kann die Grenzwertüberdeckung als sinnvolle Metrik verwendet werden. Sie ist definiert als Quotient aus Anzahl der getesteten Grenzwerte und allen betrachteten Grenzwerten.
Ab welcher erreichten Überdeckung ein Test als gut oder ausreichend bewertet werden kann, ist schwer zu sagen, da dieses Testentwurfsverfahren je nach Zielsetzung des Tests mehr oder weniger hoch priorisiert wird. So wird man bei einem ersten Test der Anforderungen tendenziell viele Grenzwerte testen und bei einer Testwiederholung einer neuen Version lediglich die Repräsentanten testen, wenn sich die Wertebereiche nicht geändert haben.