What is white box testing?
Automatisierung
15 min lesen
Januar 2, 2024

Was ist White-Box-Testing?

White-Box-Tests sind eine Art von Software-Tests, die einen Beitrag zur Software-Qualitätsentwicklung in der Software-Entwicklung leisten.

photo
Olga Ryan

White-Box-Tests sind eine Art von Software-Tests, die einen Beitrag zur Software-Qualitätsentwicklung in der Software-Entwicklung leisten. Die wichtigste Voraussetzung für diese Art von Tests ist, dass Sie über umfassende Kenntnisse des Quellcodes verfügen müssen. Außerdem müssen Sie sich eingehend mit der Software, den Netzwerken, den Anwendungen und dem Systemzugang im Allgemeinen befassen.

White-Box-Tests in der Softwareentwicklung werden normalerweise von Entwicklern durchgeführt, aber auch QS-Tester können sie durchführen, wenn sie die oben genannten Anforderungen erfüllen. Die Durchführung von White-Box-Tests hilft ihnen, die Eingabe- und Ausgabeflüsse durch die gesamte Anwendung oder ein bestimmtes Softwarepaket zu überprüfen. Bei diesem Ansatz zur Evaluierung von Software werden die interne Struktur, die Codierung, die innere Funktionsweise der Software und sogar das Design untersucht.

Mit der White-Box-Methode können die nächsten Themen in der Software hervorgehoben werden:

  • Prüfung jeder spezifischen Funktion, jedes Objekts und jeder Anweisung;

  • Interne Sicherheitslücken und unnötige Codepfade;

  • Umgang mit bestimmten Eingaben und erwarteten Resultaten;

  • Die korrekte Funktionsweise von bedingten Schleifen.

Alle diese Themen helfen Ihnen, die Infrastruktur von Softwarelösungen und die interne Codierung zu testen. Glass-Box-Testing, Clear-Box-Testing, Transparent-Box-Testing, Open-Box-Testing oder Code-basiertes Testen – all das sind nur andere Namen für die White-Box-Testing-Technik.


Stellen Sie sich vor, ein Kunde hat Sie eingeladen, seine Galerie zu testen. Sie kommen in einen gut beleuchteten Raum mit vielen Gemälden; man sagt Ihnen, wo Sie das Licht aus- und einschalten sollen, wo der Eingang ist, wo der Kunde sein Geld aufbewahrt oder sogar, wie seine Rohrsysteme aussehen. Sie geben Ihnen ein vollständiges Bild, bevor Sie mit dem Schreiben Ihres Testfalls beginnen können.

Sie sehen sich um und stellen fest, dass eines der Rohre undicht ist, es tropft auf eines der Gemälde, und es besteht die Möglichkeit, dass dies einen Kurzschluss verursacht. Also informieren Sie den Kunden über diese Probleme, um mögliche Probleme vor der Eröffnung der Galerie zu vermeiden. Dies ist die Schlüsselfunktion der White-Box-Tests.


Es handelt sich jedoch nicht nur um eine einzige Software-Testmethode. So gibt es beispielsweise eine gegenteilige Testmethode – das Black-Box-Testing. Der Grundgedanke dieser Tests besteht darin, reale Bedrohungen und Risiken zu simulieren, aber Sie dürfen nur bestimmte Teile testen, zu denen Sie Zugang haben.

Wenn wir von Black-Box-Tests sprechen, können Sie Ihre Daten in das System oder dessen Teil eingeben, ohne dessen interne Struktur und Mechanismen zu kennen, und durch Beobachtung der Ausgabe entscheiden Sie, ob alles korrekt funktioniert oder nicht.


Kommen wir zurück zu unserem Galerie-Beispiel und wie Black-Box-Tests dort funktionieren würden. Sie stellen sich direkt an den Eingang und schalten Licht, Gas und Wasser ein. Sie verbringen 30 Minuten darin, und wenn Sie kein Gasleck riechen können, keinen Rauch aus der Eingangstür kommen sehen und der Boden noch trocken ist, können Sie davon ausgehen, dass die Systeme einwandfrei funktionieren.


Man kann also das Innenleben der Software oder der Softwareanwendung nicht sehen. Keine der internen Komponenten oder Teile der internen Strukturen sind bekannt, die Kodierungsprozesse sind verborgen. In dieser Situation geht es bei diesem Ansatz darum, die Erfahrung des Endbenutzers zu testen, während man in der Lage ist, alle oder bestimmte Teile des Anwendungscodes, des Systems oder seiner Einheit zu testen. Dies kann durch Hinzufügen einer Eingabe und Beobachten der Ausgabe geschehen.

types of testing methods

Es gibt noch einen dritten Ansatz beim Testen – das Grey-Box-Testen. Dabei handelt es sich um eine Kombination der beiden anderen Methoden – sowohl Black-Box-Tests als auch White-Box-Tests -, bei denen der QS-Tester über einige Kenntnisse des internen Systems verfügt. Sie wissen zum Beispiel, dass Wasser auf das Gemälde tropft, aber Sie wissen nicht, wie das Rohrleitungssystem konfiguriert ist.

Nachdem wir nun die verschiedenen Testmethoden kennen, wollen wir uns nun ausführlich mit dem White-Box-Testing befassen. Warum ist es so beliebt, und was beinhaltet es?

Vorteile und Nachteile von White-Box-Testverfahren

White-Box-Tests bringen eine Reihe von Vor- und Nachteilen mit sich.

Vorbeugende Maßnahmen

Erfolgreiche Vorbeugung hängt davon ab, wo Sie sich als Tester engagieren. Wenn Sie in der Lage sind, neue Systeme, Anwendungen, Netzwerke oder Infrastrukturen während der Entwicklungs- und der ersten Einführungsphase oder sogar direkt nach der Einführung zu testen, haben Sie immer noch die Möglichkeit, Ihr Team vor potenziellen Risiken zu warnen.

Keine Einschränkungen bei der Fehlererkennung

Technisches Fachwissen spielt beim White-Box-Testing eine große Rolle, aber selbst wenn Sie über keine technischen Kenntnisse verfügen, wird Sie das nicht davon abhalten, so viele Fehler wie möglich zu finden.

Sie können auch Fehler im verborgenen Code aufspüren, was bei Blackbox-Tests eine Herausforderung darstellt. Und je früher man sie im Lebenszyklus der Softwareentwicklung findet, desto schneller können die Softwareentwickler verhindern, dass diese Fehler in die Produktion einfließen.

Umfassende Methode

Jeder, der White-Box-Tests verwendet, weiß, wie umfangreich sie sind. Sie können das Gesamtbild von Anfang an sehen und die anfälligsten Teile auf Fehler überprüfen. Sie brauchen nicht zu warten, bis die Designer mit der grafischen Benutzeroberfläche fertig sind. Sie können den Entwicklern helfen, die Anzahl der Codezeilen in ihrer Anwendung oder Software im Allgemeinen zu reduzieren, und diese Art von Tests lässt sich leicht automatisieren.

Auch wenn die Nachteile von White-Box-Tests nicht allzu kritisch sind, können sie dennoch dazu führen, dass Sie Ihre Meinung zugunsten einer anderen Methode wie Black-Box-Tests oder Grey-Box-Tests ändern.


Hier sind einige Nachteile, die Sie ebenfalls berücksichtigen sollten.

Zeitaufwendige Methode

White-Box-Tests sind oft eine zeitaufwändige Methode. Die Anzahl der möglichen Szenarien, der Codezeilen, aller Pfade usw. kann den Testprozess um Tage, Wochen oder sogar Monate verlängern.

Man muss gründlich sein und jeden Teil einer Anwendung oder einer internen Struktur überprüfen, dies mit den Entwicklern verifizieren und das Produkt aus verschiedenen Perspektiven betrachten, bis alle davon überzeugt sind, dass der Testprozess korrekt abgeschlossen wurde.

Fehlende kleinere Bugs

Im April 2020 fand der indische Sicherheitsforscher Bhavuk Jain eine kritische Schwachstelle in der Apple-Software, und zwar bei „Sign in with Apple“. Dieser übersehene Fehler könnte es jemandem ermöglichen, mit nur einer E-Mail auf ein Konto oder das System zuzugreifen. Diese Schwachstelle war die ganze Zeit an der Oberfläche, aber sie war kritisch genug. Deshalb musste Apple dem Mann, der diese Schwachstelle entdeckt hatte, 100.000 Dollar zahlen.

Natürlich könnte das Unternehmen dieses Geld sparen, wenn ein QS-Tester kleinere Dinge vor der Markteinführung überprüfen würde. Dies ist ein hervorragendes Beispiel dafür, was passieren kann, wenn wir „einfache“ Fehler nicht im Auge behalten. Und dies ist einer der Nachteile von White-Box-Tests. Diese Methode kann das Auftreten kleinerer Fehler begünstigen, da sie hauptsächlich auf menschlicher Basis durchgeführt wird. Die Tester konzentrieren sich darauf, wie das Produkt im Allgemeinen funktioniert, und achten nicht auf die kleinsten Details.

Hohe Kosten

White-Box-Tests sind eine teure und komplexe Methode. Die hohen Kosten sind durch die hohe Bezahlung der QS-Tester gerechtfertigt, die mehrere Programmiersprachen beherrschen und über die nötige Erfahrung für diese Art von Tests verfügen. Hinzu kommen noch die Kosten für die Zeit, die die Tester dafür aufwenden müssen.

Wenn die Nachteile von White Box Testing Sie nicht abschrecken und Sie immer noch bereit sind, mit ihm zu gehen, lassen Sie uns sehen, welche Arten von dieser Methode gibt es.

Bevor wir uns mit White-Box-Tests befassen, sollten Sie wissen, dass dies nur eine von vielen Methoden zur Validierung Ihrer Software ist. Wir haben 20 Jahre QS-Erfahrung in einer Teststrategievorlage zusammengefasst, die sowohl das Wissen als auch die Formatierung enthält, um Ihre Testverfahren zu gestalten.

image
3zbdcc601729bfa1d4e33335cfb5176b61c737a68bafd4b4a38a8ef653a7771392
testing strategy template

Holen Sie sich eine Vorlage für eine Teststrategie, die es uns ermöglicht, Software 2 Mal so schnell zu veröffentlichen

Arten von White-Box-Tests

types of white box testing

Diese drei Arten von White-Box-Tests können angewendet werden: Unit-, Integrations- und Systemtests. Unit-Tests sind die erste und wichtigste Phase, die von den Entwicklern durchgeführt wird. Obwohl auch andere Arten wichtig sind, kommen sie immer erst danach.

Unit-Tests

Unit-Tests stellen sicher, dass der Quellcode die Qualitätskriterien erfüllt, bevor er veröffentlicht wird, und schaffen so eine zuverlässige Softwareentwicklungsumgebung für alle Entwickler. Das Ergebnis sind mehr Effizienz und Optimierung, besserer Code und weniger verschwendete Zeit und Geld.

Integrationstests

Diese Art von Test wird in der Regel nach den Einheitstests durchgeführt. Integrationstests dienen dazu, Fehler zu finden, die bei der Verbindung der verschiedenen Schnittstellen miteinander auftreten können.

Um diesen Testtyp auszuführen, sollten Sie die Quellcode-Komponenten der Anwendung als Ganzes testen.

Regressionstests

Bei Regressionstests muss überprüft werden, ob die jüngsten Änderungen im Quellcode der Anwendung keine Nebenwirkungen auf die während der Entwicklungsphase geänderten Funktionen haben. Damit soll sichergestellt werden, dass der alte Code mit den neu implementierten Funktionen und den behobenen Fehlern noch einwandfrei funktioniert.

Zu diesem Zweck sollten Sie den bereits abgeschlossenen Test erneut durchführen und vergleichen, wie die Anwendung funktioniert.

Mutationstests

Der Mutationstests verdienen besondere Aufmerksamkeit. Dieser Ansatz wird in der Regel als letzter Schritt betrachtet, um festzustellen, ob der gesamte Test erfolgreich durchgeführt wurde.

Tester ändern bestimmte Komponenten des Quellcodes einer Anwendung, um zu überprüfen, ob alle Bedingungen erfüllt sind, und Softwaretests können alle durchgeführten Änderungen erkennen. Diese in der Software implementierten Änderungen sollen Fehler im Programm hervorrufen.

White-Box-Prüftechniken

Der wichtigste Teil des weißen Tests ist die Testabdeckung. Mit dieser Technik wird ermittelt, ob Ihre Testfälle den Quellcode der Anwendung abdecken und welches Codevolumen bei der Ausführung dieser Testfälle ausgeübt wird.


Das Gute an den Abdeckungstechniken ist, dass man einige von ihnen mit Formeln bewerten kann, die auch als QS-Metriken bezeichnet werden. Hier sind Beispiele für solche Abdeckungen und Formeln:

Erfassungsbereich

Das Hauptziel dieser Technik ist es, sicherzustellen, dass alle Zeilen des Codes getestet wurden, und eventuelle Fehler oder versteckte Fehler im gesamten Code zu entdecken.

Anweisungsabdeckung = (Anzahl der ausgeführten Anweisungen / Gesamtzahl der ausführbaren Anweisungen) x 100 %

Abdeckung der Branche

Mit dieser Technik wird die Genauigkeit des möglichen Pfads oder Entscheidungspunkts einer Softwareanwendung untersucht.

Verzweigungsabdeckung = (Anzahl der getesteten Entscheidungsergebnisse / Gesamtzahl der Entscheidungsergebnisse) x 100 %  

Funktion Abdeckung

Zusammen mit der Anweisungsabdeckung hilft sie, die Anzahl der implementierten Funktionen zu bestimmen.

Funktionsabdeckung = (Anzahl der ausgeführten Funktionen / Gesamtzahl der Funktionen) * 100

Es gibt noch eine andere Art der Abdeckung – die Pfadabdeckung – die die Aufmerksamkeit der QS-Tester verdient, weil sie komplizierte Builds von Softwareanwendungen überprüft, auch wenn wir keine Formel dafür bereitstellen.

Pfadabdeckung

Die Pfadabdeckung prüft alle Pfade, unabhängig davon, ob sie gekreuzt werden oder nicht, und es ist wichtiger, die Abdeckung von Pfaden als von Zweigen zu prüfen.

Für White-Box-Tests werden verschiedene Testtechniken verwendet, um neben der Funktions- oder Verzweigungsabdeckung auch die Abdeckung des Softwaresystems zu überprüfen: Bedingungsabdeckung (auch Prädikatsabdeckung genannt), Basispfadtests, Flussdiagrammnotation, Schleifentests, Mehrfachbedingungsabdeckung, Abdeckung von endlichen Zustandsmaschinen, Kontrollflusstests, Datenflusstests und viele andere, Strukturtests, Funktionstests und viele andere.

Wie kann ich mich als QS-Tester auf White Box-Tests vorbereiten?

Lernen Sie zuallererst die Sprache Ihres Quellcodes. Das White-Box-Testing-Center basiert auf dem Quellcode der Anwendung, und das Verständnis dieses Codes ist entscheidend für effiziente Ergebnisse der durchgeführten Tests. Das bedeutet, dass Sie mindestens eine Software-Programmiersprache beherrschen müssen (je mehr, desto besser), vor allem die Sprache, in der dieser Code geschrieben wurde.

Dies kann Ihnen auch dabei helfen, sich auf Sicherheitstests vorzubereiten und zu verhindern, dass der Code bösartige Codezeilen aus externen Quellen einschleust oder andere Sicherheitsbedrohungen aufdeckt.

Zweitens müssen Sie den korrekten Fluss des Quellcodes überprüfen und sicherstellen, dass alles gut strukturiert ist. Wie macht man das? Auch hier gilt: Lernen Sie Programmiersprachen. Es könnte Ihnen helfen, zusätzlichen Code zu schreiben, um den Hauptcode zu testen. So verbringen Sie weniger Zeit mit dem manuellen Testen.

Lassen Sie uns also sehen, wie Sie diese Tests mit dem Online-Testmanagement-Tool aqua durchführen können.

White-Box-Tests mit aqua TMS durchführen

Das aqua kann ein perfektes agiles Testmanagement-Tool sein und auch bei der Organisation von White-Box-Tests helfen, da es im Grunde eine „One-Box-Testing-Lösung“ ist.

  • Schreiben Sie für jeden Schritt Testfälle, die sich mit möglichen Fehlfunktionen, Schwachstellen, Bedrohungen usw. befassen. Sie können dies durch die Abdeckung der Anforderungen abbilden. Jede Anforderung hat einen abhängigen Testfall, um sicherzustellen, dass jede Implementierung getestet und überprüft wird.
  • Diese Abdeckung kann durch Abhängigkeiten zwischen zwei Elementen dargestellt werden, und darüber hinaus gibt es einen Standardbericht, der genau diese Abdeckung zeigt.

aqua cloud report

  • Gruppieren Sie den Test in Testszenarien, um die Tests besser planen zu können. Sie können diese Szenarien auch für Regressionstests verwenden.
  • Bestimmen Sie, welche potenziellen Codezeilen und Systemfunktionen getestet werden sollen. Schreiben Sie die Ergebnisse in das Flussdiagramm.
  • Führen Sie die Tests entsprechend Ihren Plänen durch. Testen Sie erneut, bis alle Softwareanwendungen abgedeckt sind, um sicherzustellen, dass keine Probleme mehr bestehen.

Schlussfolgerung

White-Box-Tests sind nach wie vor einer der besten Ansätze, um die Funktionalität des Systems zu überprüfen und die meisten Fehler zu identifizieren, obwohl es meist unmöglich ist, jedes einzelne Detail des Codes nur mit menschlicher Beteiligung zu testen und eine 100%ige Genauigkeit zu erzielen.

Künstliche Intelligenz ist eine hervorragende Möglichkeit, die Testabdeckung mit weniger Aufwand zu erhöhen. Sie können damit auch Grenzfälle berücksichtigen, die sonst nicht getestet werden könnten. Der KI-Copilot von aqua kann Ihre Testsuite analysieren, um ganze Testfälle zu erstellen oder Ihre Entwürfe zu vervollständigen.

Machen Sie Ihre White-Box-Tests umfassender als je zuvor

Testen Sie aqua
Auf dieser Seite:
Sehen Sie mehr
Beschleunigen Sie Ihre Releases x2 mit aqua
Gratis starten
step
FAQ
Was ist White-Box-Testing?

White-Box-Tests beziehen sich auf Tests, bei denen die QS-Spezialisten wissen, wie die Software entwickelt wurde.

Wann werden White-Box-Tests durchgeführt?

White-Box-Tests sind ein gültiger Ansatz für alle Arten von Tests vor der Freigabe. Technisch gesehen verwenden Entwickler White-Box-Tests, wenn sie Unit-Tests erstellen und ausführen, die noch vor der Übergabe des Codes an die Qualitätssicherung ausgeführt werden.

Wer nutzt White Box Tests?

White-Box-Tests werden meist von Qualitätssicherungsspezialisten durchgeführt. Technisch gesehen verwenden Entwickler auch White-Box-Tests, wenn sie Unit-Tests erstellen und ausführen, die noch vor der Übergabe des Codes an die Qualitätssicherung durchgeführt werden.

closed icon