Was ist Gray Box?
Gray Box ist das Testen von Software mit begrenzten Kenntnissen über ihre internen Abläufe. Gray-Box-Tests sind eine ethische Hacking-Technik, bei der der Hacker begrenzte Informationen verwenden muss, um die Stärken und Schwächen des Sicherheitsnetzwerks eines Ziels zu identifizieren.
Grauer Kasten
Gray Box ist eine Mischung aus White Box-Tests, bei denen der Tester die interne Logik und Struktur des Software-Codes untersucht, und Black Box-Tests, bei denen der Tester nichts über den Software-Code weiß. Um Gray Box-Tests zu verstehen, müssen wir zuerst Schwarz verstehen Box-Tests und White-Box-Tests.
Black-Box- und White-Box-Tests
Beim Black-Box-Test geht es nur um Eingaben des Benutzers und um die Ausgabe, die die Software bei diesen Eingaben erzeugt. Für den Black-Box-Test sind keine Kenntnisse der Programmiersprache oder anderer technischer Details erforderlich. Es handelt sich um eine Art von High-Level-Test, der bei Systemtests und Abnahmetests verwendet wird. Softwareentwickler benötigen ein Dokument mit den Softwareanforderungen (Software Requirement Specification, SRS), um Black-Box-Tests durchführen zu können. Bei diesem Test wird eine Endbenutzerperspektive betrachtet, bei der der Black-Box-Tester nicht weiß, wie die Ausgaben aus den Eingaben generiert werden.
White-Box-Tests erfordern fundierte Kenntnisse der zum Erstellen von Software verwendeten Techniken und Plattformen, einschließlich der entsprechenden Programmiersprache. Es ist eine Art von Low-Level-Test, der bei Unit-Tests und Indikationstests verwendet wird. Softwareentwickler müssen die Programmiersprache verstehen, die zum Erstellen der Anwendung verwendet wird, damit sie den Quellcode verstehen können. White-Box-Tests dienen in erster Linie dazu, die Sicherheit zu erhöhen, den Fluss von Ein- und Ausgängen durch die Anwendung zu untersuchen und das Design und die Benutzerfreundlichkeit zu verbessern. Wenn ein White-Box-Tester von einer bestimmten Eingabe nicht die erwartete Ausgabe erhält, wird das Ergebnis als Fehler angesehen, der behoben werden muss.
Gray-Box-Test
Der Gray-Box-Test umfasst wichtige Komponenten sowohl des Black- als auch des White-Box-Tests, um ein besseres Ergebnis zu erzielen, als dies mit beiden Methoden allein möglich wäre. Sowohl Endbenutzer als auch Entwickler führen Gray-Box-Tests mit begrenzten (Teil-) Kenntnissen des Quellcodes einer Anwendung durch. Gray-Box-Tests können manuell oder automatisiert durchgeführt werden. Es ist umfassender und zeitaufwendiger als Black-Box-Tests, aber nicht so umfassend und zeitaufwendig wie White-Box-Tests. Gray-Box-Tester benötigen detaillierte Konstruktionsunterlagen.
Beim Gray-Box-Test werden Eingänge identifiziert, Ausgänge identifiziert, Hauptpfade identifiziert und Unterfunktionen identifiziert. Anschließend werden Eingaben und Ausgaben für Unterfunktionen entwickelt, Testfälle für Unterfunktionen ausgeführt und diese Ergebnisse überprüft.
Beispiel für eine graue Box
Ein grauer Box-Tester überprüft und repariert möglicherweise die Links auf einer Website. Wenn ein Link nicht funktioniert, ändert der Tester den HTML-Code, damit der Link funktioniert, und überprüft die Benutzeroberfläche erneut, um festzustellen, ob der Link funktioniert. Ein Gray-Box-Tester kann auch einen Online-Rechner testen. Der Tester definiert Eingaben - mathematische Formeln wie 1 + 1, 2 * 2, 5–4 und 15/3 - und überprüft dann, ob der Rechner die richtigen Ausgaben für diese Eingaben liefert. Der Gray-Box-Tester hat Zugriff auf den HTML-Code des Rechners und kann diesen ändern, wenn Fehler festgestellt werden.
Beim Gray-Box-Test werden sowohl die Benutzeroberfläche oder die Präsentationsebene der Anwendung als auch die internen Funktionen oder der Code untersucht. Es wird hauptsächlich für Integrationstests und Penetrationstests verwendet, ist jedoch nicht für Algorithmustests geeignet. Gray-Box-Tests werden im Allgemeinen verwendet, um die Benutzeroberfläche, die Sicherheit oder die Online-Funktionalität einer Anwendung mithilfe von Techniken wie Matrixtests, Regressionstests, Tests für orthogonale Arrays und Mustertests zu testen. Gray-Box-Tester identifizieren am ehesten kontextspezifische Probleme.
"Grau" bezieht sich auf die teilweise Fähigkeit des Testers, die internen Abläufe der Anwendung zu sehen. "Weiß" bezieht sich auf die Fähigkeit, die Schnittstelle der Software zu ihrem Innenleben zu durchschauen, und "Schwarz" bezieht sich auf die Unfähigkeit, das Innenleben der Software zu sehen. Gray-Box-Tests werden manchmal als durchscheinende Tests bezeichnet, während White-Box-Tests manchmal als durchsichtige Tests bezeichnet werden und Black-Box-Tests auch als undurchsichtige Tests bezeichnet werden können.