Zum Inhalt springen
← Alle CTFL-Lernziele

CTFL 4.3.1: Den Anweisungstest erklären

K2

Lehrplanabschnitt 4.3.1

3 eigene PrepBench-Übungsfragen zum Lernziel 4.3.1 des CTFL-Lehrplans 4.0. Probiere die Beispiele aus und überprüfe jede Antwort anhand der Lehrplanstelle.

Übungsfragen

Frage 1

Eine Testsuite erreicht eine 100%ige Anweisungsüberdeckung eines Moduls. Im Betrieb fällt das Modul dennoch mit einer Division durch null aus, die nur auftritt, wenn der Nenner auf null gesetzt ist. Welche Erklärung ist zutreffend?

  1. Das Ausführen einer Anweisung deckt nicht in allen Fällen Fehlerzustände auf; datenabhängige Fehlerzustände überstehen auch volle Anweisungsüberdeckung
  2. Eine 100%ige Anweisungsüberdeckung kann nicht erreicht worden sein, da die fehlerhafte Anweisung offenbar nie ausgeführt wurde
  3. Eine 100%ige Anweisungsüberdeckung stellt sicher, dass die Entscheidungslogik getestet wurde; der Fehlerzustand muss in einem anderen Modul liegen
  4. Die Überdeckung wurde falsch gemessen: ausgeführte Anweisungen sind durch die Gesamtzahl der Zweige zu teilen
Antwort anzeigen
  • Richtige Antwort: Das Ausführen einer Anweisung deckt nicht in allen Fällen Fehlerzustände auf; datenabhängige Fehlerzustände überstehen auch volle AnweisungsüberdeckungDie Anweisung wurde ausgeführt, ein datenabhängiger Fehlerzustand zeigt sich dennoch nicht.
  • Eine 100%ige Anweisungsüberdeckung kann nicht erreicht worden sein, da die fehlerhafte Anweisung offenbar nie ausgeführt wurdeDie Anweisung wurde ausgeführt; volle Anweisungsüberdeckung bedeutet genau das.
  • Eine 100%ige Anweisungsüberdeckung stellt sicher, dass die Entscheidungslogik getestet wurde; der Fehlerzustand muss in einem anderen Modul liegenEine 100%ige Anweisungsüberdeckung sichert nicht, dass die gesamte Entscheidungslogik getestet wurde.
  • Die Überdeckung wurde falsch gemessen: ausgeführte Anweisungen sind durch die Gesamtzahl der Zweige zu teilenDie Anweisungsüberdeckung teilt ausgeführte Anweisungen durch alle ausführbaren Anweisungen.

Bei einer 100%igen Anweisungsüberdeckung ist sichergestellt, dass jede ausführbare Anweisung mindestens einmal ausgeführt wurde, eine Anweisung mit einem Fehlerzustand also ebenfalls. Das Ausführen einer Anweisung deckt jedoch nicht in allen Fällen Fehlerzustände auf; der Lehrplan nennt als Beispiel für einen datenabhängigen Fehlerzustand genau eine Division durch null, die nur fehlschlägt, wenn der Nenner auf null gesetzt wird. Auch stellt sie nicht sicher, dass die gesamte Entscheidungslogik getestet wurde.

Lehrplanabschnitt 4.3.1

Frage 2

Was zeigt das Erreichen einer 100%igen Anweisungsüberdeckung über ein Testobjekt?

  1. Jede ausführbare Anweisung im Code wurde mindestens einmal ausgeführt
  2. Jeder mögliche Pfad durch den Code wurde mindestens einmal ausgeführt
  3. Jedes Entscheidungsergebnis, wahr und falsch, wurde ausgeführt
  4. Jede Anforderung der Spezifikation hat mindestens einen Testfall
Antwort anzeigen
  • Richtige Antwort: Jede ausführbare Anweisung im Code wurde mindestens einmal ausgeführtDie Anweisungsüberdeckung ist der Anteil der ausgeführten ausführbaren Anweisungen.
  • Jeder mögliche Pfad durch den Code wurde mindestens einmal ausgeführtJeden Pfad auszuführen ist Pfadüberdeckung, ein weit strengeres und meist unpraktikables Kriterium.
  • Jedes Entscheidungsergebnis, wahr und falsch, wurde ausgeführtBeide Ergebnisse jeder Entscheidung auszuführen ist Zweigüberdeckung, nicht Anweisungsüberdeckung.
  • Jede Anforderung der Spezifikation hat mindestens einen TestfallJede Anforderung abzudecken ist Black-Box-Anforderungsüberdeckung, nicht Anweisungstest.

Die Anweisungsüberdeckung misst den Anteil der durch die Tests ausgeführten ausführbaren Anweisungen. 100% bedeutet, dass jede Anweisung mindestens einmal gelaufen ist, garantiert aber nicht, dass jedes Zweigergebnis oder jeder Pfad abgedeckt wurde.

Lehrplanabschnitt 4.3.1

Frage 3

Die Testsuite einer Komponente erreicht 100 % Anweisungsüberdeckung, und alle Tests sind erfolgreich. Im späteren Produktivbetrieb tritt in dieser Komponente eine Fehlerwirkung auf. Welche Erklärung passt zu dem, was die Anweisungsüberdeckung garantiert?

  1. Trotz der gemeldeten Zahl müssen einige ausführbare Anweisungen unausgeführt geblieben sein
  2. Die Fehlerwirkung muss aus einem Zweig stammen, der überhaupt keine ausführbare Anweisung enthält
  3. 100 % Anweisungsüberdeckung schließt Zweigüberdeckung ein, die Ursache liegt also außerhalb
  4. Jede Anweisung lief mindestens einmal, doch das Ausführen deckt nicht jeden Fehlerzustand auf
Antwort anzeigen
  • Trotz der gemeldeten Zahl müssen einige ausführbare Anweisungen unausgeführt geblieben sein100 % Anweisungsüberdeckung bedeutet genau, dass keine ausführbare Anweisung unausgeführt blieb.
  • Die Fehlerwirkung muss aus einem Zweig stammen, der überhaupt keine ausführbare Anweisung enthältZweige sind Kontrollübergänge zwischen Knoten; diese Erklärung folgt aus keiner Überdeckungsregel.
  • 100 % Anweisungsüberdeckung schließt Zweigüberdeckung ein, die Ursache liegt also außerhalbDie Einschließung läuft umgekehrt: Die Zweigüberdeckung schließt die Anweisungsüberdeckung ein.
  • Richtige Antwort: Jede Anweisung lief mindestens einmal, doch das Ausführen deckt nicht jeden Fehlerzustand aufDie Ausführung ist garantiert, die Aufdeckung nicht, z. B. bei datenabhängigen Fehlerzuständen.

Wenn eine Anweisungsüberdeckung von 100 % erreicht wird, ist sichergestellt, dass alle ausführbaren Anweisungen mindestens einmal ausgeführt worden sind; jede Anweisung mit einem Fehlerzustand wird also ausgeführt, was zu einer Fehlerwirkung führen kann. Das Ausführen einer Anweisung deckt jedoch nicht in allen Fällen Fehlerzustände auf, z. B. nicht bei datenabhängigen Fehlerzuständen wie einer Division durch null, die nur bei Nenner null fehlschlägt.

Lehrplanabschnitt 4.3.1

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