Softwaretests - Methoden

Es gibt verschiedene Methoden, die zum Testen von Software verwendet werden können. In diesem Kapitel werden die verfügbaren Methoden kurz beschrieben.

Black-Box-Tests

Die Testtechnik ohne Kenntnis des Innenlebens der Anwendung wird als Black-Box-Test bezeichnet. Der Tester kennt die Systemarchitektur nicht und hat keinen Zugriff auf den Quellcode. Während eines Black-Box-Tests interagiert ein Tester normalerweise mit der Benutzeroberfläche des Systems, indem er Eingaben bereitstellt und Ausgaben untersucht, ohne zu wissen, wie und wo die Eingaben bearbeitet werden.

In der folgenden Tabelle sind die Vor- und Nachteile von Black-Box-Tests aufgeführt.

Vorteile Nachteile
Gut geeignet und effizient für große Codesegmente. Begrenzte Abdeckung, da nur eine ausgewählte Anzahl von Testszenarien tatsächlich durchgeführt wird.
Codezugriff ist nicht erforderlich. Ineffizientes Testen aufgrund der Tatsache, dass der Tester nur begrenzte Kenntnisse über eine Anwendung hat.
Trennt die Benutzerperspektive durch sichtbar definierte Rollen klar von der Entwicklerperspektive. Blinde Abdeckung, da der Tester nicht auf bestimmte Codesegmente oder fehleranfällige Bereiche abzielen kann.
Eine große Anzahl von mäßig erfahrenen Testern kann die Anwendung ohne Kenntnisse der Implementierung, Programmiersprache oder Betriebssysteme testen. Die Testfälle sind schwer zu entwerfen.

White-Box-Tests

White-Box-Tests sind die detaillierte Untersuchung der internen Logik und Struktur des Codes. White-Box-Tests werden auch genanntglass testing oder open-box testing. Um durchzuführenwhite-box Beim Testen einer Anwendung muss ein Tester die internen Abläufe des Codes kennen.

Der Tester muss einen Blick in den Quellcode werfen und herausfinden, welche Einheit / welcher Teil des Codes sich unangemessen verhält.

In der folgenden Tabelle sind die Vor- und Nachteile von White-Box-Tests aufgeführt.

Vorteile Nachteile
Da der Tester den Quellcode kennt, ist es sehr einfach herauszufinden, welcher Datentyp beim effektiven Testen der Anwendung hilfreich sein kann. Aufgrund der Tatsache, dass ein erfahrener Tester für die Durchführung von White-Box-Tests benötigt wird, erhöhen sich die Kosten.
Es hilft bei der Optimierung des Codes. Manchmal ist es unmöglich, in jede Ecke zu schauen, um versteckte Fehler herauszufinden, die Probleme verursachen können, da viele Pfade ungetestet bleiben.
Zusätzliche Codezeilen können entfernt werden, was zu versteckten Fehlern führen kann. Es ist schwierig, White-Box-Tests aufrechtzuerhalten, da spezielle Tools wie Codeanalysatoren und Debugging-Tools erforderlich sind.
Aufgrund des Wissens des Testers über den Code wird beim Schreiben des Testszenarios eine maximale Abdeckung erreicht.

Gray-Box-Test

Gray-Box-Tests sind eine Technik zum Testen der Anwendung mit begrenzten Kenntnissen der internen Funktionsweise einer Anwendung. Je mehr Sie beim Testen von Software wissen, desto besser ist beim Testen einer Anwendung das Gewicht.

Das Beherrschen der Domäne eines Systems gibt dem Tester immer einen Vorteil gegenüber jemandem mit begrenzten Domänenkenntnissen. Im Gegensatz zu Black-Box-Tests, bei denen der Tester nur die Benutzeroberfläche der Anwendung testet. Beim Gray-Box-Test hat der Tester Zugriff auf Entwurfsdokumente und die Datenbank. Mit diesem Wissen kann ein Tester bessere Testdaten und Testszenarien vorbereiten, während er einen Testplan erstellt.

Vorteile Nachteile
Bietet nach Möglichkeit kombinierte Vorteile von Black-Box- und White-Box-Tests. Da der Zugriff auf den Quellcode nicht verfügbar ist, ist die Möglichkeit, den Code und die Testabdeckung zu überprüfen, eingeschränkt.
Gray-Box-Tester verlassen sich nicht auf den Quellcode. Stattdessen stützen sie sich auf die Definition der Schnittstelle und die Funktionsspezifikationen. Die Tests können redundant sein, wenn der Software-Designer bereits einen Testfall ausgeführt hat.
Basierend auf den begrenzten verfügbaren Informationen kann ein Gray-Box-Tester hervorragende Testszenarien entwerfen, insbesondere in Bezug auf Kommunikationsprotokolle und Datentypverarbeitung. Das Testen jedes möglichen Eingabestreams ist unrealistisch, da dies unangemessen viel Zeit in Anspruch nehmen würde. Daher bleiben viele Programmpfade ungetestet.
Der Test wird aus Sicht des Benutzers und nicht des Designers durchgeführt.

Ein Vergleich der Testmethoden

In der folgenden Tabelle sind die Punkte aufgeführt, die zwischen Black-Box-Tests, Gray-Box-Tests und White-Box-Tests unterscheiden.

Black-Box-Tests Gray-Box-Test White-Box-Tests
Die internen Abläufe einer Anwendung müssen nicht bekannt sein. Der Tester hat nur begrenzte Kenntnisse über die internen Abläufe der Anwendung. Der Tester verfügt über umfassende Kenntnisse der internen Funktionsweise der Anwendung.
Wird auch als Closed-Box-Test, datengesteuertes Testen oder Funktionstest bezeichnet. Wird auch als durchscheinendes Testen bezeichnet, da der Tester nur begrenzte Kenntnisse über die Innenseiten der Anwendung hat. Wird auch als Clear-Box-Test, Strukturtest oder Code-basierter Test bezeichnet.
Wird von Endbenutzern sowie von Testern und Entwicklern durchgeführt. Wird von Endbenutzern sowie von Testern und Entwicklern durchgeführt. Normalerweise von Testern und Entwicklern durchgeführt.
Das Testen basiert auf externen Erwartungen - Das interne Verhalten der Anwendung ist unbekannt. Die Tests werden auf der Grundlage von übergeordneten Datenbankdiagrammen und Datenflussdiagrammen durchgeführt. Die internen Abläufe sind vollständig bekannt und der Tester kann die Testdaten entsprechend gestalten.
Es ist erschöpfend und am wenigsten zeitaufwändig. Teilweise zeitaufwändig und erschöpfend. Die umfassendste und zeitaufwändigste Art von Tests.
Nicht zum Testen von Algorithmen geeignet. Nicht zum Testen von Algorithmen geeignet. Geeignet für Algorithmus-Tests.
Dies kann nur durch Ausprobieren erfolgen. Falls bekannt, können Datendomänen und interne Grenzen getestet werden. Datendomänen und interne Grenzen können besser getestet werden.