Integrationstest prüft, ob mehrere Komponenten einer Software korrekt zusammenarbeiten. Während der Unit-Test jede Einheit isoliert betrachtet, testet der Integrationstest die Schnittstellen dazwischen: Datenbankzugriffe, REST-APIs, Message-Queues oder den Aufruf anderer Module.

Was Integrationstests finden

  • Schnittstellenfehler: falsche Parameterreihenfolge, abweichende Datentypen oder veraltete Verträge zwischen Komponenten.
  • Integrationsfehler: Probleme mit dem Datenbankschema, fehlende Konfiguration, ungünstige Reihenfolge bei Initialisierung.
  • Umgebungsfehler: Unterschiede zwischen Entwicklung, Test und Produktion (z. B. Zeichensätze, Zeitzonen).

In der Testpyramide bilden Integrationstests die mittlere Schicht: weniger zahlreich als Unit-Tests, dafür näher an der Realität — und entsprechend langsamer, weil echte Datenbanken oder Container beteiligt sein können.

Strategien

  • Big Bang: Alle Module werden auf einmal zusammengeschaltet und getestet — bei kleinen Systemen praktikabel, Fehler sind aber schwerer zu lokalisieren.
  • Inkrementell: Module werden schrittweise integriert (Top-down oder Bottom-up), Fehler lassen sich gezielt einer Integrationsstufe zuordnen.
  • Testcontainers: Docker-Container starten im Test eine echte Datenbank oder einen echten Dienst — verbreiteter Kompromiss zwischen Realitätstreue und Reproduzierbarkeit.

Abgrenzung

Fehler innerhalb einer einzelnen Komponente bleibt Sache des Unit-Tests. Ob eine Änderung bereits behobene Fehler wieder einführte, deckt der Regressionstest auf; den kompletten Ablauf durch die Benutzeroberfläche prüft der End-to-End-Test.

Verwandte Grundlagen: Testen (Überblick), CI/CD, Pipeline, Bug.