Zum Inhalt springen
← Alle CTFL-Lernziele

CTFL 4.3.2: Den Zweigtest erklären

K2

Lehrplanabschnitt 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?

  1. 100 % Anweisungsüberdeckung ist erreicht, die Zweigüberdeckung kann aber darunter liegen
  2. 100 % Zweigüberdeckung ist erreicht und damit auch 100 % Anweisungsüberdeckung
  3. 100 % Zweigüberdeckung ist erreicht, die Anweisungsüberdeckung kann aber darunter liegen
  4. 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?

  1. Ja, da beide Maße unabhängige Überdeckungselemente zählen und keines das andere einschließt
  2. Ja, da bei 100%iger Zweigüberdeckung noch ausführbare Anweisungen unausgeführt bleiben können
  3. Nein, da die Anweisungsüberdeckung die Zweigüberdeckung einschließt und damit ebenfalls erreicht ist
  4. 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?

  1. Jede ausführbare Anweisung im Code, mindestens einmal
  2. Nur jeden unbedingten Kontrollflussübergang im Code
  3. Jeden Zweig, einschließlich unbedingter und bedingter Kontrollflussübergänge
  4. 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.

Glossarbegriffe in diesem Kapitel