Äquivalenzklassenbildung
Eine Black‑Box-Testtechnik zur Reduktion von Testfällen durch Einteilung von Eingaben in gleichartige Äquivalenzklassen.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeGrundlage
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Falsche Klassendefinition kann zu fehlender Fehlererkennung führen.
- Übersicht verliert sich bei zu vielen oder überlappenden Klassen.
- Fehlende Domänenkenntnis reduziert Effektivität.
- Kombiniere Äquivalenzklassen mit Grenzwertanalyse.
- Dokumentiere Klassen und Entscheidungsregeln klar.
- Priorisiere Klassen nach Risiko und Nutzungsfrequenz.
I/O & Ressourcen
- Anforderungs‑ und Feldspezifikationen
- Beispieldatensätze und Grenzwertdefinitionen
- Zugriff auf Testumgebung und Testdatenmanagement
- Repräsentative Testfälle pro Äquivalenzklasse
- Dokumentation der Klassen und Zuordnungen
- Metriken zur Abdeckungs- und Fehleranalyse
Beschreibung
Equivalence Partitioning ist eine Testentwurfs‑Technik, die Eingabemengen in gleichartige Klassen (Äquivalenzklassen) einteilt, um repräsentative Testfälle zu reduzieren. Durch Auswahl je einer repräsentativen Eingabe pro Klasse werden Redundanzen minimiert und Testaufwand gesenkt. Es hilft, Testabdeckung effizient zu planen und Fehler in Grenzbereichen zu fokussieren, verlangt jedoch sorgfältige Klassendefinition bei komplexen Eingaben.
✔Vorteile
- Reduziert Anzahl der Testfälle bei gleichbleibender Aussagekraft.
- Ermöglicht strukturierte Testplanung und Priorisierung.
- Verbessert Wiederholbarkeit und Nachvollziehbarkeit von Tests.
✖Limitationen
- Weniger effektiv bei stark zustandsabhängigen Systemen.
- Erfordert genaue Kenntnis der Eingabeanforderungen.
- Grenzwerte müssen zusätzlich mit anderen Techniken (z.B. BVA) geprüft werden.
Trade-offs
Metriken
- Anzahl der Äquivalenzklassen
Zählt definierte Klassen pro Eingabe, zeigt Granularität der Testabdeckung.
- Testfälle pro Klasse
Mittelwert repräsentativer Testfälle je Klasse zur Effizienzmessung.
- Defects pro Klasse
Anzahl gefundener Fehler pro Klasse zur Bewertung von Klassendefinitionen.
Beispiele & Implementierungen
E-Mail-Feld-Validierung
Einteilung in gültige, ungültige und leer‑Klassen mit je einem repräsentativen Testwert.
Altersbeschränkung (18+)
Äquivalenzklassen <18, =18 und >18 zur Abdeckung von erlaubten und gesperrten Fällen.
Produktpreis-Validierung
Klassifizierung in negative, null, gültige Wertebereiche und sehr hohe Werte zur Fehlerdetektion.
Implementierungsschritte
Anforderungen und Eingabefelder identifizieren.
Für jedes Eingabefeld Äquivalenzklassen ableiten.
Repräsentative Werte auswählen und Tests entwickeln.
Ergänzend Grenzwertanalyse durchführen.
Tests ausführen, Ergebnisse evaluieren und Klassen anpassen.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unvollständig dokumentierte Klassendefinitionen in Tests
- Automatisierte Tests, die veraltete Klassen abbilden
- Fehlende Abdeckung für seltene oder kombinatorische Klassen
Bekannte Engpässe
Beispiele für Missbrauch
- Nur ein Testfall für alle numerischen Eingaben ohne Klassenunterscheidung.
- Annahme, dass gleichartige Fehler in einer Klasse identisch sind.
- Verzicht auf Dokumentation der Klassenannahmen.
Typische Fallen
- Übersehene Ausnahmen oder Sonderfälle innerhalb einer Klasse.
- Unklare Regelbasis führt zu inkonsistenter Klassenzuordnung.
- Veränderungen in Anforderungen machen Klassen ungültig.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Begrenzte Domänenkenntnis der Testenden
- • Zeitdruck bei Releasezyklen
- • Abhängigkeit von stabilen Anforderungen