White Box Testing
Testmethode, die interne Implementierung und Codepfade gezielt prüft, um Fehlerquellen früh zu finden.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Fokus auf Implementation statt Anforderungen kann falsche Priorisierung erzeugen.
- Unzureichende Tests bei mangelhafter Pfadauswahl.
- Hoher Wartungsaufwand bei häufigen Code-Änderungen.
- Fokus auf kritische und risikobehaftete Pfade.
- Kombination von statischer Analyse und dynamischen Tests.
- Automatisierte Ausführung in der CI-Pipeline.
I/O & Ressourcen
- Quellcode und Implementierungsdetails
- Zugriff auf Testinfrastruktur (CI)
- Anforderungen und Schnittstellenspezifikationen
- Automatisierte Testfälle mit Pfaddefinitionen
- Berichte zur Abdeckung und gefundenen Fehlern
- Empfehlungen für Codeverbesserungen
Beschreibung
White-Box-Testing ist eine Testmethode, bei der interne Strukturen, Implementierungen und Programmlogik gezielt geprüft werden. Entwickler oder Tester nutzen Kenntnis des Codes, um Testfälle granular zu entwerfen und Pfade, Bedingungen sowie Datenflüsse abzudecken. Geeignet für Unit- und Integrationslevel, liefert schnellen Fehlerfeedback.
✔Vorteile
- Frühe Fehlererkennung im Implementierungsstadium.
- Gezielte Abdeckung komplexer Kontrollflüsse.
- Fundament für Regressionstests nach Änderungen.
✖Limitationen
- Bindet Entwicklerkapazität und detailliertes Codewissen.
- Kann Architekturfehler übersehen, wenn nur Implementierungsdetails betrachtet werden.
- Skalierung auf große Systeme erfordert Selektionsstrategien.
Trade-offs
Metriken
- Code-Pfad-Abdeckung
Misst den Anteil der ausgeführten Codepfade durch Tests.
- Fehlerentdeckungsrate pro Testlauf
Anzahl gefundener Fehler pro automatischem Testlauf.
- Wartungsaufwand für Tests
Zeitaufwand zur Anpassung von Tests nach Codeänderungen.
Beispiele & Implementierungen
Unit-Tests einer Parser-Komponente
Testfälle prüfen verschiedene Eingabeszenarien und Bedingungszweige im Parser.
Pfadabdeckung in Authentifizierungslogik
Überprüfung aller Entscheidungszweige für Login, Token-Handling und Fehlerzustände.
Grenzfalltests für numerische Berechnungen
Gezielte Tests für Überlauf, Genauigkeitsgrenzen und spezielle Eingabewerte.
Implementierungsschritte
Identifikation kritischer Module und Pfade.
Entwurf granularer Testfälle für Bedingungen und Grenzfälle.
Automatisierung der Tests und Integration in CI.
Regelmäßige Überprüfung und Anpassung der Test-Suite.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Alte Tests mit enger Kopplung an veraltete Implementierungen.
- Unzureichende Testinfrastruktur für schnelle Ausführung.
- Fehlende Testdatenverwaltung für deterministische Tests.
Bekannte Engpässe
Beispiele für Missbrauch
- Schreiben von Tests, die jede interne Variable fest codieren.
- Ausschließliche Abhängigkeit von white-box Tests ohne Systemtests.
- Verwendung von White-Box-Tests zur Kompensation fehlender Anforderungen.
Typische Fallen
- Unterschätzung des Wartungsaufwands bei häufiger Refaktorierung.
- Falsche Annahme, dass hohe Pfadabdeckung alle Fehler verhindert.
- Mangelnde Abstimmung mit Anforderungsseite führt zu irrelevanten Tests.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Zeitliche Begrenzungen im Sprint
- • Begrenzte Ressourcen für umfangreiche Tests
- • Privilegien für Zugriff auf Quellcode nötig