Was ist Grau? Box Testen? Techniken, Beispiel

⚡ Intelligente Zusammenfassung

Grau Box Beim Testen wird eine Anwendung unter teilweiser Kenntnis ihrer internen Struktur untersucht. Dabei wird die benutzerorientierte Sichtweise des Black-Box-Tests mit genügend architektonischem Einblick kombiniert, um zu erklären, warum ein Fehler aufgetreten ist, und nicht nur, dass er aufgetreten ist.

  • 🔍 Wissensstand: Die interne Struktur ist teilweise bekannt, im Gegensatz zu vollständig bekannt bei White-Box-Tests und unbekannt bei Black-Box-Tests.
  • 🧪 Vier Techniken: Matrixtests, Regressionstests, orthogonale Array-Tests und Mustertests bilden den Kern des Instrumentariums.
  • 🪜 Zehn Schritte: Identifizieren Sie Eingaben, Ausgaben und Hauptpfade, unterteilen Sie dann das System in Teilfunktionen und überprüfen Sie jede einzelne.
  • 🔗 beste Passform: Integrationstests, Penetrationstests, datenbankgestützte Workflows, Webdienste und API-Konfigurationentracts.
  • ️ Abtausch: Teilweise Sichtbarkeit reduziert zwar den Aufwand, begrenzt aber auch, wie tief ein einzelner Codepfad verlaufen kann. traced..
  • 📋 Voraussetzungen: Eine genaue Designdokumentation ist wichtig, denn ein veraltetes Schema oder eine veraltete Spezifikation macht das Testdesign stillschweigend ungültig.

Grau Box Testen, das teilweises internes Wissen mit einem benutzerorientierten Testdesign kombiniert

Was ist Grau? Box Testen?

Grau Box Tests (auch Gray geschrieben) Box Graustufentesting ist eine Softwaretesttechnik, die ein Softwareprodukt oder eine Anwendung mit nur teilweiser Kenntnis ihrer internen Struktur testet. Box Beim Testen geht es darum, Fehler aufzuspüren und zu identifizieren, die durch eine fehlerhafte Codestruktur oder eine unsachgemäße Verwendung der Anwendung verursacht werden.

Dabei werden üblicherweise kontextspezifische Fehler im Zusammenhang mit Websystemen identifiziert. Die Technik erhöht Testabdeckung indem man sich auf alle Ebenen eines komplexen Systems konzentriert, anstatt nur auf eine davon.

Grau Box Testen ist eine Softwaretestmethode, die kombiniert Weiß Box Tests und Schwarz Box TestsDer Unterschied zwischen den dreien liegt darin, wie viel von der internen Struktur der Tester einsehen kann:

  • In weiss Box Das Testen der internen Struktur (des Codes) ist bekannt.
  • In Schwarz Box Es ist unbekannt, ob die interne Struktur (der Code) getestet werden kann.
  • In Grau Box Das Testen der internen Struktur (des Codes) ist teilweise bekannt.

Das untenstehende Diagramm ordnet die drei Methoden auf derselben Sichtbarkeitsskala an.

Grau Box Tests zeigten zwischen Weiß Box und Schwarz Box Tests im Umfang der internen Code-Sichtbarkeit

In Softwareentwicklung, Grau Box Durch Tests lassen sich beide Seiten einer Anwendung prüfen: die Präsentationsschicht sowie der zugrundeliegende Code. Dies ist vor allem dann nützlich, wenn… Integrationstests und .

Beispiel für Grau Box Testing: Beim Testen einer Website-Funktion wie Links oder verwaisten Links kann der Tester, falls er auf ein Problem mit diesen Links stößt, die Änderung direkt im HTML-Code vornehmen und in Echtzeit überprüfen.

Warum Grau Box Tests

Grau Box Die Tests werden aus folgenden Gründen durchgeführt:

  • Es vereint die Vorteile von Black-Box-Tests und White-Box-Tests.
  • Es vereint die Beiträge von Entwicklern und Testern und verbessert so die Gesamtproduktqualität.
  • Es reduziert den Aufwand des langwierigen Prozesses des Testens funktionaler und nicht-funktionaler Typen.
  • Es gibt einem Entwickler genügend freie Zeit, um Fehler zu beheben.
  • Die Tests werden aus der Sicht des Benutzers und nicht aus der Sicht des Entwicklers durchgeführt.
  • Ein Fehler kann erklärt statt nur gemeldet werden, weil der Tester die Schicht sehen kann, in der er aufgetreten ist.

Grau Box Test vs. Schwarz Box gegen Weiß Box Tests

Die drei Methoden stellen weniger konkurrierende Alternativen dar, sondern vielmehr drei Zugangsebenen, und jede beantwortet eine andere Fragestellung. Der direkte Vergleich macht die Entscheidung konkret.

Verpflegung Schwarz Box Tests Grau Box Tests Weiß Box Tests
Kenntnisse der inneren Struktur Keine Präsentation Teilweise Vollständiger
Durchgeführt von Tester und Endbenutzer Tester und Entwickler, die mit Testern zusammenarbeiten Entwickler und Testingenieure
Grundlage des Testdesigns Anforderungen und Spezifikationen ArchiArchitektur, Algorithmen, Datenstrukturen und Schnittstellen Quellcode und Kontrollfluss
Typisches Niveau System- und Abnahmeprüfung Integrations-, Penetrations- und Web-Service-Tests Unit- und Komponententests
Abdeckung gemessen als Anforderungsabdeckung Schnittstellen-, Daten- und Pfadabdeckung Anweisungs-, Zweig- und Pfadabdeckung
Hauptbeschränkung Die Ursache eines Fehlers bleibt verborgen Die Tiefe ist durch den gewährten Zugang begrenzt. Es ist kostspielig und kann fehlende Anforderungen übersehen.

Die meisten Teams nutzen alle drei im gesamten Spiel. Lebenszyklus von Softwaretests, und in der Grey-Box-Schicht werden üblicherweise die Fehler erkannt, die zwischen der Benutzeroberfläche und dem Datenspeicher liegen.

Grau Box Teststrategie

Um Grey auszuführen Box Für das Testen ist es nicht erforderlich, dass der Tester Zugriff auf den Quellcode hat. Ein Test wird auf der Grundlage von Kenntnissen über die Algorithmen, Architekturen, internen Zustände oder andere abstrakte Beschreibungen des Programmverhaltens entworfen.

Um Grey auszuführen Box Testing:

  • Es wendet die unkomplizierten Techniken des Black-Box-Testings an.
  • Es basiert auf der anforderungsgetriebenen Generierung von Testfällen und legt daher alle Bedingungen fest, bevor das Programm mit der Assertionsmethode getestet wird.

Techniken, die für Grau verwendet werden Box Die Tests sind:

  • Matrixtest: Diese Technik beinhaltet die Definition aller im Programm vorhandenen Variablen sowie des jeweiligen Risikos, das jede Variable birgt, sodass ungenutzte und risikoreiche Variablen sichtbar werden.
  • Regressionstests: Es wird geprüft, ob eine Änderung in der vorherigen Version andere Aspekte des Programms in der neuen Version beeinträchtigt hat. Dies geschieht mithilfe von Strategien wie dem erneuten Testen aller Komponenten, dem erneuten Testen risikobehafteter Anwendungsfälle und dem erneuten Testen innerhalb einer Firewall.
  • Orthogonale Array-Tests oder OAT: bietet maximale Codeabdeckung bei minimaler Anzahl an Testfällen.
  • Mustertest: Die Tests basieren auf historischen Daten früherer Systemfehler. Im Gegensatz zu Black-Box-Tests werden Grey-Tests durchgeführt. Box Beim Testen wird der Code genauestens untersucht, um die Ursache des Fehlers zu ermitteln.

Grau Box Die Methodik verwendet üblicherweise automatisierte Software-Test-Tools Um die Tests durchzuführen, werden Stubs und Modultreiber erstellt, damit der Tester den Code nicht manuell generieren muss.

Schritte zur Durchführung von Grey Box Die Tests sind:

  • Schritt 1: Eingaben identifizieren.
  • Schritt 2: Identifizieren Sie die Ausgaben.
  • Schritt 3: Die Hauptwege identifizieren.
  • Schritt 4: Teilfunktionen identifizieren.
  • Schritt 5: Eingaben für die Unterfunktionen entwickeln.
  • Schritt 6: Entwickeln Sie Ausgaben für die Unterfunktionen.
  • Schritt 7: Führen Sie den Testfall für die Unterfunktionen aus.
  • Schritt 8: Überprüfen Sie das korrekte Ergebnis der Unterfunktionen.
  • Schritt 9: Wiederholen Sie die Schritte 4 bis 8 für die anderen Teilfunktionen.
  • Schritt 10: Wiederholen Sie die Schritte 7 und 8 für die anderen Unterfunktionen.

Die Testfälle für Grey Box Die Tests können unter anderem GUI-, Sicherheits-, Datenbank-, Browser- und Betriebssystemaspekte umfassen. Jeder generierte Testfall erfordert weiterhin die üblichen Tests. Testfall Attribute, da ein Fall, der sich nicht aus seiner eigenen Beschreibung reproduzieren lässt, bei der Regression von geringem Nutzen ist.

Wo Grau Box Tests werden verwendet

Diese Technik bewährt sich überall dort, wo ein Defekt nur durch die gleichzeitige Betrachtung zweier Schichten diagnostiziert werden kann. Sie wird am häufigsten in folgenden Szenarien angewendet:

  • Datenbankgestützte Workflows: Eine Aktion wird über die Benutzeroberfläche ausgeführt, und die resultierenden Zeilen werden dann direkt abgefragt, um zu bestätigen, dass die Werte, Typen und Beziehungen wie beabsichtigt gespeichert wurden.
  • Webdienste und APIs: Es wird eine Anfrage gesendet und der Antwortstatus, die Header und die Nutzdaten werden mit den veröffentlichten Spezifikationen verglichen.tract, was die alltägliche Form von API-Tests.
  • Integrationspunkte: Nachrichten, die die Grenze zwischen zwei Modulen überschreiten, werden untersucht, wobei beide Module als laufende Systeme und nicht als Quelldateien behandelt werden.
  • Sicherheitsbewertung: Ein Penetrationstester, dem ein normales Benutzerkonto und ein Architekturüberblick zur Verfügung stehen, reproduziert die Position eines Insiders, was dem Standard-Grey-Box-Engagement-Modell entspricht.
  • Webanwendungen und grafische Benutzeroberflächen: Defekte Links, verwaiste Seiten, Sitzungsverwaltung und clientseitige Validierung werden alle bei teilweiser Sichtbarkeit des Markups und des Anfrageablaufs überprüft.

In all diesen Bereichen werden die Gesamtkosten von Systemfehlern reduziert, da Probleme erkannt und erklärt werden, bevor sie sich weiter in den Prozessablauf ausbreiten. Systemtests oder Produktion.

Grau Box Testtools

Kein Werkzeug führt Grau aus Box Für sich genommen ist das Testen nicht ausreichend. Was diese Kategorie benötigt, ist eine Kombination aus einem Schnittstellentreiber, einem Inspektionswerkzeug für die darunterliegende Schicht und einer Möglichkeit, beides per Skript zu verknüpfen.

  • API- und Webservice-Clients wie Postman und SoapUI, wird verwendet, um Anfragen zu stellen und Statuscodes sowie Antworttexte zu überprüfen.
  • Datenbankclients und SQL-Abfragetools, dient zur Überprüfung des persistenten Zustands nach einer Schnittstellenaktion.
  • Browser-Entwicklertools und HTTP-Proxys wie Burp Suite, wird verwendet, um Anfragen während sicherheitsorientierter Sitzungen zu prüfen und zu modifizieren.
  • UI-Automatisierungsframeworks wie Selenium, wird verwendet, um die Präsentationsschicht innerhalb eines Automatisierungstests Suite.
  • Protokollierungs- und Überwachungstools, dient dazu, einen beobachteten Fehler mit dem zu korrelieren, was die Anwendung intern zu diesem Zeitpunkt aufgezeichnet hat.

Die Wahl der Verkabelung ist weniger wichtig als die Wahl der Verkabelung: Wenn der Schnittstellentreiber und der Inspektionsschritt nicht im selben Skriptablauf ausgeführt werden, erhält man zwei separate manuelle Prüfungen anstelle eines einzigen Grey-Box-Tests.

Grau Box Herausforderungen testen

Partielle Sichtbarkeit führt zu Problemen, die bei den reinen Methoden nicht auftreten. Die folgenden Probleme begegnen den Teams am häufigsten:

  • Wenn bei einer zu testenden Komponente ein Fehler auftritt, kann die laufende Operation abgebrochen werden, sodass der Rest der Sequenz nicht ausgeführt wird.
  • Ein Test kann vollständig ausgeführt werden, obwohl der Inhalt des Ergebnisses fehlerhaft ist. Daher muss der Verifizierungsschritt die Werte und nicht die Vollständigkeit überprüfen.
  • Eine vollständige Codeabdeckung ist nicht möglich, da der Tester nie jeden Zweig sieht, den ein White-Box-Test erreichen würde.
  • Die Designdokumentation, auf die sich die Tests stützen, kann veraltet sein, und ein überholtes Schema oder eine veraltete Schnittstellenspezifikation macht das Testdesign stillschweigend ungültig.
  • Tester benötigen sowohl Domänenverständnis als auch technisches Fachwissen, was ein engeres Anforderungsprofil für die Rekrutierung darstellt.
  • Verteilt und stark abstracBei komplexen Architekturen ist es schwierig, einen beobachteten Fehler einer bestimmten internen Komponente zuzuordnen.

Diese Einschränkungen sprechen für eine Behandlung von Grey Box Testen als eine Ebene unter mehreren und nicht als Ersatz für die anderen – das ist der Punkt, der im gesamten breiteren Spektrum hervorgehoben wird. Softwaretesttechniken und Arten von SoftwaretestsEs fügt sich ganz natürlich ein neben Funktionsprüfung und spezifikationsgetriebene Ansätze wie modellbasiertes Testen.

Häufig gestellte Fragen

Beide Schreibweisen bezeichnen dieselbe Technik. „Grey“ ist die britische, „gray“ die amerikanische Schreibweise; in der Dokumentation von Werkzeugen und in Zertifizierungslehrplänen werden sie synonym verwendet. Sie haben keine unterschiedliche technische Bedeutung.

Es genügt, die internen Abläufe zu verstehen, ohne jede Zeile lesen zu müssen: Architekturskizzen, das Datenmodell, Schnittstellenkonstruktetracts und ein schreibgeschütztes Konto in der Testdatenbank. Vollständiger Repository-Zugriff verwandelt die Übung in einen White-Box-Test.

Üblicherweise übernimmt ein Testingenieur mit Entwicklungshintergrund oder ein Tester, der für die jeweilige Sitzung mit einem Entwickler zusammenarbeitet, die Durchführung. Sicherheitsüberprüfungen werden von Penetrationstestern durchgeführt, die über ein Standardbenutzerkonto und eine Architektureinweisung verfügen.

Anhand von Schnittstellen und Daten statt Anweisungen: Jeder aufgerufene Endpunkt und Statuscode, jede bearbeitete Tabelle und jeder Zustandsübergang, jeder durchlaufene Integrationspfad. Die prozentualen Anteile von Anweisungen und Verzweigungen gehören zur White-Box-Messung.

Ein Stub repräsentiert eine Komponente, die das zu testende Modul aufruft; ein Treiber repräsentiert die Komponente, die diese Komponente aufrufen würde. Zusammen ermöglichen sie die isolierte Ausführung einer Unterfunktion, bevor das Gesamtsystem existiert.

Wenn ein unabhängiges Urteil aus Nutzersicht erforderlich ist, da unvollständiges Wissen den Tester in Richtung erwarteter Vorgehensweisen lenkt, bleiben Akzeptanztests und Usability-Tests genau aus diesem Grund Black Boxes, während sicherheitskritischer Code weiterhin eine vollständige White-Box-Analyse erfordert.

Maschinelles Lernen analysiert die Fehlerhistorie für den Mustertest, ordnet Schnittstellen nach vorhergesagtem Risiko, um den begrenzten Zugriff optimal zu nutzen, und gruppiert Protokolle, um einen beobachteten Fehler mit der internen Komponente zu verknüpfen, die ihn verursacht hat.

Ja, für die sich wiederholenden Teile: Anforderungsgeneratoren, Antwortzusicherungen, Verifizierungsabfragen, Stubs und Treiber, die aus einer Schnittstellendefinition abgeleitet werden. Die Entscheidung, welcher interne Zustand das korrekte Verhalten beweist, bleibt eine Designentscheidung des Entwicklers.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: