Black-Box-Test

Black-Box-Test bezeichnet eine Methode des Softwaretests, bei der die Tests ohne Kenntnisse über die innere Funktionsweise des zu testenden Systems entwickelt werden. Er beschränkt sich auf funktionsorientiertes Testen, d. h. für die Ermittlung der Testfälle werden nur die Anforderungen, aber nicht die Implementierung des Testobjekts herangezogen. Die genaue Beschaffenheit des Programms wird nicht betrachtet, sondern vielmehr als Black Box behandelt. Nur nach außen sichtbares Verhalten fließt in den Test ein.

Inhaltsverzeichnis

Zielsetzung

Ziel ist es, die Übereinstimmung eines Softwaresystems mit seiner Spezifikation zu überprüfen. Ausgehend von formalen oder informalen Spezifikationen werden Testfälle erarbeitet, die sicherstellen, dass der geforderte Funktionsumfang eingehalten wird. Das zu testende System wird dabei als Ganzes betrachtet, nur sein Außenverhalten wird bei der Bewertung der Testergebnisse herangezogen.

Testfälle aus einer informalen Spezifikation abzuleiten, ist vergleichsweise aufwändig und je nach Präzisionsgrad der Spezifikation u. U. nicht möglich. Oft ist daher ein vollständiger Black-Box-Test ebenso wenig wirtschaftlich wie ein vollständiger White-Box-Test.

Auch ist ein erfolgreicher Black-Box-Test keine Garantie für die Fehlerfreiheit der Software, da in frühen Phasen des Softwareentwurfs erstellte Spezifikationen spätere Detail- und Implementationsentscheidungen nicht abdecken.

Die außerdem existierenden Grey-Box-Tests sind ein Ansatz aus dem Extreme Programming, mit Hilfe testgetriebener Entwicklung die gewünschten Vorteile von Black-Box-Tests und White-Box-Tests weitgehend miteinander zu verbinden und gleichzeitig die unerwünschten Nachteile möglichst zu eliminieren.

Black-Box-Tests verhindern, dass Programmierer Tests „um ihre eigenen Fehler herum“ entwickeln und somit Lücken in der Implementierung übersehen. Ein Entwickler, der Kenntnisse über die innere Funktionsweise eines Systems besitzt, könnte unabsichtlich durch gewisse zusätzliche Annahmen, die außerhalb der Spezifikation liegen, einige Dinge in den Tests vergessen oder anders als die Spezifikation sehen. Als weitere nützliche Eigenschaft eignen sich Black-Box-Tests auch als zusätzliche Stütze zum Überprüfen der Spezifikation auf Vollständigkeit, da eine unvollständige Spezifikation häufig Fragen bei der Entwicklung der Tests aufwirft.

Weil die Entwickler der Tests keine Kenntnisse über die innere Funktionsweise des zu testenden Systems haben dürfen, ist bei Black-Box-Tests praktisch ein separates Team zur Entwicklung der Tests nötig. In vielen Unternehmen sind dafür sogar spezielle Testabteilungen zuständig.

Vergleich mit White-Box-Tests

Black-Box-Tests werden eingesetzt um Fehler gegenüber der Spezifikation aufzudecken, sind aber kaum geeignet, Fehler in bestimmten Komponenten oder gar die fehlerauslösende Komponente selbst zu identifizieren. Für letzteres benötigt man White-Box-Tests. Zu bedenken ist auch, dass zwei Fehler in zwei Komponenten sich zu einem vorübergehend scheinbar korrekten Gesamtsystem aufheben könnten. Dies kann durch White-Box-Tests leichter aufgedeckt werden, bei Black-Box-Tests nach der nicht auszuschließenden Korrektur nur einer der beiden Fehler jedoch als vermeintliche Regression zu Tage treten.

Im Vergleich zu White-Box-Tests sind Black-Box-Tests wesentlich aufwendiger in der Durchführung, da sie eine größere organisatorische Infrastruktur (eigenes Team) benötigen.

Die Vorteile von Black-Box-Tests gegenüber White-Box-Tests:

  • bessere Verifikation des Gesamtsystems
  • Testen von semantischen Eigenschaften bei geeigneter Spezifikation
  • Portabilität von systematisch erstellten Testsequenzen auf plattformunabhängige Implementierungen

Die Nachteile von Black-Box-Tests gegenüber White-Box-Tests:

  • größerer organisatorischer Aufwand
  • zusätzlich eingefügte Funktionen bei der Implementierung werden nur durch Zufall getestet
  • Testsequenzen einer unzureichenden Spezifikation sind unbrauchbar

Zudem sei genannt, dass die Unterscheidung Black-Box-Test vs. White-Box-Test teilweise von der Perspektive abhängt. Das Testen einer Teilkomponente ist aus Sicht des Gesamtsystems ein White-Box-Test, da für das Gesamtsystem aus der Außenperspektive keine Kenntnisse über den Systemaufbau und damit die vorhandenen Teilkomponenten vorliegen. Aus Sicht der Teilkomponente wiederum kann derselbe Test unter Umständen als Black-Box-Test betrachtet werden, wenn er ohne Kenntnisse über die Interna der Teilkomponente entwickelt und durchgeführt wird.

Auswahl der Testfälle

Die Anzahl der Testfälle einer systematisch erstellten Testsequenz, auf Basis einer geeigneten Spezifikation, ist in fast allen Anwendungen für die Praxis zu hoch. Es gibt z.B. folgende Möglichkeiten, diese systematisch zu verringern:

Im Gegensatz dazu kann die Reduktion auch auf intuitive Weise (Error Guessing) durchgeführt werden. Von dieser Methode sollte allerdings Abstand genommen werden, da hier immer unbewusst Annahmen berücksichtigt werden, die sich bei der späteren Anwendung der Applikation als negativ herausstellen können. Es gibt aber auch andere erfolgreiche Testrichtungen, die sehr erfolgreich damit sind. Vertreter sind z.B. James Bach [1] mit Rapid Testing oder Cem Kaner [2] mit Exploratory Testing (Ad-hoc-Test). Diese Testarten sind also den erfahrungsbasierten oder auch unsystematischen Techniken zuzuordnen. Dazu gehört auch schwachstellenorientiertes Testen.

Repräsentatives Testen

Alle Funktionen werden entsprechend der Häufigkeit, mit der sie später im Einsatz sein werden, getestet.

Schwachstellen-orientiertes Testen

Man beschränkt sich häufig nur auf intensives Testen jener Funktionen, bei denen die Wahrscheinlichkeit eines Auftretens von Fehlern hoch ist (komplexe Algorithmen, Teile mit ungenügender Spezifikation, Teile von unerfahrenen Programmierern, ...). Intensivere Tests können mit Fuzzing-Werkzeugen durchgeführt werden, da diese eine weitestgehende Automatisierung der Robustheits- und Schwachstellen-Tests erlauben. Die Ergebnisse dieser Tests sind dann Informationen über Datenpakete, die das SUT (System under Test) kompromittieren können. Schwachstellen-Tests können z. B. durch Vulnerability Scanner oder Fuzzer durchgeführt werden.

Schadensausmaß-orientiertes Testen (Risikoanalyse)

Man beschränkt sich auf intensives Testen von Funktionen, bei denen Fehler besonders gravierende Folgen haben können (z. B. Verfälschung oder Zerstörung einer umfangreichen Datei / Lebensgefahr für Personen (KFZ, Maschinensteuerungen) etc..).

Diese werden priorisiert oder klassifiziert (1,2,3,...) und dann entsprechend dieser Ordnung getestet.

Siehe auch

Literatur


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Black-Box-Test — ⇡ Testen …   Lexikon der Economics

  • Black box testing — NOTOC Black box testing takes an external perspective of the test object to derive test cases. These tests can be functional or non functional, though usually functional. The test designer selects valid and invalid input and determines the… …   Wikipedia

  • Black Box (Kybernetik) — Als Black Box bezeichnet man in Kybernetik und Systemtheorie ein (möglicherweise sehr komplexes) System, von welchem im gegebenen Zusammenhang nur das äußere Verhalten betrachtet werden soll. Die innere Struktur mag bekannt sein; solche Kenntnis… …   Deutsch Wikipedia

  • Black Box (Systemtheorie) — Als Black Box bezeichnet man in Kybernetik und Systemtheorie ein (möglicherweise sehr komplexes) System, von welchem im gegebenen Zusammenhang nur das äußere Verhalten betrachtet werden soll. Die innere Struktur mag bekannt sein; solche Kenntnis… …   Deutsch Wikipedia

  • Black Box Recorder — Infobox Musical artist Name = Black Box Recorder Img capt = Img size = Landscape = Background = group or band Origin = London, England Genre = Trip hop Pop Indie Years active = 1998 – 2003, 2007 Label = Associated acts = The Auteurs Art Brut|… …   Wikipedia

  • Glass-Box-Test — Der Begriff White Box Test (auch Glass Box Test) bezeichnet eine Methode des Software Tests, bei der die Tests mit Kenntnissen über die innere Funktionsweise des zu testenden Systems entwickelt werden. Im Gegensatz zum Black Box Test ist für… …   Deutsch Wikipedia

  • White-Box-Test — Der Begriff White Box Test (auch Glass Box Test) bezeichnet eine Methode des Software Tests, bei der die Tests mit Kenntnissen über die innere Funktionsweise des zu testenden Systems entwickelt werden. Im Gegensatz zum Black Box Test ist für… …   Deutsch Wikipedia

  • Gray-Box-Test — Grey Box Test ist eine Methode des Softwaretests, welche mit Hilfe testgetriebener Entwicklung (siehe auch Extreme Programming) die Vorteile von Black Box Tests und White Box Tests miteinander verbinden soll. Der Grey Box Test hat mit dem White… …   Deutsch Wikipedia

  • Grey Box Test — ist eine Methode des Softwaretests, welche mit Hilfe testgetriebener Entwicklung (siehe auch Extreme Programming) die Vorteile von Black Box Tests und White Box Tests miteinander verbinden soll. Der Grey Box Test hat mit dem White Box Test… …   Deutsch Wikipedia

  • Grey-Box-Test — Grey Box Tests sind Softwaretests, die im Rahmen der testgetriebenen Entwicklung (siehe auch Extreme Programming) die Vorteile von Black Box und White Box Tests miteinander verbinden sollen. Der Grey Box Test hat mit dem White Box Test gemeinsam …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”