Black Box Testverfahren
R 2.0.0
Beschreibung
Black-Box-Testverfahren (auch spezifikationsbasierte Verfahren genannt) basieren auf einer Analyse der zugehörigen Testbasis (z.B. formale Anforderungsdokumente, Spezifikationen, Anwendungsfälle, User-Stories oder Geschäftsprozesse). Diese Verfahren können sowohl auf funktionale als auch auf nicht-funktionale Tests angewendet werden. Black-Box-Testverfahren konzentrieren sich auf die Eingaben und Ausgaben des Testobjekts, ohne seine interne Struktur zu berücksichtigen.
Testentwurfsverfahren
Äquivalenzklassenbildung
Äquivalenzklassenbildung teilt Daten so in Äquivalenzklassen auf, dass alle Elemente einer vorgegebenen Äquivalenzklasse erwartungsgemäß in derselben Art und Weise verarbeitet werden. Es gibt Äquivalenzklassen für gültige und ungültige Werte.
-
Gültige Werte sind Werte, die von der Komponente oder dem System akzeptiert werden sollten. Eine Äquivalenzklasse, die gültige Werte enthält, wird „gültige Äquivalenzklasse“ genannt.
-
Ungültige Werte sind Werte, die von der Komponente oder dem System abgelehnt werden sollten. Eine Äquivalenzklasse, die ungültige Werte enthält, wird „ungültige Äquivalenzklasse“ genannt.
-
Äquivalenzklassen können für jedes Datenelement in Bezug auf das Testobjekt gebildet werden, u.a. für Eingaben, Ausgaben, interne Werte, zeitbezogene Werte (z.B. vor oder nach einem Ereignis) und für Schnittstellenparameter (z.B. integrierte Komponenten, die während Integrationstests getestet werden).
-
Jede Klasse kann (wenn nötig) in Unterklassen unterteilt werden.
-
Jeder Wert muss eindeutig einer einzigen Äquivalenzklasse zugeordnet werden können.
Um mit diesem Verfahren eine 100%ige Überdeckung zu erzielen, müssen die Testfälle alle festgelegten Klassen (auch ungültige Klassen) abdecken, indem sie mindestens einen Wert aus jeder Klasse nutzen. Die Überdeckung wird gemessen durch die Anzahl der Äquivalenzklassen, die durch mindestens einen Wert getestet wurden, dividiert durch die Gesamtzahl der identifizierten Äquivalenzklassen, üblicherweise in Prozent ausgedrückt. Äquivalenzklassenbildung kann auf allen Teststufen angewendet werden.
Beispiele finden Sie in den Folien zur ForTeQ-Keynote "Kombinatorik II – Grenzwertanalyse und Bildung von Äquivalenzklassen".
Video: Testfälle mittels Aquivalenzklassen und Grenzwertanalysen (Länge: 02:51)
Grenzwertanalyse
Die Grenzwertanalyse ist eine Erweiterung der Äquivalenzklassenbildung, aber sie kann nur dann genutzt werden, wenn die Klasse geordnet ist und aus numerischen oder sequenziellen Daten besteht. Die Minimum- und Maximum-Werte (oder erste und letzte Werte) einer Klasse sind ihre Grenzwerte.
Beispiel: Ein Eingabefeld akzeptiert einen einstelligen Integer-Wert als Eingabe und nutzt eine Zifferntaste zur Einschränkung der Eingabe, damit nur Integer-Werte als Eingabe möglich sind. Der gültige Bereich reicht von 1 bis einschließlich 5.
Es gibt also drei Äquivalenzklassen: ungültig (zu niedrig), gültig, ungültig (zu hoch).
Für die gültige Äquivalenzklasse sind die Grenzwerte 1 und 5. Für die ungültige (zu hohe) Klasse ist der Grenzwert 6. Für die ungültige (zu niedrige) Klasse gibt es nur einen Grenzwert, 0, da dies eine Klasse mit nur einem Wert ist.
Im obigen Beispiel wurden zwei Grenzwerte pro Grenze identifiziert. Die Grenze zwischen ungültig (zu niedrig) und gültig ergibt die Testwerte 0 und 1. Die Grenze zwischen gültig und ungültig (zu hoch) ergibt die Testwerte 5 und 6. Einige Varianten dieses Verfahrens identifizieren drei Grenzwerte pro Grenze: die Werte vor, auf und gerade über der Grenze. Im vorigen Beispiel würde die Nutzung von drei Grenzwerten zu den niedrigen Testwerten 0, 1 und 2 und zu den höheren Testwerten 4, 5 und 6 führen.
Das Verhalten an den Grenzen der Äquivalenzklasse ist wahrscheinlich eher nicht so korrekt wie das Verhalten innerhalb der Klassen. Es ist wichtig, sich zu vergegenwärtigen, dass sowohl die spezifizierten als auch die implementierten Grenzen über oder unterhalb ihrer eigentlich vorzusehenden Position verschoben, ganz ausgelassen oder mit unerwünschten zusätzlichen Grenzen ergänzt sein können. Grenzwertanalysen und -tests decken fast alle diese Fehlerzustände auf, indem sie die Software provozieren, ein anderes Verhalten zu zeigen, als es für die Klasse zu erwarten wäre, zu der die Grenzwerte gehören.
Grenzwertanalysen können auf allen Teststufen angewandt werden. Dieses Verfahren wird üblicherweise dazu genutzt, Anforderungen zu testen, die eine Reihe von Zahlen (einschließlich Datum und Zeit) enthalten. Grenzwertüberdeckung für eine Klasse wird gemessen als die Anzahl der getesteten Grenzwerte dividiert durch die Gesamtzahl der identifizierten Grenzwerte – meist ausgedrückt als Prozentzahl.
Beispiele finden Sie in den Folien zur ForTeQ-Keynote "Kombinatorik II – Grenzwertanalyse und Bildung von Äquivalenzklassen".
Zustandsbasierter Test
Komponenten oder Systeme können unterschiedlich auf ein Ereignis reagieren, abhängig vom gegenwärtigen Zustand oder von Abläufen in der Vergangenheit (z.B. den Vorgängen, die seit Inbetriebnahme des Systems stattgefunden haben). Die Abläufe in der Vergangenheit können durch das Modell von Zuständen abgebildet werden. Ein Zustandsübergangsdiagramm zeigt zum einen alle möglichen Softwarezustände selbst und dann auch, wie die Software in diesen Zustand eintritt, austritt und zwischen den Zuständen wechselt. Ein Übergang wird durch ein Ereignis hervorgerufen (z.B. Benutzereingabe eines Werts in ein Feld). Das Ereignis führt zu einem Übergang. Das gleiche Ereignis kann zu zwei oder mehreren Übergängen aus dem gleichen Zustand heraus führen. Die Zustandsänderung kann häufig Reaktionen der Software zur Folge haben (z.B. Ausgabe einer Berechnung oder einer Fehlermeldung).
Eine Zustandsübergangstabelle zeigt alle gültigen Übergänge und auch alle ungültigen, aber möglichen Übergänge zwischen Zuständen auf. Außerdem enthält sie alle Ereignisse und zu erwartende Reaktionen der Software für gültige Übergänge. Zustandsübergangsdiagramme zeigen üblicherweise nur die gültigen Übergänge und schließen ungültigen Übergänge aus.
Es werden Tests entworfen, um eine übliche Sequenz von Zuständen abzubilden, um alle Zustände herbeizuführen, um jeden Übergang auszuführen, um spezifische Sequenzen von Übergängen auszuführen oder schließlich um ungültige Übergänge zu testen.
Zustandsübergangstests werden für menügeführte Anwendungen genutzt und häufig in der Softwarebranche für eingebettete Systeme (embedded systems) eingesetzt. Das Verfahren ist auch gut für die Modellerstellung eines Geschäftsszenarios mit spezifischen Zuständen geeignet oder für das Testen der Bildschirmnavigation. Das Konzept eines Zustands ist abstrakt – es kann sich dabei um einige Zeilen Code oder gar um einen gesamten Geschäftsprozess handeln.
Entscheidungstabellentest
Entscheidungstabellen sind sinnvoll, um komplexe Regeln in Geschäftsprozessen zu erfassen, die ein System umzusetzen hat. Bei der Erstellung der Entscheidungstabellen identifiziert der Tester Bedingungen (zumeist Eingaben) und die daraus folgenden Aktionen (zumeist Ausgaben) des Systems. Diese bilden die Zeilen einer Tabelle, üblicherweise dann auch mit den Bedingungen oben und den Aktionen unten. Jede Spalte bezieht sich auf eine Entscheidungsregel, bestehend aus einer spezifischen Kombination von Bedingungen und den damit verbundenen Aktionen. Die Werte der Bedingungen und Aktionen werden üblicherweise als boolesche Werte dargestellt (wahr oder falsch) oder als eigenständige Werte (z.B. rot, grün, blau), können aber auch Zahlen oder Zahlenreihen sein. Derlei unterschiedliche Arten von Bedingungen und Aktionen können auch zusammen in der gleichen Tabelle auftreten.
Die gängige Notation in Entscheidungstabellen sieht wie folgt aus:
Für Bedingungen:
-
"J" bedeutet, die Bedingung ist richtig (kann auch als Ja oder 1 dargestellt werden).
-
"N" bedeutet, die Bedingung ist falsch (kann auch als Nein oder 0 bezeichnet werden).
-
"–" bedeutet, der Wert der Bedingung hat für die Aktionen keine Bedeutung (kann auch als N/A bezeichnet werden).
Für Aktionen:
-
"X" bedeutet, die Aktion sollte stattfinden (kann auch als Ja oder J oder 1 bezeichnet werden).
-
"Leer" bedeutet, die Aktion sollte nicht stattfinden (kann auch als – oder Nein oder N oder 0 bezeichnet werden).
Eine vollständige Entscheidungstabelle hat genau so viele Spalten (Testfälle), dass jede Kombination von Bedingungen abgedeckt ist. Durch das Löschen von Spalten mit Bedingungskombinationen, die das Ergebnis nicht beeinflussen, kann sich die Anzahl der Testfälle erheblich verringern. Zum Beispiel durch das Entfernen von unmöglichen Kombinationen von Bedingungen.
Video: Entscheidungstabellen (Länge: 02:28)
Der übliche Mindestüberdeckungsstandard für Entscheidungstabellentests besteht darin, pro Entscheidungsregel der Tabelle mindestens einen Testfall zu haben. Das beinhaltet üblicherweise das Abdecken aller Kombinationen von Bedingungen. Die Überdeckung wird gemessen als die Anzahl der Entscheidungsregeln, die durch wenigstens einen Testfall getestet wurden, dividiert durch die Gesamtzahl der Entscheidungsregeln – üblicherweise als Prozentzahl dargestellt.
Die Stärke von Entscheidungstabellentests besteht darin, dass sie dabei helfen, alle wichtigen Kombinationen von Bedingungen zu identifizieren, die ansonsten leicht übersehen werden könnten. Sie helfen auch, Lücken in den Anforderungen zu finden. Sie können in jeder Teststufe auf alle Situationen angewendet werden, in denen das Verhalten der Software von einer Kombination von Bedingungen abhängt.
Anwendungsfallbasierter Test
Anwendungsfälle (Use Cases) sind eine spezielle Form, um Interaktionen mit Softwareelementen darzustellen. Sie enthalten Anforderungen an die Softwarefunktionalität. Anwendungsfälle haben Akteure (menschliche Benutzer, externe Hardware oder andere Komponenten oder Systeme) und Objekte (eine Komponente oder das System, auf das der Anwendungsfall angewendet wird).
Jeder Anwendungsfall definiert ein bestimmtes Verhalten, das ein Objekt in Zusammenarbeit mit einem oder mehreren Akteuren ausführen kann. Ein Anwendungsfall kann durch Interaktionen und Aktivitäten sowie durch Vorbedingungen, Nachbedingungen und falls angemessen auch in natürlicher Sprache beschrieben werden. Interaktionen zwischen den Akteuren und dem Objekt können zu Veränderungen des Objektzustands führen. Interaktionen können grafisch durch Workflows, Aktivitätsdiagramme oder Geschäftsprozessmodelle dargestellt werden.
Ein Anwendungsfall besteht aus mehreren möglichen Varianten seines grundlegenden Verhaltens, was u.a. Sonder- und Fehlerbehandlungen einschließt (Antwort- und Wiederherstellungsmechanismen des Systems nach Programmier-, Anwendungs- und Kommunikationsfehler, die z.B. zu Fehlermeldungen führen). Tests werden entworfen, um das definierte Verhalten nachzuweisen (grundlegendes, außergewöhnliches oder alternatives Verhalten und die Fehlerbehandlungsroutinen). Die Überdeckung kann durch den Anteil der getesteten Anwendungsfallvarianten bezogen auf die Gesamtzahl der Anwendungsfallvarianten gemessen werden – und wird üblicherweise als Prozentsatz dargestellt.
Quellen
-
ISTQB Certified Tester Lehrplan Foundation Level, Version 4.0.1a, 2023, abgerufen am 13.12.2024
-
ISTQB Glossar Black Box Testverfahren, abgerufen am 22.02.2024
-
A. Spillner, T. Linz - Basiswissen Softwaretest, 7. Auflage, 2024
-
YouTube Thomas Grosser, Testfälle mittels Aquivalenzklassen und Grenzwertanalysen, abgerufen am 13.02.2024
-
YouTube Thomas Grosser, Entscheidungstabellen, abgerufen am 13.02.2024
-
T2informatik, Zustandsdiagramm, Stand: 19.01.2023
-
Dr. Oliver Kortendick, Kombinatorik II Äquivalenzklassenbildung und Grenzwertanalyse - Vortrag im Forum für Test und Qualitätssicherung (ForTeQ - BVA) vom 25.02.2021