Test Levels
Gliederung von Testarten nach Zweck und Umfang (Unit, Integration, System, Akzeptanz) zur Strukturierung von Teststrategien und Verantwortlichkeiten.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Zu viel Fokus auf einer Ebene und Vernachlässigung anderer
- Unzureichende Testdaten und Umgebungsspezifikationen
- Erhöhte CI-Zeiten durch fehlende Parallelisierung
- Keep tests fast and deterministic auf Unit-Ebene
- Isoliere Integrations- und E2E-Tests in speziellen Umgebungen
- Nutze Testdatenmanagement und Mocking für Stabilität
I/O & Ressourcen
- Anforderungen und Akzeptanzkriterien
- Testumgebungen und Testdaten
- CI/CD-Integration und Testframeworks
- Testberichte und Fehlerrückmeldungen
- Regressionsschutz durch automatisierte Suiten
- Freigabekriterien basierend auf Testresultaten
Beschreibung
Test Levels beschreibt die Hierarchie von Tests (Unit, Integration, System, Akzeptanz) zur systematischen Qualitätsprüfung von Software. Es definiert Zwecke, Umfang und Verantwortlichkeiten auf jeder Ebene und erleichtert Teststrategie, Automatisierungsgrad und Fehlerlokalisierung. Es unterstützt Priorisierung und Ressourceneinsatz.
✔Vorteile
- Bessere Fehlerlokalisierung durch klare Verantwortungsgrenzen
- Effizientere Teststrategie und Ressourcennutzung
- Skalierbare Automatisierungspfade pro Ebene
✖Limitationen
- Überspezifikation einzelner Ebenen kann Aufwand erhöhen
- Flaky Tests auf Integrations- oder E2E-Ebene sind schwer zu debuggen
- Nicht alle Fehler werden auf Unit-Ebene sichtbar
Trade-offs
Metriken
- Durchschnittliche Testlaufzeit
Mittlere Dauer kompletter Testläufe in der CI-Pipeline.
- Fehlerlokalisierungszeit
Zeit vom Fehlerauftreten bis zur Identifikation der betroffenen Komponente.
- Testabdeckungsgrad
Anteil des Quellcodes, der durch automatisierte Tests abgedeckt ist.
Beispiele & Implementierungen
Unit-Testing in Microservice A
Satz von schnellen Unit-Tests zur Absicherung von Service-Logik und DTO-Transformationen.
Integrationstests für Zahlungsabwicklung
Testläufe gegen simulierte Zahlungs-Gateways zur Validierung End-to-End-Integrationen.
Akzeptanztest für Web-Checkout
Geschäftsgetriebene Szenarien prüfen Checkout-Flows mit realistischen Testdaten.
Implementierungsschritte
Analyse bestehender Testabdeckung und Identifikation von Lücken
Definition von Zielen pro Testebene (z. B. Laufzeit, Coverage)
Automatisierung priorisierter Tests und Integration in CI
Monitoring der Testmetriken und kontinuierliche Verbesserung
⚠️ Technische Schulden & Engpässe
Tech Debt
- Langsame, nicht parallele Testpipelines
- Fehlende oder unzuverlässige Testdatenkenntnis
- Hoher Legacy-Test-Wartungsaufwand
Bekannte Engpässe
Beispiele für Missbrauch
- E2E-Tests für UI-Details, die häufig wechseln
- Mocks an falschen Integrationsgrenzen einsetzen
- Unit-Tests als Ersatz für Integrationsvalidierung
Typische Fallen
- Unklare Zuständigkeiten für Testarten
- Fehlende Pflege veralteter Tests
- Überkomplizierte Testdatenaufbereitung
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Begrenzte CI-Ressourcen
- • Legacy-Code ohne Tests
- • Beschränkter Zugriff auf externe Integrationen während Tests