Testabdeckung
Um abschätzen zu können, ob die zu testende Anwendung ausreichend getestet ist, sollte sichergestellt werden, dass der Funktionsumfang durch die Tests abgedeckt ist.
Datensicht: Kombinatorik
Eine Anwendung hat alleine unterschiedliche Eingabefelder jeweils mit vielen möglichen Eingabewerten, abgesehen von den hinterlegten Daten, alles in allem unzählige Möglichkeiten.
Hierzu werden von den möglichen Eingaben bzw. relevanten Vorbedingungen nur die äquivalenten Werte zusammengefasst zu Äquivalenzklassen. Bei Autovermietern wird beispielsweise unterschieden in Klein-, Mittel- und Oberklassefahrzeugen sowie in einige Sonderformen wie SUV, Cabriolet. Jedes Fahrzeug ist einem dieser Fahrzeugklassen zugeordnet. Als Fahrer werden junge, mittlere und alte Fahrer unterschieden anhand des Alters.
Entscheidungstabelle
Für die Gutfälle wird zunächst eine Entscheidungstabelle erstellt, wie mit welcher Hauptkombination umgegangen werden soll.
xx | junger Fahrer | mittlerer Fahrer | alter Fahrer |
Kleinwagen | Angebot | Aufschlag | Aufschlag |
Mittelklasse | Aufschlag | Angebot | Angebot |
Oberklasse | Ablehnung | Aufschlag | Aufschlag |
Cabriot | Aufschlag | Angebot | Ablehnung |
Die folgende Tabelle zeigt, wie aus der Entscheidungstabelle die zugehörigen Testfälle identifiziert werden können.
Testfall | xx | junger Fahrer | mittlerer Fahrer | alter Fahrer |
1 | Kleinwagen | Angebot | ||
2 | Kleinwagen | Aufschlag | ||
3 | Mittelklasse | Aufschlag | ||
4 | Mittelklasse | Angebot | ||
5 | Oberklasse | Ablehnung | ||
6 | Oberklasse | Aufschlag | ||
7 | Cabriot | Aufschlag | ||
8 | Cabriot | Angebot | ||
9 | Cabriot | Ablehnung |
Die dadurch erstellten 9 Testfälle sind bereits gekürzt auf die paarweise unterschiedlichen Testfälle (zu Fahrern und Fahrzeugen sind alle Optionen getestet).
Die fett gedruckten Testfälle 2, 4, 5, 7 reduzieren die Testfälle nochmals, indem jede Ausprägung zumindest einmal getestet wird.
Algorithmensicht: Grade der Pfadabdeckung
Kenntnis des Algorithmus/Pfad ist hierfür erforderlich.
Die Grade werden gemessen anhand der Pfade in den Modellen
C0-Abdeckung – jeder Funktionsknoten (bzw. jede Anweisung) wird einmal getestet
C1-Abdeckung – jeder Funktionsaufruf/-ausgang (bzw. jeder Branch/Kanten) wird einmal getestet
C2-Abdeckung – Jeder Kontrollpfad wird einmal getestet
Beispiel Workflow Autovermietung
Funktion | ok | ko |
Eingabe Fahrer | weiter | |
Dauerkunde | gehe zu Vertrag | weiter |
Validierung | weiter | Abbruch |
Auswahl KFZ | weiter | |
Prüfung | weiter | Abbruch |
Zahlung | weiter | Abbruch |
Vertrag | Vertrag |
Zur Ermittlung der notwendigen Testfälle werden zunächst nur die Ausgänge beachtet so wie die Abkürzung bei Dauerkunden, bei denen ein Zahlungsmodus besteht. Die Zwischenstationen sind notwendigerweise durchlaufen, müssen also nicht extra erwähnt werden.
Testfälle | Funktion | ok | ko |
10 | Validierung Fahrer | Abbruch | |
11 | Prüfung KFZ | Abbruch | |
12 | Zahlung | Abbruch | |
1 | Vertrag Neukunde | Vertrag | |
2 | Vertrag Dauerkunde | Vertrag |
Die fünf Testfälle stellen eine C1-Abdeckung, was zugleich eine C2-Abdeckung aufgrund des stringenten Workflows. Gebenüber den Gut-Testfällen der Kombinatorik werden hier die Abbruch-Fälle hinzugenommen. Die hier ermittelten Guttestfälle können in die obigen Testfälle subsummiert werden.
Die fünf Testfälle können auf den Testfall 1 reduziert werden, weil damit werden alle Funktionen einmal durchlaufen werden - das entspricht der C0-Abdeckung.
Sonderfälle
Wenn bei der Fahrereingabe ein minderjähriger Fahrer aufgenommen wird, werden im Workflow paar Vertragszusätze vorgesehen.
ok | ko | |
Fahrer < 18 | weiter | kein Sonderfall |
& Kofahrer > 18 | weiter | Abbruch |
& Kofahrer = Mieter | entsprechend in Vertrag |
Vertretungserklärung im Vertrag |
Hieraus ergeben sich zusätzliche Testfälle, die im Vertrag abgeprüft werden können:
Testfall | ok | ko | |
1 | Fahrer < 18 | kein Sonderfall | |
20 | & Kofahrer > 18 | Abbruch | |
21 | & Kofahrer = Mieter |
Vertretungserklärung im Vertrag |
|
22 | & Kofahrer = Mieter | entsprechend in Vertrag |
|
Die Testfälle 20-22 entsprechen wieder der C1-Abdeckung, da diese ein Detailpfad in der Fahrerfunktion sind.
Der Testfall 21 oder 22 muss für die C0-Abdeckung aufgenommen werden, denn nur dadurch werden diese Prüfungen durchlaufen - die Konstellation könnte aber auch schon im Testfall 1 berücksichtigt sein.
Testfälle hinsichtlich der Teststufen
Um nicht in jeder Teststufe neue Testfälle zu spezifizieren, sollte die einmal gefundenen und spezifizierten Testfälle den Teststufen zugeordnet werden:
Testfall | Smoketest | Systemtest | Abnahmetest | xx | junger Fahrer | mittlerer Fahrer | alter Fahrer |
1 | K-paar | Kleinwagen | Angebot | ||||
2 | K-paar | Kleinwagen | Aufschlag | ||||
3 | K-paar | Mittelklasse | Aufschlag | ||||
4 | K-paar | X | Mittelklasse | Angebot | |||
5 | K-paar | Oberklasse | Ablehnung | ||||
6 | K-paar | X | Oberklasse | Aufschlag | |||
7 | K-paar | Cabriot | Aufschlag | ||||
8 | K-paar | Cabriot | Angebot | ||||
9 | K-paar | Cabriot | Ablehnung | ||||
10 | C1 | Abbruch Validierung Fahrer | Abbruch | ||||
11 | C1 | Abbruch Prüfung KFZ | Abbruch | ||||
12 | C1 | Abbruch Zahlung | |||||
20 | C1 | Abbruch Kofahrer > 18 | Abbruch | ||||
21 | C0 | C0 | X | Kofahrer = Mieter | Zusatzklausel | ||
22 | C1 | Kofahrer != Mieter | Zusatzklausel |