End-to-End (E2E)-Testing aus Kundensicht

01.02.2021

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

Testing im Softwarelebenszyklus
Abbildung 1 – Testing im Softwarelebenszyklus, Quelle: Eigene Darstellung in Anlehnung an https://de.wikipedia.org/wiki/Software-Lebenszyklus#/media/Datei:Softwarelebenszyklus.png

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
  • Absicherung und damit Validierung des gesamten Prozesses und der Interaktion der Schnittstellen
  • Komplexe Testszenarien
  • Probleme mit Schnittstellen werden schnell ersichtlich
  • Qualität, Funktionalität, Usability und User-Experience können getestet werden
  • Großer Testumfang
  • Aufwendig, da meistens sehr komplex (Viele Schnittstellen und Systeme)
  • Im Vergleich zu Unit-Tests teuer
  • Ergebnis ist stark abhängig von der Güte der Testumgebung

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:

 

Prozessbeispiel „Kunde kauft Connected Car Services
Abbildung 2 – Prozessbeispiel „Kunde kauft Connected Car Services – alles funktioniert“, Quelle: Eigene Darstellung

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:

 

Negativbeispiel Kunde kauft Connected Car Services
Abbildung 3 – Prozessbeispiel „Kunde kauft Connected Car Services – Pitfalls“, Quelle: Eigene Darstellung

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
  • Systemverfügbarkeit:
    Da die Tests auf Testumgebungen stattfinden, sind manche Funktionen oder Schnittstellen zu Backendsystemen teilweise noch nicht richtig implementiert und/oder funktionieren nicht so wie gewollt. Mit den E2E-Tests soll die gesamte Prozesskette getestet werden, somit ist das Ergebnis der Tests sehr von der Verfügbarkeit der Backend-Systeme abhängig (z.B. für die Aktivierung von Diensten). Sobald ein Backendsystem nicht mehr erreichbar oder überlastet ist, scheitern diese Aktivierungen. Daher resultiert diese Abhängigkeit häufig in Verzögerungen der Testdurchführung.
    Des Weiteren werden auf Testumgebungen meist Updates getestet/deployed. Je nach Reifegrad kann das ebenfalls zu Systemausfällen führen und damit auch E2E-Tests negativ beeinflussen oder temporär unmöglich machen.
  • Ermittlung von schwerwiegenden Fehlern:
    Fehler fallen i.d.R. schnell auf und können direkt gemeldet werden. Somit werden auch Schwachstellen im Zusammenspiel von Schnittstellen transparent ersichtlich.
  • Kommunikation:
    Gleichermaßen wichtig und herausfordernd ist es, die Kommunikation zwischen Fachabteilungen herzustellen. Oft testet jede Fachabteilung zwar die Funktionalität ihrer Systeme, jedoch nicht in Kombination mit weiteren angebundenen Systemen oder lediglich über Schnittstellenaufrufe ohne Frontend. Das führt dazu, dass häufig Fehler auftreten, die erst in der kompletten Prozesskette entstehen. Daraus resultiert die Erstellung vieler Fehlertickets.
  • Vermittlung von Fachabteilungen:
    Durch E2E-Tests werden Entwicklungen zum Teil transparenter, da die Tests ein eindeutiges Ergebnis darstellen und damit als Kommunikationsbasis dienen können. Gleichzeitig wird so eine bessere Abstimmung zwischen den verschiedenen Stakeholdern der unterschiedlichen Systeme ermöglicht.
  • Anforderungen / Customer Journey:
    Hier ist die größte Herausforderung, dass Soll-Prozesse (v.a. Soll-Customer Journeys) meist erst noch definiert und erstellt werden müssen. Diese Soll-Prozesse sind essenziell für das Testing, da diese als Bewertungsgrundlage herangezogen werden.
  • Validierung von Prozessketten:
    Erfolgreiche Testdurchführung bedeutet, dass der Prozess bereit für eine detaillierte Qualitätsabsicherung ist.
  • Qualität der Testumgebung:
    Die Qualität der Testumgebung ist natürlich ein wichtiger Faktor für das Ergebnis der E2E-Tests. Dazu zählt ebenfalls die Qualität und Verfügbarkeit der Testdaten und des Testequipments. Ist die Qualität oder Verfügbarkeit nicht gegeben, hat das Auswirkungen auf die Aussagekraft der Ergebnisse, z.B. durch falsche Testdaten oder fehlerhaftes Testequipment.
  • Verbesserung der Qualität:
    Effizienteres Testing und sinnvolle Absicherung für nachfolgende Qualitätssicherung, da die Kinderkrankheiten schon vorher identifiziert wurden.


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.

 

Mehr zu Testing und DevOps


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/ ^

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*