Definition „Black-Box- und White-Box-Testing“ Der Unterschied zwischen Black-Box- und White-Box-Test

Von Stephan Augsten

White- und Black-Box-Tests sind zwei Methoden, mit denen Komponenten, Code und Lauffähigkeit überprüft werden können. Aufgrund ihrer Unterschiede eignen sich beide Testverfahren in der Praxis für ganz verschiedene Szenarien.

Anbieter zum Thema

Black-Box- und Glass- bzw. White-Box-Tests schließen sich nicht aus, sondern können sich im Gegenteil ergänzen.
Black-Box- und Glass- bzw. White-Box-Tests schließen sich nicht aus, sondern können sich im Gegenteil ergänzen.
(Bild: wal_172619 / Pixabay )

White Box Testing und Black Box Testing bezeichnen zwei unterschiedliche Methoden des Softwaretests, bei denen Tester und Testerinnen über unterschiedliche Kenntnisse der zu testenden Software verfügen. Entsprechend haben beide Methoden ihre eigenen Vor- und Nachteile – wo genau diese liegen, wird am besten im direkten Vergleich klar.

White-Box-Test – eine kurze Definition

Der White-Box-Test wird auch Glass-Box-Test genannt, die Metapher einer gläsernen Kiste erklärt auch ganz gut, worum es sich bei dieser Testmethode handelt. Testpersonen haben dabei Kenntnisse des Codes und der Funktionsweisen einer Software, sie können in einigen Fällen auch live im Code nachschlagen.

White-Box-Tests sind in ihrer Durchführung sehr einfach und werden vor allem genutzt, um Fehler in einzelnen Softwarekomponenten zu entdecken. Auch eine Automatisierung des Testverfahrens ist hier problemlos möglich. Sie werden in der Regel genutzt, um interne Sicherheitslücken zu ermitteln, spezifische Input-Pfade zu prüfen oder Statements, Objekte und Funktionen losgelöst zu betrachten.

Black-Box-Test – eine kurze Definition

Beim Black-Box-Test tappen Testerinnen und Tester gewissermaßen im Dunkeln, sie wissen nicht, wie eine Software funktioniert, wie sie implementiert ist oder aus welchen Komponenten sie besteht. Stattdessen erfolgt der Test anhand der Spezifikationen, getestet werden also alle sichtbaren Komponenten. Black-Box-Tests erfolgen etwa durch valide und invalide Inputs, bei denen User die Funktionsweise eines Systems durch zu erwartende und fehlerhafte Eingaben und Aktionen untersuchen.

In der Praxis gibt es drei unterschiedliche Versionen eines Black-Box-Tests:

  • Functional Testing: der Test der Funktionsweise und Lauffähigkeit einer Software.
  • Non-functional Testing: bei dieser Form des Black-Box-Tests werden Systeme nicht auf ihre Lauffähigkeit getestet, sondern auf Skalierbarkeit, Bedienbarkeit und Performance, die "soften" Bestandteile also.
  • Regression Testing: dieser Black-Box-Test testet eine bereits durch Black-Box-Tests gelaufene Software erneut nach Upgrades, Patches oder anderen Eingriffen in den Code. Ziel ist die Ermittlung der Lauffähigkeit neuer Code-Teile in einer erwiesenermaßen funktionierenden Umgebung.

Die wichtigsten Unterschiede zwischen Black Box und White-Box-Tests

Beim Betrachten der Unterschiede zwischen den beiden Testverfahren sollte immer auch beachtet werden, dass Black und White Box Testing sich nicht gegenseitig ausschließen. In vielen Szenarios sind interne White-Box-Tests ein geeigneter Vorläufer für extern organisierte Black-Box-Tests.

Auch Mischverfahren wie Grey Box Testing können zum Einsatz kommen, hierbei besteht ein lückenhaftes Verständnis des Codes, um Integration oder Penetration Testing unter Black-Box-Szenarien bei gleichzeitigem Einblick in die Funktionsweise der Software zu gewährleisten.

Intern/extern

White-Box-Testing ist eine Methode, die auch intern durchgeführt werden kann und die sich, aufgrund ihres Fokus auf einzelne Komponenten, auch bestens automatisieren lässt. Das interne Testen kann auch deswegen von Vorteil sein, weil die Developer den geschriebenen Code kennen. Wird ein White-Box-Test ausgelagert, so sind zumindest Programmierkenntnisse in der genutzten Sprache notwendig.

Black-Box-Tests hingegen setzen keine Programmierkenntnisse voraus und können (bzw. sollten) daher extern durchgeführt werden. Testende benötigen lediglich ein Verständnis der Spezifikationen einer Software, allerdings erfordert dies für testende Unternehmen mehr logistischen Aufwand.

Ziele

White-Box-Tests ermitteln vor allem die Qualität des Codes und prüfen, wie robust und optimiert dieser in Hinblick auf einzelne Komponenten ist. Black-Box-Tests dagegen sind besser dafür geeignet, das Funktionieren einer Software als Ganzes zu betrachten.

Startzeitpunkt

Ein White-Box-Test kann beginnen, sobald ein detailliertes Designdokument und lauffähiger Code für einige Komponenten erstellt wurden. Für Black-Box-Tests müssen die Spezifikationen und Einsatzszenarien ausdefiniert sein, zudem muss eine lauffähige Software vorliegen.

Testpersonen

In White-Box-Tests testen und analysieren typischerweise die Programmiererinnen und Programmierer selbst, schließlich entfällt so die Einarbeitung in den Code. Black-Box-Tests hingegen werden von End-Users oder dedizierten Testpersonen durchgeführt.

Nachteile

White-Box-Tests haben vor allem den Nachteil, dass sie den Code und die Funktionsweise eines Systems abgeschottet von den Spezifikationen betrachten. Der Test ist daher nicht besonders praxisnah und überprüft nicht, ob User die Software als Ganzes letztlich so nutzen können, wie dies vorgesehen wurde.

Effizienz und Lauffähigkeit stehen im Vordergrund

Softwareentwicklung stößt beim Beheben von Fehlern stets an ihre Grenzen und selbst intensives Testen kann nicht jegliche Fehler im Code oder Mängel bei der Erfüllung von Spezifikationen ausschließen. Dies ist allerdings kein Argument gegen intensives Testen, sondern zeigt vielmehr die Notwendigkeit noch besserer Testverfahren, um so viele Probleme wie möglich auszuräumen. White-Box- und Black-Box-Tests gehören dabei zu Testverfahren, die sich gegenseitig bestens ergänzen und die daher auch im Zusammenspiel genutzt werden sollten.

(ID:48202835)