Ein End-to-End-Test bedient die Anwendung wie ein Nutzer durch den Browser: Seite öffnen, Felder füllen, klicken, Ergebnis lesen. Geprüft wird damit die ganze Kette von der Oberfläche bis zur Datenbank.
- End-to-End-Test
Ein Test, der die Anwendung wie ein Nutzer durch den Browser bedient.
Beispiel: „Der End-to-End-Test legte ein Produkt in den Korb und lief bis zur Bestätigungsseite.“Kurz E2E-Test. Gesteuert wird ein echter Browser, bei Pest über die Browser-Tests, daneben verbreitet sind Playwright und Cypress.
Abgrenzung zum Smoke Testing: Dieses prüft nach dem Ausrollen, ob Seiten überhaupt antworten. Ein E2E-Test spielt einen ganzen Vorgang durch.
Was ein End-to-End-Test prüft
Die Wege, an denen Geld oder Vertrauen hängt: Anmeldung, Formular, Kasse, Suche. Dabei läuft auch das JavaScript mit, und genau dort liegen Fehler, die kein Test auf dem Server findet.
Als Nebenwirkung zeigt ein solcher Lauf Fehler in der Konsole des Browsers. Ein Skript, das auf einer Seite stolpert, fällt sonst erst auf, wenn ein Kunde anruft.
Warum ein End-to-End-Test langsam und anfällig ist
Weil er auf echte Zeit angewiesen ist. Jeder Klick wartet darauf, dass die Seite reagiert, und jede Wartezeit ist geschätzt; wird eine Antwort einmal langsamer, fällt der Test durch, ohne dass etwas kaputt ist.
Deshalb gehören wenige solche Tests in die Pipeline und nicht hunderte. Ein wackliger Test verbraucht das Vertrauen in alle anderen, siehe Automatisierter Test in der Pipeline.
Welche Wege ein End-to-End-Test abdecken sollte
Die fünf bis zehn, die den Umsatz tragen. Bei einem Shop sind das Suche, Produktseite, Korb, Kasse und Bestätigung; bei einer Website Kontaktformular, Anmeldung und ein Weg durch den Seitenbaum.
Alles darüber hinaus ist besser als Integrationstest gebaut: schneller, stabiler und mit einer Fehlermeldung, die auf die Stelle zeigt.