Test Design Techniques
Überblick über etablierte Testentwurfs-Techniken zur systematischen Ableitung und Priorisierung von Testfällen aus Anforderungen und Systemzuständen.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Falsche Priorisierung führt zu unzureichender Risikodeckung.
- Übergroße Testmengen erhöhen Run-Time und Wartungskosten.
- Übermäßiger Fokus auf Automatisierung kann exploratives Testing vernachlässigen.
- Kombiniere Techniken (Äquivalenz, Grenzwerte, Zustandsmodell) statt nur einer Methode.
- Priorisiere Tests nach Risiko und Geschäftskritikalität.
- Automatisiere deterministische Tests und halte exploratory Tests manuell.
I/O & Ressourcen
- Anforderungsspezifikation oder User Stories
- System- oder Komponentenspezifikationen
- Existierende Tests und CI-Ergebnisse
- Priorisierte Liste von Testfällen
- Automatisierte Testsuiten oder Testskripte
- Mapping zwischen Tests und Anforderungen/Risiken
Beschreibung
Test Design Techniques bieten strukturierte Ansätze zur Auswahl und Formulierung von Testfällen basierend auf Anforderungen, Spezifikationen und Systemzuständen. Sie reduzieren redundante Tests, erhöhen Fehlererkennungswahrscheinlichkeit und unterstützen Risikobasierung. Anwender müssen Technikwahl, Testumfang und Automatisierungsgrad abwägen.
✔Vorteile
- Höhere Fehlererkennungsrate durch systematische Testableitung.
- Reduzierung redundanter Tests und effizienterer Testumfang.
- Bessere Nachvollziehbarkeit von Tests gegenüber Anforderungen.
✖Limitationen
- Nicht alle Techniken passen für sehr explorative oder UI-lastige Tests.
- Erfordert Aufwand für Modellierung und Pflege der Testfälle.
- Grenzfälle können übersehen werden, wenn Technikwahl unpassend ist.
Trade-offs
Metriken
- Fehlerentdeckungsrate
Anteil gefundener Defekte pro Anzahl ausgeführter Tests oder Anforderungen.
- Testabdeckung (Anforderungen)
Prozentsatz der Anforderungen, die durch Testfälle abgedeckt sind.
- Mean Time to Detect (MTTD)
Durchschnittliche Zeit bis zur Entdeckung eines Fehlers nach Änderungseinführung.
Beispiele & Implementierungen
Checkout-Modul eines E-Commerce-Systems
Anwendung von Grenzwertanalyse und Zustandsübergangstests zur Absicherung von Zahlungs- und Versandlogik.
REST-API-Validierung
Anforderungsbasiertes Testen der Spezifikation, plus äquivalente Klassen für Eingabevarianten.
Zustandsmaschine für Bestellstatus
Zustandsorientierte Tests zur Abdeckung aller validen und invaliden Übergänge.
Implementierungsschritte
Analyse der Anforderungen und Identifikation kritischer Bereiche
Auswahl passender Testdesign-Techniken pro Bereich
Ableiten konkreter Testfälle und Mapping zu Anforderungen
Automatisierung, Priorisierung und Integration in CI
Messung, Review und iterative Anpassung der Testbasis
⚠️ Technische Schulden & Engpässe
Tech Debt
- Fragmentierte Tests ohne gemeinsames Designprinzip.
- Unzureichende Automatisierungsabdeckung kritischer Pfade.
- Veraltete Testdaten und fehlende Isolation von Umgebungen.
Bekannte Engpässe
Beispiele für Missbrauch
- Erstellen umfangreicher Testmengen für wenig kritische Funktionen.
- Verwenden einer einzigen Technik (z. B. nur Äquivalenzklassen) überall.
- Tests nicht an geänderte Anforderungen anpassen.
Typische Fallen
- Überschätzen der Automatisierbarkeit komplexer Szenarien.
- Ignorieren von nicht-funktionalen Anforderungen beim Testdesign.
- Fehlende Verknüpfung zwischen Tests und Anforderungen/Risiken.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Begrenztes Testzeitbudget vor Release
- • Legacy-Code erschwert isoliertes Testen
- • Teilweise fehlende oder unklare Anforderungen