Was ist WHITE Box Testing? Techniken, Beispiel & Typen

Inhaltsverzeichnis:

Anonim

White-Box-Test

White Box Testing ist eine Softwaretesttechnik, bei der die interne Struktur, das Design und die Codierung von Software getestet werden, um den Fluss der Eingabe / Ausgabe zu überprüfen und Design, Benutzerfreundlichkeit und Sicherheit zu verbessern. Beim White-Box-Test ist Code für Tester sichtbar, daher wird er auch als Clear-Box-Test, Open-Box-Test, Transparent-Box-Test, Code-basierter Test und Glass-Box-Test bezeichnet.

Es ist einer von zwei Teilen des Box Testing-Ansatzes für Softwaretests. Das Gegenstück, das Blackbox-Testen, umfasst das Testen aus einer externen oder Endbenutzersicht. Auf der anderen Seite basiert das White-Box-Testen in der Softwareentwicklung auf dem Innenleben einer Anwendung und dreht sich um interne Tests.

Der Begriff "WhiteBox" wurde wegen des durchsichtigen Box-Konzepts verwendet. Die Clear Box oder der WhiteBox-Name symbolisieren die Fähigkeit, durch die äußere Hülle (oder "Box") der Software in ihre inneren Funktionen zu sehen. Ebenso symbolisiert die "Black Box" in "Black Box Testing", dass das Innenleben der Software nicht angezeigt werden kann, sodass nur die Endbenutzererfahrung getestet werden kann.

In diesem White-Box-Test-Tutorial lernen Sie:

  • Was ist White-Box-Test?
  • Was überprüfen Sie in White Box Testing?
  • Wie führen Sie White-Box-Tests durch?
  • WhiteBox-Testbeispiel
  • White-Box-Testtechniken
  • Arten von White-Box-Tests
  • White-Box-Testwerkzeuge
  • Vorteile von White-Box-Tests
  • Nachteile des WhiteBox-Testens

Was überprüfen Sie in White Box Testing?

Beim White-Box-Testen wird der Software-Code auf Folgendes getestet:

  • Interne Sicherheitslücken
  • Unterbrochene oder schlecht strukturierte Pfade in den Codierungsprozessen
  • Der Fluss bestimmter Eingaben durch den Code
  • Erwartete Ausgabe
  • Die Funktionalität von Bedingungsschleifen
  • Testen jeder Anweisung, jedes Objekts und jeder Funktion auf individueller Basis

Die Tests können auf System-, Integrations- und Einheitenebene der Softwareentwicklung durchgeführt werden. Eines der grundlegenden Ziele des Whitebox-Tests besteht darin, einen Arbeitsablauf für eine Anwendung zu überprüfen. Dabei werden eine Reihe vordefinierter Eingaben mit erwarteten oder gewünschten Ausgaben verglichen, sodass Sie auf einen Fehler gestoßen sind, wenn eine bestimmte Eingabe nicht zur erwarteten Ausgabe führt.

Klicken Sie hier, wenn das Video nicht zugänglich ist

Wie führen Sie White-Box-Tests durch?

Um Ihnen eine vereinfachte Erklärung der White-Box-Tests zu geben, haben wir sie in zwei grundlegende Schritte unterteilt . Dies tun Tester, wenn sie eine Anwendung mit der White-Box-Testtechnik testen:

SCHRITT 1) VERSTEHEN SIE DEN QUELLENCODE

Das erste, was ein Tester häufig tut, ist, den Quellcode der Anwendung zu lernen und zu verstehen. Da beim White-Box-Testen das Innenleben einer Anwendung getestet wird, muss der Tester über gute Kenntnisse der Programmiersprachen verfügen, die in den von ihm getesteten Anwendungen verwendet werden. Außerdem muss die Testperson die sicheren Codierungspraktiken genau kennen. Sicherheit ist oft eines der Hauptziele beim Testen von Software. Der Tester sollte in der Lage sein, Sicherheitsprobleme zu finden und Angriffe von Hackern und naiven Benutzern zu verhindern, die wissentlich oder unwissentlich bösartigen Code in die Anwendung einfügen.

Schritt 2) TESTFÄLLE ERSTELLEN UND AUSFÜHREN

Der zweite grundlegende Schritt zum White-Box-Testen besteht darin, den Quellcode der Anwendung auf ordnungsgemäßen Ablauf und Struktur zu testen. Eine Möglichkeit besteht darin, mehr Code zu schreiben, um den Quellcode der Anwendung zu testen. Der Tester entwickelt kleine Tests für jeden Prozess oder jede Reihe von Prozessen in der Anwendung. Diese Methode setzt voraus, dass der Tester den Code genau kennt und wird häufig vom Entwickler durchgeführt. Andere Methoden umfassen manuelle Tests, Test- und Fehlertests sowie die Verwendung von Testwerkzeugen, wie wir weiter unten in diesem Artikel erläutern werden.

WhiteBox-Testbeispiel

Betrachten Sie den folgenden Code

Printme (int a, int b) {------------ Printme ist eine Funktionint Ergebnis = a + b;If (Ergebnis> 0)Drucken ("Positiv", Ergebnis)SonstDrucken ("Negativ", Ergebnis)} ----------- Ende des Quellcodes 

Das Ziel von WhiteBox-Tests in der Softwareentwicklung besteht darin, alle Entscheidungszweige, Schleifen und Anweisungen im Code zu überprüfen.

Um die Aussagen im obigen White-Box-Testbeispiel auszuführen, wären WhiteBox-Testfälle

  • A = 1, B = 1
  • A = -1, B = -3

White-Box-Testtechniken

Eine wichtige White-Box-Testtechnik ist die Code-Coverage-Analyse. Die Code-Coverage-Analyse beseitigt Lücken in einer Testfall-Suite. Es identifiziert Bereiche eines Programms, die nicht von einer Reihe von Testfällen ausgeführt werden. Sobald Lücken identifiziert wurden, erstellen Sie Testfälle, um nicht getestete Teile des Codes zu überprüfen und so die Qualität des Softwareprodukts zu verbessern

Für die Analyse der Codeabdeckung stehen automatisierte Tools zur Verfügung. Im Folgenden finden Sie einige Techniken zur Analyse der Abdeckung, die ein Box-Tester verwenden kann:

Anweisungsabdeckung : - Diese Technik erfordert, dass jede mögliche Anweisung im Code während des Testprozesses des Software-Engineerings mindestens einmal getestet wird.

Verzweigungsabdeckung - Diese Technik überprüft jeden möglichen Pfad (if-else und andere bedingte Schleifen) einer Softwareanwendung.

Abgesehen von oben gibt es zahlreiche Abdeckungsarten wie Bedingungsabdeckung, Mehrfachzustandsabdeckung, Pfadabdeckung, Funktionsabdeckung usw. Jede Technik hat ihre eigenen Vorzüge und Versuche, alle Teile des Softwarecodes zu testen (abzudecken). Bei Verwendung der Kontoauszugs- und Zweigstellenabdeckung erreichen Sie im Allgemeinen eine Codeabdeckung von 80-90%, was ausreichend ist. Im Folgenden sind wichtige WhiteBox-Testtechniken aufgeführt:

  • Statement Coverage
  • Entscheidungsschutz
  • Zweigstellenabdeckung
  • Zustandsdeckung
  • Abdeckung mehrerer Zustände
  • Finite State Machine Coverage
  • Pfadabdeckung
  • Kontrollflussprüfung
  • Datenflusstest

Weitere Informationen finden Sie in diesem Artikel unter https://www.guru99.com/code-coverage.html

Arten von White-Box-Tests

White-Box-Tests umfassen verschiedene Testtypen, mit denen die Benutzerfreundlichkeit einer Anwendung, eines Codeblocks oder eines bestimmten Softwarepakets bewertet wird. Es sind unten aufgeführt -

  • Unit-Tests: Dies ist häufig die erste Art von Tests, die für eine Anwendung durchgeführt werden. Unit-Tests werden für jede Einheit oder jeden Codeblock während der Entwicklung durchgeführt. Unit-Tests werden im Wesentlichen vom Programmierer durchgeführt. Als Softwareentwickler entwickeln Sie einige Codezeilen, eine einzelne Funktion oder ein Objekt und testen es, um sicherzustellen, dass es funktioniert, bevor Sie mit Unit Testing fortfahren, um die meisten Fehler zu Beginn des Softwareentwicklungszyklus zu identifizieren. In dieser Phase identifizierte Fehler sind billiger und einfach zu beheben.

  • Testen auf Speicherlecks : Speicherlecks sind die Hauptursachen für langsamer laufende Anwendungen. Ein QS-Spezialist, der Erfahrung mit der Erkennung von Speicherlecks hat, ist in Fällen, in denen Sie eine langsam laufende Softwareanwendung haben, unerlässlich.

Abgesehen von oben sind einige Testtypen sowohl Teil des Black-Box- als auch des White-Box-Tests. Sie sind wie folgt aufgeführt

  • White-Box-Penetrationstest: Bei diesem Test verfügt der Tester / Entwickler über vollständige Informationen zum Quellcode der Anwendung, detaillierte Netzwerkinformationen, betroffene IP-Adressen und alle Serverinformationen, auf denen die Anwendung ausgeführt wird. Ziel ist es, den Code aus verschiedenen Blickwinkeln anzugreifen, um Sicherheitsbedrohungen aufzudecken
  • White-Box-Mutationstest : Mutationstests werden häufig verwendet, um die besten Codierungstechniken für die Erweiterung einer Softwarelösung zu ermitteln.

White-Box-Testwerkzeuge

Unten finden Sie eine Liste der besten White-Box-Testwerkzeuge.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Vorteile von White-Box-Tests

  • Codeoptimierung durch Auffinden versteckter Fehler.
  • White-Box-Testfälle können einfach automatisiert werden.
  • Das Testen ist gründlicher, da normalerweise alle Codepfade abgedeckt werden.
  • Das Testen kann früh in SDLC beginnen, auch wenn die grafische Benutzeroberfläche nicht verfügbar ist.

Nachteile des WhiteBox-Testens

  • White-Box-Tests können sehr komplex und teuer sein.
  • Entwickler, die normalerweise White-Box-Testfälle ausführen, verabscheuen dies. Das White-Box-Testen durch Entwickler ist nicht detailliert und kann zu Produktionsfehlern führen.
  • White-Box-Tests erfordern professionelle Ressourcen mit einem detaillierten Verständnis der Programmierung und Implementierung.
  • White-Box-Tests sind zeitaufwändig. Größere Programmieranwendungen benötigen Zeit, um vollständig zu testen.

Schlussbemerkungen:

  • White-Box-Tests können sehr komplex sein. Die Komplexität hat viel mit der getesteten Anwendung zu tun. Eine kleine Anwendung, die einen einzelnen einfachen Vorgang ausführt, kann in wenigen Minuten als White-Box-Test ausgeführt werden, während größere Programmieranwendungen Tage, Wochen und sogar länger benötigen, um vollständig getestet zu werden.
  • White-Box-Tests beim Testen von Software sollten für eine Softwareanwendung durchgeführt werden, die nach dem Schreiben und nach jeder Änderung erneut entwickelt wird