End-to-End (E2E)-Testing aus Kundensicht
Jegliche Arten von Softwaretests sind seit Jahren ein fester Bestandteil der Softwareentwicklung, um Funktionen zu überprüfen und so Fehler auszumerzen. Nicht umsonst ist Testing ein fester Baustein im Softwarelebenszyklus. Es stellt sich daher die Frage:
Wie und mit welchem Test können Prozesse und Software aus Kundensicht sinnvoll getestet werden, um ein valides Ergebnis zu erhalten? Eine Lösung bieten End-to-End (E2E)-Tests. Was genau darunter zu verstehen ist und wie solche Tests mit Kundenfokus angewendet werden können, wird im Folgenden beantwortet.
Was ist E2E-Testing?
Was versteht man eigentlich unter E2E-Tests und wie sind sie in der Literatur definiert? In der Theorie gibt es mehrere Ansichten, was unter einem E2E-Test zu verstehen ist.
„E2E Testing ist eine Methode, mit der geprüft wird, ob der Ablauf einer Anwendung von Anfang bis Ende wie geplant funktioniert. Der Zweck der Durchführung von End-to-End-Tests besteht darin, Systemabhängigkeiten zu identifizieren und sicherzustellen, dass die richtigen Informationen zwischen verschiedenen Systemkomponenten und Systemen weitergegeben werden. Bei End-to-End-Tests wird sichergestellt, dass die integrierten Komponenten einer Anwendung wie erwartet funktionieren. Die gesamte Anwendung wird in einem realen Szenario getestet, wie zum Beispiel die Kommunikation mit der Datenbank, dem Netzwerk, der Hardware und anderen Anwendungen.“ 1
Des Weiteren sollte ein E2E-Test aus folgenden Schritten bestehen:
- Testplanung: Hier werden die Schlüsselaufgaben, sowie der Zeitplan und die Ressourcen für die Durchführung dieser Aufgaben festgelegt;
- Testentwurf: Hier wird ein E2E-Test entworfen, einschließlich Testspezifikationen, Testfallgenerierung, Risikoanalyse, Nutzungsanalyse und Testplanung;
- Testdurchführung: Hier werden die Testfälle ausgeführt und die Testergebnisse dokumentiert;
- Testauswertung: Hier werden die Testergebnisse analysiert, die Tests ausgewertet und zusätzliche Tests durchgeführt, wie z.B. die Retests und Regressionstests.2
Warum E2E-Testing?
Bei E2E-Tests können meist nicht alle Prozessschritte automatisiert getestet und abgesichert werden, da bei den Tests mit der gesamten Systemkette viele verschieden Systeme und Komponenten miteinbezogen werden. Wie bereits dargestellt, bieten E2E-Tests im Vergleich zu Unit-Tests zusätzlich einen manuellen und dadurch explorativeren Ansatz des Testing. Einerseits lassen sich so die Funktionalität und Qualität der gesamten Prozesskette aus Kundensicht testen, um Fehler aufzudecken und transparent zu machen. Andererseits lassen sich generell User-Experience (UX) und Benutzerfreundlichkeit besser testen, da das ganze System betrachtet wird. Da UX und Usability unter anderem einen direkten Einfluss auf den Erfolg eines digitalen Unternehmens nehmen3, ist es wichtig, die gesamte Systemkette vor der Produkteinführung zu testen.
E2E-Testing in Theorie und Praxis
Da wir für unsere Kunden E2E-Test durchführen, haben wir langjährige Erfahrungen sammeln können, inwiefern End-to-End-Testing in der Praxis von der Theorie abweicht. Daraus ergibt sich ein guter Vergleich zwischen Theorie und Praxis, der sich in den folgenden Punkten wiederspiegelt:
- Systemabhängigkeiten:
Wie in der Theorie erläutert, prüfen E2E-Tests verschiedenste Systemabhängigkeiten. Allerdings besteht in der Regel kein direkter Zugriff auf die Backend-Systeme unserer Kunden. Hier sind verschiedene Testarten möglich, z.B. aus Kundensicht mit größerem Fokus auf das Frontend, oder aus Systemsicht mit größerem Fokus auf das Backend. In Absprache mit den Kunden liegt der Fokus der Tests aber meist auf den Endkunden (d.h. Testing aus Kundensicht). Da bei der Durchführung des Testings die gesamte integrierte Teststrecke betracht wird, ist der Zugriff auf Schnittstellen einzelner Systeme zur Sicherstellung der Datenintegrität notwendig. - Kommunikation:
Häufig kommt es vor, dass E2E-Tests die Kommunikation zwischen den Stakeholdern der einzelnen Systeme initiieren und diese sich daraufhin besser abstimmen können. Das liegt i.d.R. daran, dass zwar die geplanten Features und Funktionen durch den zuständigen Fachbereich geprüft wurden, aber im Gesamtsystemkontext und damit in der Prozesskette trotzdem noch Fehler auftreten. - Automatisierung:
Testautomatisierung spielt in der Welt der Softwareentwicklung eine große Rolle. Auch im Bereich der E2E-Tests ist oft von Automatisierung die Rede. Hier verbirgt sich vermutlich das größte Unterscheidungsmerkmal zur Theorie. Unsere Tests sind nicht vollumfänglich automatisierbar, da wir in der Regel nur fertige Produkte testen und nicht selbst entwickeln. Unsere Tests werden an Fahrzeugen oder in Portalen durchgeführt, solche UI-Tests sind aus unserer Erfahrung nicht oder nur schwer automatisierbar.
Vor- und Nachteile von End-to-End-Testing
Vorteile | Nachteile |
|
|
Customer Journey als Maßstab für End-to-End-Testing
Wie schon erwähnt, wird bei E2E-Tests meist aus Endkundensicht getestet. In diesem kundenzentrischen Ansatz spielt der Begriff Customer Journey eine große Rolle – doch was versteht man darunter überhaupt?
Im klassischen Sinne: Die Customer Journey (Kundenreise) oder auch Users Journey genannt, ist ein Begriff aus dem Marketing und definiert die einzelnen Etappen, die ein Kunde durchläuft, bevor er sich für den Kauf eines Produktes entscheidet und darüber hinaus.
Der Weg des Konsumenten wird in unterschiedliche Phasen eingeteilt – von der ersten Information bis hin zur Kaufentscheidung. Eine Customer Journey umfasst alle Berührungspunkte (Touchpoints) eines Konsumenten mit einer Marke, einem Produkt oder einer Dienstleistung. Dieser Weg kann anhand einer Customer Journey Map festgehalten werden.
Die Customer Journey ist ein Modell-Ansatz, um ganzheitliche systematische Online–Marketing-Strategien nutzerzentriert zu entwickeln. Dabei kann die Kundenreise des Konsumenten je nach Produkt und dem nötigen Aufwand bei der Kaufentscheidung von Minuten, bis hin zu Wochen oder auch Monaten in Anspruch nehmen. Zusätzlich variiert auch die Anzahl der Touchpoints von einigen wenigen bis hin zu sehr vielen.4
E2E-Testing mit Kundenfokus am Beispiel Automotive
Allerdings wird unter Customer Journey bei doubleSlash der gesamte Endkundenprozess, den die Endkunden unserer Kunden durchlaufen, verstanden. Ein solcher Prozess kann bei einem Fahrzeughersteller, der seinen Kunden zusätzlich kaufbare Connect Dienste im Fahrzeug anbietet und dafür ein Endkundenportal betreibt, beispielsweise so aussehen:
In diesem stark vereinfachten Beispiel ist davon auszugehen, dass der Prozess reibungslos verläuft und der Kunde dadurch zufrieden ist. Da jedoch für ein erfolgreiches Ergebnis eines solchen Prozesses mehrere Systeme ineinandergreifen und funktionieren müssen, könnte der gleiche Prozess auch zum Beispiel so aussehen:
Genau daher ist es wichtig, diese Prozessketten vorab abzusichern und somit die Kundenzufriedenheit zu gewährleisten.
Welche Herausforderungen bringen E2E-Tests mit sich und welche Vorteile entstehen dadurch beim Kunden?
Selbstverständlich verlaufen Testfälle und Testdurchführungen nicht immer einwandfrei und wie in der Theorie geplant. Dies sind die aus unserer Erfahrung heraus häufigsten Herausforderungen beim E2E-Testing, die man berücksichtigen sollte. Diese können aber auch gleichzeitig ein Mehrwert für unsere Kunden sein:
Herausforderungen | Mehrwerte beim Kunden |
|
|
|
|
|
|
|
|
Fazit
Wie wir anhand dieses Blogbeitrags gezeigt haben, weicht Theorie und Praxis von End-to-End-Tests in unserem Fall teilweise ab, vor allem im Bereich Systemabhängigkeiten. Nichtsdestotrotz ist es immens wichtig, auch E2E-Tests aus Kundensicht in das Testrepertoire aufzunehmen, um Prozessketten sinnvoll abzusichern und so die Kundenzufriedenheit zu gewährleisten. Allerdings treten auch bei E2E-Tests Herausforderungen auf, wie Systemabhängigkeiten oder die Qualität der Testumgebung. Manche dieser Herausforderungen lassen sich nicht direkt durch E2E-Testing lösen, aber können durch größere Transparenz auch gleichzeitig einen Mehrwert für unsere Kunden bieten. Abschließend lässt sich festhalten, dass End-2-End-Testing aus Kundensicht zwar aufwendig ist, aber gleichzeitig einen sehr hohen Nutzen bietet, vor allem bei komplexen Systemen mit vielen Schnittstellen.
Quellen
1 https://www.techopedia.com/definition/7035/end-to-end-test ^
2 Bai, Xiaoying, et al. „Distributed end-to-end testing management.“ Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference. IEEE, 2001. ^
3 Niranjanamurthy, M., et al. „Research Study on Importance of Usability Testing/User Experience (UX) Testing.“ International Journal of Computer Science and Mobile Computing, IJCSMC 3.10 (2014): 78-85. ^
4 https://www.sem-deutschland.de/inbound-marketing-agentur/online-marketing-glossar/customer-journey/ ^