Äquivalenzklassen-Methode

aus www.iwiki.de, der freien Wissensdatenbank

Bei der Äquivalenzklassen-Methode handelt es sich um eine dynamische, funktionale Testmethode, bei der man davon ausgeht, dass sich ein Softwaresystem bei der Eingabe eines Vertreters einer Äquivalenzklasse genau so verhält, wie bei allen anderen Werten dieser Klasse.

Inhaltsverzeichnis

Grundlegendes

Bei Äquivalenzklassen handelt es sich um Mengen von Eingabekombinationen, die eine bestimmte Ein/-Ausgabebedingung erfüllen. Dabei werden sowohl gültige (die Eingabe erfüllt die Vorgabe), als auch ungültige (die Eingabe erfüllt die Vorgabe nicht) Klassen benötigt, um einen Äquivalenzklassen-Test durchzuführen.

Vorgehensweise

Zum Testen mit der Äquivalenzklassen-Methode geht man am besten in drei Schritten vor. 1.Schritt: Aufstellen der Bedingungen: Anhand der Spezifikation des Testobjektes werden die Bedingungen definiert, die eine Eingabe erfüllen muss. Ausgabebedingungen leiten sich aus den Anforderungen an die Resultate des Testobjektes ab. 2.Schritt: Bestimmung der Äquivalenzklassen: für jede definierte Bedingung werden sowohl gültige als auch ungültige Eingaben in Klassen zusammen gefasst. Dabei gilt für jede Klasse, dass die Eingabe jedes Repräsentanten der Klasse die gleiche Wirkung auf das Testobjekt hat. Tritt also ein Fehler bei einem Vertreter der Äquivalenzklasse nicht auf, so tritt er auch bei allen anderen Vertretern nicht auf. 3.Schritt: Ableitung der Testfälle aus den jeweiligen Äquivalenzklassen: Aus jeder gefundenen Klasse wird ein Testfall abgeleitet, der stellvertretend für die ganze Klasse ausgeführt wird.

Bildung von Äquivalenzklassen und Beispiele

Aus den Eingabebedingungen einer Softwarekomponente können verschiedene Standardfälle abgeleitet werden.

Bereichsparameter

Die Eingaben müssen innerhalb eines bestimmten Bereichs liegen. Daraus folgen eine gültige Äquivalenzklasse, deren Elemente den Bereich abdecken, sowie zwei ungültige Klassen, die alle Elemente ober- und unterhalb des zulässigen Bereichs enthalten.

Beispiel: Bei einer Datumseingabe darf das Feld für den Tag Zahlen enthalten, die im Bereich von 1 bis 31 liegen. Daraus folgt eine gültige Äquivalenzklasse {x|1<=x<=31} mit der dazugehörigen Testfalleingabe 15. Weiterhin werden zwei ungültige Äquivalenzklassen für die Bereiche {x|-“unendlich“<x<1} und {x|31<x<“unendlich} mit den dazugehörigen Testfällen -22 und 200.

Diskrete Parameter mit unterschiedlicher Verarbeitung

Es muss für jeden zulässigen diskreten Wert eine gültige, sowie für alle ungültigen Werte eine ungültige Äquivalenzklasse gebildet werden.

Beispiel: Die Versandkosten für eine Ware variieren abhängig von der Bezahlweise. Gewählt werden können Vorkasse, Nachname oder Rechnung. Es muss eine gültige Äquivalenzklasse für jede dieser Zahlungsmethoden erzeugt werden, sowie eine ungültige für alle anderen Zahlungsmethoden. Stellvertretend kann hier z.B. Barzahlung gewählt werden.

Diskrete Parameter mit gleicher Behandlung

Werden alle Eingaben einer diskreten Menge gleich behandelt, so ist eine gültige Äquivalenzklasse für die Menge zu bilden sowie eine ungültige Klasse für alle Werte außerhalb der gültigen Menge.

Beispiel: Wird für eine Eingabe eine Obstsorte erwartet, um ein Rezept auszugeben, können z.B. Äpfel, Birnen, Kirschen usw. Zu einer gültigen Äquivalenzklasse zusammengefasst werden. Als Testfall wird beispielsweise Kirschen gewählt. Alle anderen Gewächse werden zu einer ungültigen Klasse zusammengefasst, und als Testfall die Kartoffel gewählt.

Eingabe mit vorgegebener Anzahl von Elementen

Wird eine Eingabebedingung mit einer definierten Anzahl von Argumenten festgelegt, wird eine Äquivalenzklasse mit einer gültigen Anzahl sowie je eine ungültige Klasse gebildet, die die erforderliche Anzahl unter- und überschreitet.

Beispiel: Eine Liste darf mit maximal 8 Elementen gefüllt sein, muss aber mindestens einen Eintrag enthalten. Es wird eine Äquivalenzklasse {1,2,3,4,5,6,7,8} gebildet, deren Vertreter für den Testfall mit 5 Einträgen festgelegt wird. Weiterhin wird eine Liste mit 0 Einträgen und eine Liste mit z.B. 12 Einträgen erzeugt.