Skip to content
IRC-CodingIRC-Coding
TestpyramideUnit TestsIntegration TestsE2E TestsSoftware TestingTeststrategieTestautomatisierung

Testpyramide: Unit, Integration und E2E Tests im richtigen Verhältnis

Die Testpyramide einfach erklärt: Unit Tests, Integration Tests und E2E Tests im richtigen Verhältnis. Mit Beispielen, Vorteilen und Praxisleitfaden.

S

schutzgeist

3 min read
Testpyramide: Unit, Integration und E2E Tests im richtigen Verhältnis

Testpyramide: Unit, Integration und E2E Tests

Die Testpyramide ist ein einfaches, aber mächtiges Modell, um die richtige Verteilung automatisierter Tests zu planen. Sie zeigt, welche Testarten viele, schnelle und günstige Tests am unteren Ende benötigen und welche weniger, aber realitätsnahe Tests am oberen Ende sinnvoll sind.

In a Nutshell

  • Die Testpyramide besteht aus drei Ebenen: Unit Tests, Integration Tests und E2E Tests.
  • Je weiter unten, desto mehr Tests, schnelleres Feedback und niedrigere Kosten.
  • Je weiter oben, desto weniger Tests, aber höhere Abdeckung realer Nutzerabläufe.
  • Eine ausgewogene Mischung reduziert Kosten und steigert gleichzeitig die Qualität.

Kompakte Fachbeschreibung

Die Testpyramide ist ein Leitmodell für die Testautomatisierung. Sie empfiehlt, die meisten Tests als Unit Tests zu schreiben, die einzelne Komponenten isoliert prüfen. Darüber folgen Integration Tests, die das Zusammenspiel mehrerer Komponenten oder Schnittstellen testen. An der Spitze stehen E2E Tests, die komplette Anwenderabläufe über das gesamte System simulieren.

Die drei Ebenen

Unit Tests (Basis)

Unit Tests prüfen die kleinste testbare Einheit, typischerweise eine Funktion oder eine Klasse.

  • Vorteile: Schnell, isoliert, einfach zu warten, geben schnelles Feedback.
  • Werkzeuge: JUnit, NUnit, pytest, Jest, Mocha.
  • Ziel: Hohe Abdeckung der Geschäftslogik, Fehler früh erkennen.
  • Kosten: Gering, da keine externen Abhängigkeiten benötigt werden.

Integration Tests (Mitte)

Integration Tests prüfen, wie mehrere Komponenten oder Systeme zusammenarbeiten.

  • Vorteile: Finden Schnittstellenfehler, die Unit Tests nicht erkennen.
  • Werkzeuge: Testcontainers, Spring Boot Test, Supertest, REST Assured.
  • Ziel: Datenbanken, APIs, Messaging und externe Dienste korrekt integrieren.
  • Kosten: Mittel, da Testumgebungen und Daten benötigt werden.

E2E Tests (Spitze)

E2E Tests simulieren echte Nutzerabläufe über das komplette System.

  • Vorteile: Hohe Aussagekraft über reale Anwendbarkeit und Nutzererfahrung.
  • Werkzeuge: Playwright, Cypress, Selenium, Robot Framework.
  • Ziel: Kritische Geschäftsprozesse vom Login bis zur Bestellung validieren.
  • Kosten: Hoch, da sie langsam, instabil und wartungsaufwendig sein können.

Praxisbeispiel: Testpyramide für ein E-Commerce-System

Anzahl der Tests:
- Unit Tests: 500 (70 Prozent)
- Integration Tests: 150 (25 Prozent)
- E2E Tests: 50 (5 Prozent)

Beispiel für einen Bestellprozess:

Unit Tests:
- Preisberechnung mit Rabatt
- Validierung der E-Mail-Adresse
- Statusübergänge der Bestellung

Integration Tests:
- Speichern der Bestellung in der Datenbank
- Versand der Bestätigungsmail
- Abfrage des Lagerbestands über die API

E2E Tests:
- Kunde legt Artikel in den Warenkorb und schließt die Bestellung ab
- Admin ändert den Bestellstatus und Kunde sieht die Aktualisierung

Vorteile und Nachteile

Vorteile

  • Schnelles Feedback: Unit Tests laufen in Sekunden und zeigen Fehler sofort.
  • Niedrigere Kosten: Fehler früh zu finden ist deutlich günstiger.
  • Stabile Basis: Eine breite Basis an Unit Tests schützt vor Regressionen.
  • Klare Strategie: Teams haben eine gemeinsame Vorstellung vom Testverhältnis.

Nachteile

  • Falsche Balance: Zu viele E2E Tests führen zu langen Laufzeiten und instabilen Pipelines.
  • Vereinfachung: Die Pyramide ist ein Modell, nicht die Wahrheit für jedes Projekt.
  • Vernachlässigung: Unit Tests allein decken keine Schnittstellenprobleme ab.
  • Wartungsaufwand: Eine große Testbasis muss gepflegt werden.

Prüfungsrelevante Stichpunkte

  • Aufbau der Testpyramide mit Unit, Integration und E2E Tests.
  • Charakteristika jeder Ebene: Geschwindigkeit, Kosten, Abdeckung.
  • Ideale Verteilung der Tests im Verhältnis.
  • Unterschied zwischen isolierten und integrierten Tests.
  • Wichtige Werkzeuge pro Ebene nennen.

Typische Prüfungsfragen (mit Kurzantwort)

  1. Aus welchen drei Ebenen besteht die Testpyramide? Unit Tests, Integration Tests, E2E Tests.

  2. Welche Ebene hat die meisten Tests? Die Basis mit Unit Tests.

  3. Warum sind E2E Tests teuer? Sie sind langsam, benötigen eine komplette Umgebung und sind schwerer zu warten.

  4. Was prüfen Integration Tests? Das Zusammenspiel mehrerer Komponenten oder externer Systeme.

  5. Was ist ein Nachteil der Testpyramide? Sie ist vereinfacht und passt nicht in jedem Projekt eins zu eins.

Weiter im Software Testing Lernpfad

Der nächste Artikel im Software Testing Lernpfad behandelt Unit Tests Grundlagen — die Grundlagen von Unit Tests mit Beispielen und Best Practices.

Wichtigste Quellen

  1. https://martinfowler.com/bliki/TestPyramid.html
  2. https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
  3. https://en.wikipedia.org/wiki/Test_automation
Zurück zum DEV Blog
Share:

Ähnliche Beiträge