CTFL 4.3.2: Den Zweigtest erklären
K2Lehrplanabschnitt 4.3.2
3 eigene PrepBench-Übungsfragen zum Lernziel 4.3.2 des CTFL-Lehrplans 4.0. Probiere die Beispiele aus und überprüfe jede Antwort anhand der Lehrplanstelle.
Übungsfragen
Frage 1
Die Testsuite eines Teams führt beide Ergebnisse jeder if-then-Entscheidung eines Moduls sowie jeden bedingungslosen Kontrollübergang aus. Was kann das Team über die Überdeckung des Moduls schließen?
- 100 % Anweisungsüberdeckung ist erreicht, die Zweigüberdeckung kann aber darunter liegen
- 100 % Zweigüberdeckung ist erreicht und damit auch 100 % Anweisungsüberdeckung
- 100 % Zweigüberdeckung ist erreicht, die Anweisungsüberdeckung kann aber darunter liegen
- Beide Werte sind zwangsläufig gleich, da jeder Zweig genau eine Anweisung enthält
Antwort anzeigen
- 100 % Anweisungsüberdeckung ist erreicht, die Zweigüberdeckung kann aber darunter liegenDas kehrt die Einschließung um: Volle Anweisungsüberdeckung bedeutet keine volle Zweigüberdeckung.
- Richtige Antwort: 100 % Zweigüberdeckung ist erreicht und damit auch 100 % AnweisungsüberdeckungHier werden alle Zweige ausgeführt, und volle Zweigüberdeckung liefert volle Anweisungsüberdeckung.
- 100 % Zweigüberdeckung ist erreicht, die Anweisungsüberdeckung kann aber darunter liegenVolle Zweigüberdeckung kann keine Anweisung unausgeführt lassen, da sie diese Überdeckung einschließt.
- Beide Werte sind zwangsläufig gleich, da jeder Zweig genau eine Anweisung enthältZweige und Anweisungen sind verschiedene Überdeckungselemente; eine solche Gleichheit wird nicht behauptet.
Wenn eine 100%ige Zweigüberdeckung erreicht ist, werden alle Zweige des Codes, unbedingte und bedingte, durch Testfälle ausgeführt; bedingte Verzweigungen entsprechen typischerweise dem wahren oder falschen Ergebnis einer if-then-Entscheidung. Die Zweigüberdeckung schließt die Anweisungsüberdeckung ein: Jeder Satz von Testfällen mit 100 % Zweigüberdeckung erreicht auch 100 % Anweisungsüberdeckung, aber nicht umgekehrt.
Lehrplanabschnitt 4.3.2
Frage 2
Die Testsuite eines Teams erreicht eine 100%ige Zweigüberdeckung eines Moduls. Ein Kollege fragt, ob die Anweisungsüberdeckung noch gesondert gemessen werden muss. Was folgt daraus?
- Ja, da beide Maße unabhängige Überdeckungselemente zählen und keines das andere einschließt
- Ja, da bei 100%iger Zweigüberdeckung noch ausführbare Anweisungen unausgeführt bleiben können
- Nein, da die Anweisungsüberdeckung die Zweigüberdeckung einschließt und damit ebenfalls erreicht ist
- Nein, da die Zweigüberdeckung die Anweisungsüberdeckung einschließt und diese damit folgt
Antwort anzeigen
- Ja, da beide Maße unabhängige Überdeckungselemente zählen und keines das andere einschließtDer Lehrplan hält ausdrücklich fest, dass eines der Maße das andere einschließt.
- Ja, da bei 100%iger Zweigüberdeckung noch ausführbare Anweisungen unausgeführt bleiben könnenVolle Zweigüberdeckung führt jeden Zweig und damit jede ausführbare Anweisung aus.
- Nein, da die Anweisungsüberdeckung die Zweigüberdeckung einschließt und damit ebenfalls erreicht istDas kehrt die Beziehung um: Anweisungsüberdeckung impliziert keine Zweigüberdeckung.
- Richtige Antwort: Nein, da die Zweigüberdeckung die Anweisungsüberdeckung einschließt und diese damit folgtDie Zweigüberdeckung schließt die Anweisungsüberdeckung ein.
Die Zweigüberdeckung schließt die Anweisungsüberdeckung ein. Jeder Satz von Testfällen, der eine 100%ige Zweigüberdeckung erreicht, erreicht auch eine 100%ige Anweisungsüberdeckung, aber nicht umgekehrt. Eine gesonderte Messung bringt daher keinen zusätzlichen Erkenntnisgewinn mehr.
Lehrplanabschnitt 4.3.2
Frage 3
Was muss ausgeführt werden, um eine 100%ige Zweigüberdeckung eines Testobjekts zu erreichen?
- Jede ausführbare Anweisung im Code, mindestens einmal
- Nur jeden unbedingten Kontrollflussübergang im Code
- Jeden Zweig, einschließlich unbedingter und bedingter Kontrollflussübergänge
- Nur das wahre und falsche Ergebnis jeder if-Entscheidung
Antwort anzeigen
- Jede ausführbare Anweisung im Code, mindestens einmalDies ist Anweisungsüberdeckung; 100%ige Anweisungsüberdeckung gewährleistet keine 100%ige Zweigüberdeckung.
- Nur jeden unbedingten Kontrollflussübergang im CodeDies lässt alle bedingten Kontrollflussübergänge aus.
- Richtige Antwort: Jeden Zweig, einschließlich unbedingter und bedingter KontrollflussübergängeZweigüberdeckung umfasst jeden unbedingten und bedingten Kontrollflussübergang.
- Nur das wahre und falsche Ergebnis jeder if-EntscheidungDies lässt unbedingte Zweige und nichtbinäre Ergebnisse wie switch/case-Zweige aus.
Ein Zweig ist ein Kontrollflussübergang zwischen zwei Knoten des Kontrollflussgraphen. Für eine 100%ige Zweigüberdeckung müssen alle unbedingten und bedingten Zweige ausgeführt werden. Bedingte Zweige umfassen wahre und falsche Ergebnisse von if-Entscheidungen, switch/case-Ergebnisse und Entscheidungen über Schleifenaustritt oder -fortsetzung. Zweigüberdeckung schließt Anweisungsüberdeckung ein.
Lehrplanabschnitt 4.3.2
Eigenes PrepBench-Übungsmaterial, keine offiziellen Prüfungsfragen und keine Prüfungsdumps. PrepBench ist unabhängig und weder mit dem ISTQB® verbunden noch von ihm unterstützt.