Was ist E2E-Testing? 

Das End-to-End-Testing ist eine Methode des Testens, bei der die fachlichen Geschäftsabläufe innerhalb einer Anwendung ganzheitlich verifiziert werden. Bei klassischen Client-Server Applikationen handelt es sich in der Regel um Prüfvorgänge als komplette Round-Trips vom Anfang (Frontend) bis zum Ende (Backend) und zurück zum Frontend. Das Ziel dahinter ist die Sicherung des erwarteten Anwenderflusses und die rechtzeitige Entdeckung von Fehlern aus der Benutzersicht vor dem eigentlichen Release. Aus diesem Grund wird diese Testart auch als Akzeptanztest bezeichnet.  Oftmals ist ein Softwaresystemnetzwerk sehr komplex aufgebaut und von weiteren Subsystemen abhängig. Darauffolgend, wenn Fehler nicht rechtzeitig behoben werden, ist das gesamte System von Abstürzen oder Fehlverhalten bedroht. Mit End-to-End-Tests lassen sich solche Risiken vermeiden, indem ein reales Anwendungsszenario simuliert wird und das zu testende System mit ihren Sub-Elementen auf Integrierbarkeit und korrektes Zusammenspiel geprüft werden.  

  

Warum ist E2E-Testing wichtig?  

Der größte Vorteil dieser Technik ist die Simulation von User Experience in einer wirklichkeitsgetreuen Umgebung, weil auf diese Weise mögliche Herausforderungen bei den Benutzern festgestellt werden können. So können Lösungen implementiert werden, die die Qualität der Benutzererfahrung erhöhen und für langfristige Zufriedenheit sorgen. Diese Art des Testens war bis vor wenigen Jahren noch populärer als Unit- und Integrationstests, da sie sich über den gesamten Testzyklus vollzieht und mehr Probleme entdeckt und vorbeugt. Darüber hinaus konnten diese Tests oft durch Fachtester und Business Vertreter durchgeführt werden, die keine besonderen technischen Skills benötigten und mit dem offiziellen visuellen Frontend der Applikation nachvollziehbar hantieren konnten.  

Darüber hinaus bieten End-to-End-Tests weiterVorteile in den Software-Entwicklungsprojekten an  

  • Tester können die bis dahin entgangenen Fehler durch die realitätsnahe Integrationsumgebung auffinden 
  • Business Vertreter und Early-Adopter-Kunden können im Rahmen der End-To-End Tests das fachliche Nutzen der Neuentwicklungen überprüfen 
  • Entwickler können das Testen von komplexen Geschäftsabläufen auf End-to-End Tests verlagern (das ist allerdings ein Anti-Pattern in agilen Projekten!) 

Auf der anderen Seite bringen End-to-End Tests auch etliche Nachteile mit sich: 

  • End-to-End Tests als einzige Testmethode sind absolut ungeeignet für agile Projekte, da sie erst auf vollständiger und funktionsfähiger Testumgebung ausgeführt werden können. Dadurch werden die einfachen Fehler viel zu spät im Entwicklungszyklus erkannt.
  • End-to-End Tests sind i.d.R. deutlich instabiler und langsamer als Unit- und Integrationstests und führen daher oft zu unerwünschten “False Negatives”. 
  • End-to-End Tests setzen prinzipbedingt eine vollständige Testumgebung mit dazugehörigen abgestimmten Testdaten voraus, während Unit- und Integrationstests entweder gar keine oder nur partielle Testumgebungs- und Testdatenabhängigkeiten aufweisen. 

 

 End-to-End Testzyklus  

E2E-Testzyklus

Quelle: https://www.german-testing-board.info/wp-content/uploads/2016/08/crowdtesting_simon.pdf 

 

Der E2E-Testprozess besteht aus vier Schritten:  

Testplanung  

Analyse der vorhandenen Ressourcen, Zusammenstellen eines Zeitplanes, Definition der Schlüsselaufgaben  

Testdesign 

Spezifikation und Generierung von Tests, Risiko- und Nutzungsanalyse   

Testausführung 

Durchführung von Testfällen und Dokumentation der Ergebnisse  

Analyse der Ergebnisse und Abschluss 

Bewertung der Testergebnisse  

 

 Verwandte Begriffe