Data-Driven Testing (DDT) ist eine bewährte Methode im Softwaretest, um Testfälle mit verschiedenen Eingabedaten effizient durchzuführen. Die Methode der Äquivalenzklassen-Zerlegung oder Äquivalenzklassenmethode hilft dabei, die Testmenge sinnvoll zu reduzieren, ohne die Testabdeckung zu gefährden. In diesem Artikel beleuchten wir, wie diese Technik funktioniert und welchen Nutzen sie beim Data-Driven Testing bietet. Zusätzlich wird die Methode mit der Grenzwertanalyse kombiniert, um eine noch präzisere Testfallauswahl zu ermöglichen.

Grundlagen der Äquivalenzklassenmethode

Die Äquivalenzklassenmethode ist eine Technik zur Testfallableitung, die darauf abzielt, die Eingabedaten eines Systems in Gruppen oder Klassen einzuteilen, in denen die Werte als äquivalent betrachtet werden können. Äquivalent bedeutet, jeder Wert innerhalb einer Klasse soll sich im Testfallverhalten identisch verhalten, wodurch es ausreicht, mit nur einem Vertreter jeder Klasse zu testen.

Beispiel einer Äquivalenzklasseneinteilung

Angenommen, ein Formular akzeptiert Zahlen zwischen 1 und 100 als gültige Eingaben:

Eingabewerte Äquivalenzklasse Gültigkeit
-10, 0 ungültig Nein
1 – 100 gültig Ja
101, 150 ungültig Nein

Kombination mit der Grenzwertanalyse

Die Grenzwertanalyse ist eine ergänzende Technik zur Äquivalenzklassenmethode, die sich auf die Testung der Ränder der Äquivalenzklassen konzentriert. Da Fehler oft an den Grenzen eines gültigen Wertebereichs auftreten, sind diese Werte besonders kritisch für Tests.

Beispiel für Grenzwertanalyse

Für den obigen Zahlenbereich (1 – 100) könnten die relevanten Grenzwerte wie folgt definiert werden:

Eingabewerte Klassifizierung Erwartetes Ergebnis
0 Untere Grenze -1 Fehler
1 Untere Grenze Erfolg
100 Obere Grenze Erfolg
101 Obere Grenze +1 Fehler

Die Kombination beider Methoden sorgt für eine präzisere Testabdeckung, indem sowohl repräsentative Werte aus jeder Äquivalenzklasse als auch kritische Grenzwerte getestet werden.

Anwendung im Data-Driven Testing

Data-Driven Testing basiert auf der Idee, eine Vielzahl von Testfällen mit unterschiedlichen Eingabewerten auszuführen. Die Äquivalenzklassenmethode hilft hier, die Menge an Testdaten zu optimieren.

Vorteile der Kombination von DDT mit Äquivalenzklassen und Grenzwertanalyse

  1. Reduzierung redundanter Tests: Statt alle möglichen Eingaben zu testen, werden nur repräsentative Werte aus jeder Äquivalenzklasse sowie kritische Grenzwerte gewählt.
  2. Effiziente Testdatenverwaltung: Die Testdaten sind strukturierter und einfacher zu verwalten.
  3. Höhere Testabdeckung mit weniger Testfällen: Kritische Testfälle werden abgedeckt, ohne unnötige Tests durchzuführen.
  4. Erhöhte Fehlererkennung: Tests an den Rändern einer Klasse decken potenzielle Grenzwertfehler auf.
  5. Automatisierungsfreundlich: Die Kombination mit DDT macht die Automatisierung einfacher und wartungsfreundlicher.

Visualisierung der Äquivalenzklassen und Grenzwertanalyse

Äquivalenzklassen als Diagramm

Ein Diagramm kann die Einteilung der Äquivalenzklassen und die relevanten Grenzwerte verdeutlichen:

  • X-Achse: Eingabewerte
  • Y-Achse: Gültigkeit

Diagramm zur Darstellung von Äquivalenzklassen für Eingabewerte. Die X-Achse zeigt die Eingabewerte von -20 bis 120, die Y-Achse die Gültigkeit (1 = gültig, 0 = ungültig). Der Bereich von 1 bis 100 ist als gültig markiert und mit einer blauen Linie hervorgehoben. Die Grenzwerte 1 und 100 sind mit gestrichelten grünen Linien dargestellt. Ungültige Bereiche unter 1 und über 100 sind mit roten gestrichelten Linien markiert. Die Legende erklärt die Farben und Linienarten. Der Titel des Diagramms lautet „Äquivalenzklassen für Eingabewerte (1-100 gültig)“.

Testdatenmatrix für Data-Driven Testing mit Grenzwertanalyse

Testfall Eingabewerte Erwartetes Ergebnis
TC1 -10 Fehler
TC2 0 Fehler
TC3 1 Erfolg
TC4 50 Erfolg
TC5 100 Erfolg
TC6 101 Fehler

Beispiel 1: Altersprüfung für die Registrierung einer Online-Plattform

Angenommen, eine Online-Plattform erlaubt die Registrierung nur für Nutzer zwischen 18 und 65 Jahren. Die Software validiert das Alter auf Basis der vom Nutzer eingegebenen Zahl.

Äquivalenzklassenanalyse

Eingabewerte Äquivalenzklasse Gültigkeit
0 – 17 ungültig Nein
18 – 65 gültig Ja
66 und höher ungültig Nein

Grenzwertanalyse

Hier testen wir speziell die Werte an den Grenzen der Äquivalenzklassen:

Testfall Eingabewert Erwartetes Ergebnis
TC1 17 Fehler (zu jung)
TC2 18 Erfolg (gerade gültig)
TC3 30 Erfolg (Mitte der gültigen Klasse)
TC4 65 Erfolg (gerade noch gültig)
TC5 66 Fehler (zu alt)

Erklärung der Teststrategie

  • Durch die Kombination der Äquivalenzklassenmethode und Grenzwertanalyse minimieren wir die Testfälle, während wir trotzdem eine maximale Fehlerabdeckung sicherstellen.
  • Anstatt alle Altersstufen zwischen 18 und 65 zu testen, wählen wir nur repräsentative Werte.
  • Die Grenzwerte 17, 18, 65, 66 sind kritisch, da hier häufig Fehler in der Implementierung auftreten.

Dieses Beispiel zeigt, wie diese einfachen Methoden in der Praxis dazu beitragen, die Qualität einer Anwendung effizient zu prüfen.

Im obigen Beispiel wird die einfachste Zerlegung in Äquivalenzklassen gezeigt: Eine Klasse mit gültigen und eine Klasse mit ungültigen Repräsentanten. Das zweite Beispiel kombiniert mehrere Datentypen mit mehreren Äquivalenzklassen.

Beispiel 2: Flugticketpreise basierend auf Alter und Buchungsklasse

Ein Flugbuchungssystem berechnet den Ticketpreis abhängig vom Alter des Passagiers und der Buchungsklasse. Die Preise und Buchungsbedingungen sind wie folgt:

  • Kinder (0-11 Jahre) erhalten 50% Rabatt, dürfen aber nur mit einem Erwachsenen reisen.
  • Jugendliche (12-17 Jahre) zahlen den vollen Preis.
  • Erwachsene (18-64 Jahre) zahlen den vollen Preis.
  • Senioren (65+ Jahre) erhalten 20% Rabatt.
  • In der Economy-Klasse gelten normale Preise.
  • In der Business-Klasse gibt es einen Zuschlag von 50% auf den Basispreis.
  • In der First Class gibt es einen Zuschlag von 100% auf den Basispreis.

Äquivalenzklassenanalyse

Hier teilen wir die möglichen Eingaben in Äquivalenzklassen für zwei Datentypen auf:

Alter des Passagiers Äquivalenzklasse Erlaubte Buchung Rabatt/Zuschlag
0 – 11 Jahre Kinder Nur mit Erwachsenem -50%
12 – 17 Jahre Jugendliche Ja Kein Rabatt
18 – 64 Jahre Erwachsene Ja Kein Rabatt
65+ Jahre Senioren Ja -20%

 

Buchungsklasse Äquivalenzklasse Preisregel
Economy Standard Normalpreis
Business Premium +50%
First Class Luxus +100%

Grenzwertanalyse

Hier testen wir gezielt die Grenzwerte zwischen den Äquivalenzklassen:

Testfall Alter Buchungsklasse Erwartetes Ergebnis
TC1 0 Economy Fehler (Kind ohne Erwachsenen)
TC2 1 Economy Fehler (Kind ohne Erwachsenen)
TC3 11 Economy Fehler (Kind ohne Erwachsenen)
TC4 12 Economy Erfolg (Übergang Kind → Jugendlicher)
TC5 17 Economy Erfolg (letzte Jugendstufe)
TC6 18 Economy Erfolg (Übergang Jugendlicher → Erwachsener)
TC7 64 Economy Erfolg (letzte Erwachsenenstufe)
TC8 65  Economy Erfolg (Übergang Erwachsener → Senior mit 20% Rabatt)
TC9 80  Economy Erfolg (Senior mit 20% Rabatt)
TC10 30 Business Erfolg (50% Zuschlag)
TC11 40  First Class Erfolg (100% Zuschlag)

Erklärung der Teststrategie

  • Mehrere Äquivalenzklassen für Alter und Buchungsklasse.
  • Grenzwertanalyse prüft, ob das System den Übergang zwischen Altersgruppen korrekt verarbeitet.
  • Besonderheit: Kinder müssen mit einem Erwachsenen reisen, daher sind TC1-TC3 ungültig.
  • Rabatt- und Zuschlagsberechnungen werden geprüft.

Fazit

Die Kombination der Äquivalenzklassenmethode mit der Grenzwertanalyse ist eine wertvolle Technik im Data-Driven Testing, um Testfälle gezielt auszuwählen und die Testeffizienz zu steigern. Während Äquivalenzklassen die Testdatenmenge sinnvoll reduzieren, stellt die Grenzwertanalyse sicher, dass kritische Randfälle nicht übersehen werden. Durch diese systematische Auswahl von Testdaten kann die Qualität der Software gesichert und gleichzeitig der Testaufwand minimiert werden.