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