Was ist E2E-Testing? 

Das End-to-End-Testing ist eine Methode des Testens, bei der die fachlichen Geschäftsabläufe innerhalb einer Anwendung ganzheitliche 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 Akzeptanztests bezeichnet.  Oftmals ist ein Softwaresystemnetzwerk sehr komplex aufgebaut und von weiteren Subsystemen abhängig. Darauffolgend, wenn Fehlern nicht rechtzeitig behoben werden, ist das gesamte System vom 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 es 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 die langfristige Zufriedenheit sorgen. Dieser Art des Testens war bis vor wenigen Jahren noch populärer als Unit- und Integrationstests, da es sich über das gesamte Testzyklus vollzieht und mehr Problemen 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 entgangene 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 ungeeignete 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 in 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 

 

Das E2E-Testprozess besteht aus vier Schritte:  

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