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: