White Box Testverfahren
R 2.0.0
Beschreibung
White-Box-Tests basieren auf der internen Struktur des Testobjekts (d.h. der Quellcode ist bekannt und es wird am Code geprüft).
White-Box-Test benötigt Entwicklungs-Know-how, z. B.
-
Kenntnisse über den Codeaufbau, um Codeüberdeckungswerkzeuge gezielt nutzen zu können
-
Wissen, wie Daten gespeichert werden, um z. B. mögliche Datenbankanfragen zu beurteilen
-
Fähigkeit Ergebnisse korrekt zu interpretieren
-
und Werkzeugunterstützung.
Anweisungstest und Anweisungsüberdeckung
Anweisungstests untersuchen die potenziell ausführbaren Anweisungen im Code. Die Überdeckung wird an der Anzahl der im Test ausgeführten Anweisungen dividiert durch die Gesamtzahl aller ausführbaren Anweisungen insgesamt im Testobjekt gemessen – üblicherweise als Prozentsatz dargestellt.
100% Anweisungsüberdeckung bedeutet, dass alle potenziell ausführbaren Anweisungen im Code auch mindestens einmal ausgeführt wurden. Es stellt aber nicht sicher, dass die komplette Entscheidungslogik getestet wurde. Von den beiden beschriebenen White-Box-Verfahren kann der Anweisungstest weniger Überdeckung als der Entscheidungstest erzielen.
Entscheidungstest und Entscheidungsüberdeckung
Entscheidungstests untersuchen die Entscheidungen im Code und testen den Code, der auf Grundlage des Entscheidungsergebnisses ausgeführt wird. Dafür folgen die Testfälle bestimmten Kontrollflüssen, die von einem Entscheidungspunkt ausgehen (z.B. „wahr“ und „falsch“ bei einer IF-Anweisung, für eine CASE Anweisung wären Testfälle für alle möglichen Ergebnisse nötig, auch für das Standardergebnis).
Die Überdeckung wird gemessen anhand der Anzahl der Entscheidungsergebnisse, die durch die Tests ausgeführt werden, dividiert durch die Gesamtzahl an möglichen Entscheidungsergebnissen im Testobjekt – üblicherweise als Prozentsatz dargestellt.
Wenn 100% Entscheidungsüberdeckung erzielt wird, führt dies alle Entscheidungsergebnisse aus, inklusive eines Tests des „wahr“-Ergebnisses und auch des „falsch“-Ergebnisses, selbst wenn es keine ausdrückliche Anweisung für den „falsch“-Fall gibt (z.B. für den Fall, dass eine IF-Anweisung keine ELSE-Anweisung im Code enthält). Anweisungsüberdeckung hilft Fehlerzustände im Code zu finden, der durch andere Tests nicht ausgeführt wurde. Entscheidungsüberdeckung hilft Fehlerzustände im Code zu finden, für den andere Tests nicht alle "wahr"/"falsch"-Fälle ausgeführt haben.
Das Erzielen von 100% Entscheidungsüberdeckung garantiert 100% Anweisungsüberdeckung (aber nicht umgekehrt).
Quellen
-
ISTQB Certified Tester Lehrplan Foundation Level, Version 4.0.1a, 2023, abgerufen am 13.12.2024
-
ISTQB Glossar White Box Testverfahren, abgerufen am 22.02.2024
-
A. Spillner, T. Linz - Basiswissen Softwaretest, 7. Auflage, 2024