27 Testüberdeckung Flashcards
Was ist das Ziel der Testüberdeckung bei Modultests?
Das Ziel der Testüberdeckung bei Modultests ist sicherzustellen, dass der Code möglichst vollständig getestet wird. Dies wird durch verschiedene Maße der Testüberdeckung wie Anweisungsüberdeckung (C0), Zweigüberdeckung (C1) und Pfadüberdeckung (C2) erreicht.
Was ist Anweisungsüberdeckung (C0)?
Anweisungsüberdeckung (C0) stellt sicher, dass jede Anweisung im Code mindestens einmal getestet wird. Es ist leicht zu berechnen und deckt nicht ausgeführte Anweisungen auf, berücksichtigt jedoch nicht Datenabhängigkeiten oder leere Zweige.
Was sind die Vor- und Nachteile der Anweisungsüberdeckung (C0)?
- Vorteile: Leicht zu berechnen, deckt nicht ausgeführte Anweisungen auf.
- Nachteile: Abhängigkeiten von Daten werden nicht entdeckt, leere Zweige bleiben unentdeckt.
Was ist Zweigüberdeckung (C1)?
Zweigüberdeckung (C1) stellt sicher, dass jeder Zweig (jede Kante) im Code mindestens einmal getestet wird. Sie hat eine höhere Fehlerentdeckungsrate als C0, erfasst jedoch nicht alle Fälle komplexer Bedingungen und Schleifen.
Was sind die Vor- und Nachteile der Zweigüberdeckung (C1)?
- Vorteile: Leere Zweige werden aufgespürt, höhere Fehlerentdeckungsrate als C0.
- Nachteile: Komplexe Bedingungen und Schleifen werden nur unzureichend getestet.
Was ist Pfadüberdeckung (C2)?
Pfadüberdeckung (C2) stellt sicher, dass alle möglichen Pfade (Abfolge von Knoten und Kanten) durch den Code getestet werden. Sie hat die höchste Fehlerentdeckungsrate, erfordert jedoch enorm viele Testfälle und ist oft praktisch nicht umsetzbar.
Welche Varianten der Pfadüberdeckung (C2) gibt es?
Es gibt mehrere Varianten der Pfadüberdeckung:
- C2a: Alle Pfade werden geprüft (oft nicht möglich).
- C2b: Schleifendurchläufe werden auf zwei Iterationen reduziert.
- C2c: Schleifendurchläufe werden auf eine definierte Anzahl von Iterationen (n) reduziert.
Welche Vorteile und Nachteile hat die Pfadüberdeckung (C2)?
- Vorteile: Sehr hohe Fehlerentdeckungsrate.
- Nachteile: Erfordert viele Testfälle, oft praktisch nicht umsetzbar, komplexe Bedingungen werden nicht umfassend geprüft.
Warum ist eine hohe Testüberdeckung nicht immer ein Indikator für gute Tests?
Eine hohe Testüberdeckung zeigt zwar, dass der meiste Code getestet wurde, lässt sich jedoch auch erreichen, ohne tatsächlich sinnvolle Tests durchzuführen. Daher sollte die Qualität der Tests ebenfalls geprüft werden, idealerweise durch andere Personen.
Welche Metrik verwendet die Anweisungsüberdeckung (C0)?
Die Metrik für Anweisungsüberdeckung (C0) ist das Verhältnis der Anzahl der überdeckten Anweisungen zur Gesamtanzahl der Anweisungen im Code.