Zum Inhalt springen

Februar 5, 2025

Äquivalenzklassen-Zerlegung und Grenzwertanalyse

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ÄquivalenzklasseGültigkeit
-10, 0ungültigNein
1 – 100gültig Ja
101, 150ungültigNein

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:

EingabewerteKlassifizierungErwartetes Ergebnis
0Untere Grenze -1Fehler
1Untere GrenzeErfolg
100Obere GrenzeErfolg
101Obere Grenze +1Fehler

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

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

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

Testdatenmatrix für Data-Driven Testing mit Grenzwertanalyse

TestfallEingabewerteErwartetes Ergebnis
TC1-10Fehler
TC20Fehler
TC31Erfolg
TC450Erfolg
TC5100Erfolg
TC6101Fehler

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ÄquivalenzklasseGültigkeit
0 – 17ungültigNein
18 – 65gültig Ja
66 und höherungültigNein

Grenzwertanalyse

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

TestfallEingabewerteErwartetes Ergebnis
TC117Fehler (zu jung)
TC218Erfolg (gerade gültig)
TC330Erfolg (Mitte der gültigen Klasse)
TC465Erfolg (gerade noch gültig)
TC566Fehler (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ÄquivalenzklasseErlaubte BuchungRabatt/Zuschlag
0 – 11 JahreKinderNur mit Erwachsenem-50%
12 – 17 JahreJugendlicheJaKein Rabatt
18 – 64 JahreErwachseneJaKein Rabatt
65+ JahreSeniorenJa-20%
BuchungsklasseÄquivalenzklassePreisregel
EconomyStandardNormalpreis
BusinessPremium+50%
First ClassLuxus+100%

Grenzwertanalyse

Hier testen wir gezielt die Grenzwerte zwischen den Äquivalenzklassen:

TestfallEingabewerteErwartetes Ergebnis
TC10Fehler (Kind ohne Erwachsenen)
TC21Fehler (Kind ohne Erwachsenen)
TC311Fehler (Kind ohne Erwachsenen)
TC412Erfolg (Übergang Kind → Jugendlicher)
TC517Erfolg (letzte Jugendstufe)
TC618Erfolg (Übergang Jugendlicher → Erwachsener)
TC764Erfolg (letzte Erwachsenenstufe)
TC865Erfolg (Übergang Erwachsener → Senior mit 20% Rabatt)
TC980Erfolg (Senior mit 20% Rabatt)
TC1030Erfolg (50% Zuschlag)
TC1140Erfolg (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.