Meine Antwort? Vielleicht, wahrscheinlich nicht .
EOE-Tests sind gut, wenn sie sehr einfach sind. Wenn Sie grundlegende Szenarien abdecken möchten, können Sie mit EOE-Tests einige Vorteile erzielen. Wenn Sie jedoch eine wirklich komplexe und große Anwendung haben (geschäftskritisch oder nicht), ist die Wartung dieser EOE-Tests teuer und Sie müssen Ihr Szenario kennen, um zu bewerten, ob es sich lohnt.
Vor einigen Jahren diskutierte der Google Testing Blog dieses Thema. Ich kann nur dem Autor zustimmen. Ein guter Test muss schnell und zuverlässig sein und Fehler isolieren. Diese Funktionen können die EOE-Tests nicht für Sie bereitstellen.
Ich habe an einer Anwendung gearbeitet, die mehr als 12 Stunden End-to-End-Tests enthält, die viele Szenarien abdecken. Schließlich gelang es uns, diese Tests auf verschiedene Maschinen zu verteilen, den Start, die Ausführung und das Ende der Tests zu steuern und die Ergebnisse zu sammeln und zusammenzuführen. Die getestete Anwendung war eine Monolith-Anwendung (was einfacher zu installieren und auszuführen ist) und war ein Albtraum, um die Tests aufrechtzuerhalten.
Die meiste Zeit haben wir die Tests beibehalten, anstatt Fehler aus ihren Ergebnissen zu erkennen. Das Erkennen des Ursprungs eines Fehlers bei einem End-to-End-Test nimmt viel Zeit in Anspruch. Wir haben uns auch mit vielen "falsch-negativen" Tests und wenig Zeit befasst, um das Problem zu verstehen und zu beheben: Probleme beim Laden von Java-Applets, erwartetes Element, das nicht auf der Seite gefunden wurde (plus andere Probleme bezüglich der Automatisierungsgeschwindigkeit), pflegen den Abfragecode, der werden nur für den Datenbankspeichertest verwendet (da die ursprüngliche Abfrage datenbankspezifischen Code verwendet) usw.
All dies erfordert Menschen, die in Betrieb bleiben. Am Ende löschen wir einige EOE-Tests und ersetzen sie durch viele Unit- / Integrationstests.
Mein konservativer Rat ist also, die Testpyramide von Google zu verwenden:
Als gute erste Vermutung schlägt Google häufig eine Aufteilung von 70/20/10 vor: 70% Komponententests, 20% Integrationstests und 10% End-to-End-Tests. Die genaue Mischung ist für jedes Team unterschiedlich, aber im Allgemeinen sollte diese Pyramidenform beibehalten werden.