Glossar · Testgrundlagen
Black-Box-Test
Englisch: Black-box testing
Auch genannt: Black-Box-Testing, Blackbox-Test, spezifikationsbasierter Test, Black-Box-Testverfahren
Definition
Ein System über seine Ein- und Ausgaben gegen die Anforderungen testen, ohne den internen Code oder das Design anzusehen oder sich darauf zu stützen.
Beim Black-Box-Test wird das System als geschlossene Kiste betrachtet: Sie geben Eingaben vor, beobachten die Ausgaben und vergleichen sie mit dem, was laut Spezifikation passieren soll. Der Tester muss weder die Programmiersprache noch die Architektur oder die Struktur des Codes kennen. Die meisten funktionalen Tests, Systemtests, API-Tests und Abnahmetests sind Black-Box-Tests.
Beispiel
Eine Überweisungs-API akzeptiert Beträge von 1 bis 10.000. Ohne Code zu sehen, leitet ein Black-Box-Tester aus der Regel Tests ab:
- Äquivalenzklassen: unterhalb des Bereichs (0), gültig (500), oberhalb des Bereichs (10.001), nicht numerisch (
"abc"). - Grenzwerte: 0, 1, 2, 9.999, 10.000, 10.001.
- Erwartete Ergebnisse: gültige Beträge liefern
201 Created; ungültige liefern400 Bad Requestmit einer Fehlermeldung und bewegen kein Geld.
Die hier verwendeten Verfahren, Äquivalenzklassenbildung und Grenzwertanalyse, bilden zusammen mit Entscheidungstabellen, Zustandsübergangstests und Pairwise Testing die zentralen Black-Box-Testentwurfsverfahren.
Black-Box- vs. White-Box-Test
| Black-Box | White-Box | |
|---|---|---|
| Grundlage | Anforderungen und Spezifikationen | Interne Codestruktur |
| Benötigtes Wissen | Was das System tun soll | Wie der Code geschrieben ist |
| Typische Teststufen | System, API, Abnahme | Unit, teils Integration |
| Gemessen an | Anforderungsabdeckung | Codeabdeckung (Anweisungen, Zweige) |
| Findet | Fehlendes oder falsches Verhalten, Abweichungen von der Spezifikation | Ungetestete Pfade, toten Code, Logikfehler |
Keines ersetzt das andere. Black-Box-Tests können Features finden, die nie implementiert wurden – das kann der White-Box-Test nicht, weil es keinen Code zu untersuchen gibt. White-Box-Tests können Pfade finden, die die Spezifikation nie erwähnt. Der Grey-Box-Test kombiniert beides: Getestet wird über die Schnittstelle, aber mit etwas internem Wissen, etwa indem man nach einem API-Aufruf die Datenbank prüft oder weiß, welchen Service ein Request erreicht.
Stärken und Grenzen
Black-Box-Tests sind unabhängig von der Implementierung, überstehen also Refactorings und lassen sich aus den Anforderungen schreiben, bevor der Code existiert. Ihre Grenze: Sie sehen nicht, welche internen Pfade Sie verpasst haben, und ohne systematische Verfahren testet man leicht nur die offensichtlichen Happy Paths.