Was ist White-Box-Test? Methoden und Beispiele • BUOM

25. August 2021

White-Box-Tests – auch bekannt als Open-Box-, Glass-Box-, Clear-Box- oder Clear-Box-Tests – sind eine Technik, mit der Entwickler Code und die interne Struktur von Software bewerten. Wenn Sie in der Softwarebranche arbeiten oder in die Softwarebranche einsteigen möchten, kann es hilfreich sein, den Prozess zur Verbesserung Ihrer Fähigkeiten und Kenntnisse zu verstehen. In diesem Artikel besprechen wir, was White-Box-Tests sind, wofür sie verwendet werden und wie sie implementiert werden. Außerdem besprechen wir ihre Techniken und Vorteile.

Was sind White-Box-Tests in der Softwareentwicklung?

White-Box-Tests sind eine Software-Bewertungstechnik, mit der die interne Struktur, das Design, die Codierung und die interne Funktionsweise von Software untersucht werden. Entwickler verwenden diese Testmethode, um den Fluss von Eingabe- und Ausgabedaten durch eine Anwendung zu überprüfen und so die Benutzerfreundlichkeit und das Design zu verbessern sowie die Sicherheit zu erhöhen. Das Konzept wird „White Box“ genannt, weil es symbolisch transparent ist, da der Code während der Überprüfung für den Tester sichtbar ist. Wenn im Vergleich dazu der interne Code nicht sichtbar ist, spricht man von Black-Box-Tests.

Durch White-Box-Tests wird Software auf Folgendes analysiert:

  • Schwachstellen der inneren Sicherheit

  • Redundante Codepfade in Codierungsprozessen

  • Wie der Code bestimmte Eingaben verarbeitet

  • erwartetes Ergebnis

  • Funktionieren Bedingungsschleifen korrekt?

  • Individuelle Prüfung jeder Funktion, jedes Operators und jedes Objekts

Tests können in verschiedenen Phasen der Softwareentwicklung durchgeführt werden, insbesondere auf System-, Integrations- und Modulebene. Ziel ist es, zu überprüfen, ob die Software die erwarteten Ergebnisse liefert und, falls nicht, das Problem zu identifizieren.

So führen Sie White-Box-Tests durch

Einfach ausgedrückt besteht das White-Box-Testen aus zwei Schritten:

1. Verstehen Sie den Quellcode

Der Tester muss zunächst die Programmiersprache der Software kennen und mit sicheren Codierungstechniken vertraut sein. Sicherheit ist der Hauptgrund für das Testen von Software. Ziel ist es daher, Sicherheitsprobleme zu finden, um zu verhindern, dass Hacker unbeabsichtigt Schadcode in die Anwendung einschleusen.

2. Testen Sie die Software

Schritt zwei umfasst die Überprüfung des Software-Quellcodes auf korrekten Ablauf und Struktur. Eine Möglichkeit, Software zu testen, besteht darin, zusätzlichen Code zu entwerfen und zu schreiben, der dann den Quellcode auswerten kann. Ein Tester, der den Code gut kennt, entwickelt normalerweise kleine Tests für jeden Prozess der Anwendung. Manuelles Testen, eine weitere Testmethode, verwendet Testtools, um die Aufgabe zu erledigen.

White-Box-Testmethoden

Es gibt viele Möglichkeiten, Software mithilfe von White-Box-Tests zu analysieren. Die meisten Tester verwenden einen Prozess namens Code-Coverage-Analyse, um Lücken beim Code-Testen zu schließen. Hierzu können Sie verschiedene Methoden nutzen, darunter:

  • Statement Coverage: Diese Technik stellt sicher, dass jede Zeile im Code mindestens einmal überprüft wird, um das Auffinden fehlerhafter Codes zu erleichtern.

  • Branch Coverage: Bei dieser Methode wird jeder mögliche Pfad oder Entscheidungspunkt einer Softwareanwendung auf Genauigkeit überprüft.

  • Konditionsabdeckung: Alle Einzelkonditionen werden geprüft.

  • Mehrfache Zustandsabdeckung: Alle denkbaren Kombinationen aller denkbaren Zustandsergebnisse werden mindestens einmal getestet.

  • Basispfadtest: Kontrolldiagramme werden entweder aus Flussdiagrammen oder Code erstellt. Anschließend wird die zyklomatische Komplexität berechnet, um die Anzahl der unabhängigen Pfade zu bestimmen, sodass für jeden Pfad eine Mindestanzahl an Testfällen entwickelt werden kann.

  • Flussdiagramm-Notation: Diese Methode verwendet einen gerichteten Graphen bestehend aus Knoten und Kanten, wobei jeder Knoten einen Entscheidungspunkt oder eine Folge von Anweisungen darstellt.

  • Zyklomatische Komplexität: Sie ist ein Maß für die logische und zyklomatische Komplexität von Software. Es wird verwendet, um die Anzahl der unabhängigen Pfade zu bestimmen.

  • Schleifentests: Schleifen werden häufig bei White-Box-Tests verwendet und sind die Grundlage vieler Algorithmen. Probleme werden oft am Anfang oder am Ende eines Zyklus entdeckt. Schleifentests können in einfache Schleifen, verschachtelte Schleifen und verkettete Schleifen unterteilt werden.

Während viele dieser Methoden von Testern verwendet werden, überprüfen Anweisungs- und Zweigabdeckungsmethoden mindestens 80–90 % des Codes auf Fehler, was normalerweise ausreicht.

Arten von White-Box-Tests

Um die Benutzerfreundlichkeit einer Anwendung oder eines bestimmten Softwarepakets zu bewerten, werden verschiedene Arten von Tests verwendet:

Unit-Tests

Dies wird in der Regel vom Programmierer als erster Test für die Anwendung durchgeführt. Bei dieser Methode wird jeder Codeblock während seiner Entwicklung getestet. Der Entwickler überprüft mehrere Codezeilen, eine Funktion oder ein Objekt, um sicherzustellen, dass es korrekt funktioniert. Unit-Tests sind nützlich, da sie die meisten Fehler schon früh im Entwicklungszyklus erkennen, wodurch sie kostengünstiger und einfacher zu beheben sind.

Qualitätssicherungstest

Speicherlecks führen oft dazu, dass eine Softwareanwendung langsam läuft. In diesem Fall wird ein Qualitätssicherungstest durchgeführt, um den Code zu überprüfen.

Penetrationstests

Bei diesem Test wird der Code aus allen Blickwinkeln angegriffen, um Sicherheitsbedrohungen zu identifizieren. Der Entwickler oder Tester muss wissen, wo die Anwendung ausgeführt wird, und den Anwendungscode, Netzwerk- und Serverdetails sowie alle verbundenen IP-Adressen kompilieren.

Mutationstests

Dieser Test wird häufig verwendet, um die besten Codierungstechniken zur Erweiterung einer Softwareanwendung zu finden.

Beispiel für einen White-Box-Test

Bedenken Sie, dass der Zweck von White-Box-Tests darin besteht, alle Schleifen und Entscheidungszweige im Code zu validieren. Schauen Sie sich dieses einfache Beispiel an:

void Printme (int c, int d) // Printme ist eine Funktion

{

int i = c + d;

Wenn (I > 0)

Print(“Positiv”,I) ;

Noch

Drucken („Negativ“, I);

} // Ende des Quellcodes

Um die Verwendung der Operatoren im obigen Code zu üben, können Sie die folgenden White-Box-Testfälle verwenden:

  • S = 1, D = 5

  • S = -5, D = 3

Vorteile von White-Box-Tests

Abhängig von der Größe der zu bewertenden Softwareanwendung ist das Testen oft ein komplexes Unterfangen. Um die Komplexität zu minimieren, werden White-Box-Tests in jeder Phase der Softwareentwicklung oder -änderung durchgeführt.

Zu den Vorteilen von White-Box-Softwaretests gehören:

  • Code optimieren, um Fehler zu finden

  • Der gesamte Code wird getestet, um eine gründliche Überprüfung sicherzustellen

  • Es ist leicht zu automatisieren

  • Das Testen kann früh im Softwareentwicklungslebenszyklus beginnen, bevor die grafische Benutzeroberfläche verfügbar ist.

Die White-Box-Testmethode trägt dazu bei, ein qualitativ hochwertiges Softwareprodukt zu erstellen, indem sie eine möglichst unvoreingenommene Meinung zum Code liefert.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert