Zum Inhalt springen

Integrationstest

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 03.11.2026

Ein Integrationstest prüft mehrere Teile im Zusammenspiel, meist samt Datenbank. Er ruft einen ganzen Weg durch die Anwendung auf, etwa eine Adresse und die Antwort darauf.

Integrationstest

Ein Test, der mehrere Teile im Zusammenspiel prüft, meist samt Datenbank.
Beispiel: „Der Integrationstest rief das Formular auf und prüfte, ob der Eintrag danach in der Datenbank stand.“

In Laravel heißen diese Tests Feature-Tests und machen den größten Teil einer Testsuite aus; sie laufen gegen eine echte Datenbank, die vor jedem Test zurückgesetzt wird.

Abgrenzung zum Unit Testing: Dieses ersetzt alles Äußere durch Platzhalter. Der Integrationstest lässt die Teile wirklich zusammenarbeiten.

Was ein Integrationstest findet

Die Fehler in den Übergängen. Eine falsche Spalte im Abfrageergebnis, eine fehlende Berechtigung, eine Weiterleitung ins Leere, ein Formularfeld, das anders heißt als die Regel, die es prüft.

Genau diese Fehler sind in der Praxis die häufigen, weil jede einzelne Funktion für sich arbeitet und der Fehler erst im Zusammenspiel entsteht.

Was ein Integrationstest kostet

Laufzeit. Jeder Test braucht eine Datenbank in bekanntem Zustand, und das Zurücksetzen dauert; aus Millisekunden werden Zehntelsekunden, bei vielen Tests also Minuten statt Sekunden.

Dagegen helfen zwei Dinge: Transaktionen, die nach jedem Test zurückgerollt werden, statt die Datenbank neu aufzubauen, und das Aufteilen der Suite, damit mehrere Läufe gleichzeitig arbeiten, siehe Pipeline-Stage.

Wie ein Integrationstest zurückgesetzt wird

Über einen bekannten Anfangszustand. Entweder läuft jeder Test in einer Transaktion, die danach verworfen wird, oder die Datenbank wird je Lauf aus Migrationen und Fixtures neu aufgebaut.

Wichtig ist allein, dass kein Test von einem anderen abhängt. Tests, die in einer bestimmten Reihenfolge laufen müssen, sind die häufigste Ursache für Läufe, die mal durchgehen und mal nicht.

Siehe auch:

Unit Testing

Das Prüfen einzelner Funktionen für sich, ohne Datenbank und ohne Netz.

#Deployment & Versionierung

End-to-End-Test

Ein Test, der die Anwendung wie ein Nutzer durch den Browser bedient.

#Deployment & Versionierung

Automatisierter Test in der Pipeline

Ein Test, der bei jeder Änderung selbsttätig läuft und das Ausrollen anhalten kann.

#Deployment & Versionierung

MySQL

Das verbreitetste relationale Datenbanksystem im Webhosting, hinter WordPress wie hinter Laravel.

#Hosting & Webserver

Continuous Integration (CI)

Die Praxis, Änderungen mehrmals täglich zusammenzuführen und dabei prüfen zu lassen.

#Deployment & Versionierung

Testabdeckung (Code Coverage)

Der Anteil des Codes, der bei einem Testlauf tatsächlich ausgeführt wird.

#Deployment & Versionierung