Testing Pyramid
Details
- Vollständiger Name
-
Testing Pyramid nach Mike Cohn
Kernkonzepte:
- Drei Schichten
-
-
Unit-Tests (Basis): Viele schnelle, isolierte Tests
-
Integrationstests (Mitte): Moderate Anzahl, testen Komponenteninteraktion
-
End-to-End-Tests (Spitze): Wenige, testen komplette User Journeys
-
- Proportionale Verteilung
-
Mehr Unit-Tests, weniger E2E-Tests
- Kosten und Geschwindigkeit
-
Unit-Tests günstig und schnell, E2E-Tests teuer und langsam
- Feedback-Schleifen
-
Schnelleres Feedback von unteren Ebenen
- Anti-Pattern: Eistüte
-
Zu viele E2E-Tests, zu wenige Unit-Tests
- Auf der richtigen Ebene testen
-
Nicht durch UI testen, was isoliert getestet werden kann
- Vertrauensgradient
-
Balance zwischen Vertrauen und Ausführungsgeschwindigkeit
- Schlüsselvertreter
-
Mike Cohn ("Succeeding with Agile", 2009)
Wann zu verwenden:
-
Planung der Teststrategie für Projekte
-
Ausbalancierung von Testtypen in CI/CD-Pipelines
-
Bewertung bestehender Testsuiten
-
Anleitung von Team-Testpraktiken
Kritik:
-
Kent C. Dodds, "Write tests. Not too many. Mostly integration." (2019) — schlägt die Testing Trophy vor: Integrationstests liefern das beste Vertrauen pro Kosten, die unit-lastige Basis der Pyramide optimiere also auf die falsche Metrik
-
Spotify Engineering, "Testing of Microservices" (2018) — schlägt für Microservices die Honeycomb-Form vor: unit-lastige Suiten koppeln Tests an Implementierungsdetails und zerbrechen beim Refactoring
-
Die Schichtgrenzen verschwimmen in modernen Stacks — schnelle In-Memory-"Integrationstests" untergraben die Kernannahme der Pyramide, dass höhere Testebenen zwangsläufig langsam und teuer sind