7 Best Practices für End-to-End-Tests (E2E)

Zwei Programmierer blicken auf Bildschirme

Autoren

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

End-to-End-Tests (E2E) untersuchen die Workflows von Anwendungen von Anfang bis Ende, um die Gesamtfunktionalität zu bestätigen. Zu den Best Practices für E2E-Tests gehören die sorgfältige Definition des Umfangs, die Verwendung realer Szenarien, die effektive Erstellung von Tests, die funktionsübergreifende Zusammenarbeit und die vollständige Nutzung der Möglichkeiten der Automatisierung.

Von allen Arten von Softwaretests bietet E2E in vielerlei Hinsicht die umfassendste Testmethode. Es gibt nicht nur eine begrenzte „Ja“- oder „Nein“-Antwort (wie einige „Black Box“-Formen von Tests) auf die Kernfrage „Funktioniert die Anwendung wie beabsichtigt?“

E2E bietet eine vollständigere und differenziertere Antwort auf diese Kernfrage, indem es ein umfassenderes Bild der Anwendungsleistung zeichnet.

Diese zusätzliche Perspektive hat jedoch ihren Preis. Genau das, was E2E-Tests so umfassend und wertvoll macht, macht sie auch langsamer und umständlicher als andere Arten von Tests. E2E-Tests benötigen einfach mehr Zeit, um ihre Testergebnisse zu erzielen. Gleichzeitig erfordert es mehr Beteiligung und Geduld seitens derjenigen, die den Prozess überwachen.

Umso wichtiger ist es, Best Practices für E2E-Tests zu befolgen. Durch ihre Implementierung können Sie dazu beitragen, die übermäßigen Anforderungen von E2E-Tests zu verringern, die deren Einsatz oft bremsen. Die Bedenken beschränken sich auch nicht auf die Geschwindigkeit. Die hier beschriebenen Best Practices können die Aussagekraft der durch E2E-Tests gewonnenen Daten erhöhen und so den gesamten Testprozess letztlich wertvoller machen.

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben sich angemeldet.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Die Vorteile von E2E-Tests

Bevor wir die optimalen Methoden für Ihre E2E-Tests erörtern, sollten wir uns zunächst vergewissern, dass diese Art von Tests Ihren Bedürfnissen entspricht, indem wir ihre wichtigsten Vorteile überprüfen. E2E bietet bestimmte Vorteile und hilft Benutzern:

  • Die allgemeine Zuverlässigkeit zu erhöhen: E2E-Tests liefern die notwendigen Antworten auf die Kernfragen der Softwarequalität und Anwendungsleistung.
  • Anwendungsrisiken zu verringern: Der E2E-Testprozess hilft Ihnen, potenzielle Schwachstellen zu erkennen und diese zu beheben.
  • Zeit und Geld zu sparen: Durch die Behebung von Fehlern zu einem früheren Zeitpunkt im Softwareentwicklungszyklus (SDLC) erzielen Tester Kosten- und Zeiteinsparungen. (Analogie: Wenn Sie eine unvermeidliche Autoreparatur aufschieben, verschlechtern sich die Bremsen Ihres Autos immer weiter und erfordern schließlich eine viel teurere Reparatur, bei der auch die Bremsscheiben ersetzt werden müssen).
  • Bei der Entwicklung einer besseren UX: Unternehmen erkennen die Benutzerfreundlichkeit (User Experience, UX) inzwischen als zentralen Bestandteil der Softwareentwicklung an. E2E-Tests sind auf UX-Probleme ausgerichtet, da sie darauf abzielen, Workflows zu validieren und zu prüfen, wie die realen Benutzer einer Anwendung die Benutzeroberflächen (UIs) persönlich wahrnehmen.
  • Die Geschäftsfunktionalität zu bestätigen: Mehrere Schlüsselvariablen beeinflussen die Leistung der Anwendung. Eine dieser Variablen ist die Funktionalität ganzer Geschäftsprozesse, die dem Betrieb der Anwendung zugrundeliegen. E2E-Tests können sicherstellen, dass sich die Anwendung in Übereinstimmung mit den für sie geltenden Geschäftsbetriebsstandards verhält.
  • Bei der Freigabe von Software: Wenn Tester erfolgreich E2E-Tests durchführen – die umfassendste Form von Softwaretests, die es gibt –, schafft dies in der Regel zusätzliches Vertrauen bei den Entwicklern der Software. Sie wissen, dass sie neue Anwendungen sicherer veröffentlichen können, da die Software nun gründlichen und ständigen Tests unterzogen wird.
Anwendungsentwicklung

Steigen Sie ein: Entwicklung von Enterprise-Anwendungen in der Cloud

In diesem Video erläutert Dr. Peter Haumer, wie die moderne Entwicklung von Unternehmensanwendungen in der Hybrid Cloud heute aussieht, indem er verschiedene Komponenten und Praktiken demonstriert, darunter IBM Z Open Editor, IBM Wazi und Zowe. 

Welche Branchen eignen sich gut für E2E-Tests?

Zwar ist nicht jede Art von Unternehmen ideal für E2E-Tests geeignet, aber die hier aufgeführten Branchen haben bewiesen, dass sie es auf jeden Fall sind.

Einige von ihnen befassen sich mit einigen der wichtigsten und am meisten gehüteten Informationen, die heute existieren.

Gesundheitswesen

Prüfer müssen mit den sensiblen Daten von Patienten besonders vorsichtig umgehen. E2E-Tests helfen Gesundheitsdienstleistern dabei, genau das zu tun, indem sie sicherstellen, dass die Patientendaten sicher und unter Einhaltung aller gesetzlichen Bestimmungen verwendet werden.

Bankwesen und Finanzwirtschaft

Die wichtigsten operativen Komponenten von Finanztechnologien (Fintechs), wie z. B. Online-Rechnungszahlungen, Benutzeranmeldungsverfahren und elektronische Überweisungen, sorgen dafür, dass sich diese Unternehmen weiterhin an E2E-Tests wenden.

E-Commerce

Eine der Branchen, die am meisten von E2E-Tests profitiert, ist der E-Commerce, der den gesamten Kaufprozess im Online-Marketing validieren kann.

Soziale Medien

Mit E2E-Tests können die Tester Funktionen wie Benutzerbenachrichtigungen, die gemeinsame Nutzung von Inhalten und die Benutzerregistrierung an den Eingängen der Website bewerten.

Cloud-Anwendungen

Cloudbasierte Anwendungen müssen auf verschiedenen Diensten laufen und dabei ein konsistentes Niveau an Anzeigequalität und Benutzerinteraktion beibehalten. Mit E2E-Tests können Cloud-Apps auf verschiedenen Services ausgeführt werden.

7 Best Practices für E2E-Tests

Wir können die Best Practices für E2E-Tests in sieben allgemeine Bereiche unterteilen, von denen jeder das Zusammenspiel mehrerer separater Schritte beinhaltet.

1. Berücksichtigung von Anwendung und Kernprozessen

Dieser erste Schritt ist in erster Linie konzeptionell und beinhaltet eine intensive Testplanung. Denken Sie daran, dass es beim E2E-Testing vor allem um die Benutzererfahrung geht, und das ist der logische Ausgangspunkt für diesen ganzen Testprozess.

Versetzen Sie sich in die Lage eines potenziellen Benutzers dieser Anwendung und denken Sie aus der Perspektive des Benutzers. Was versprechen sie sich von ihrer Benutzererfahrung? Ist es wahrscheinlich, dass es große Unterschiede zwischen den Erwartungen der einzelnen Benutzer gibt? Welches sind die wichtigsten und am häufigsten gewählten User Journeys?

Wenn Sie solche Fragen stellen, können Sie die Erwartungen der Benutzer und die normalen Funktionen und Workflows herausfinden, die mit dieser Anwendung verbunden sein werden.

Bestimmen Sie zunächst, welche Workflows am wichtigsten sind. Dieser Schritt umfasst häufig genutzte Prozesse wie die Anmeldung, den Checkout (bei E-Commerce-Anwendungen) und wichtige Integrationen. Diese Prozesse spielen die größte Rolle bei der Gewährleistung der Systemstabilität und gelten als entscheidend für die betriebliche Integrität.

In diesem Bereich der E2E-Tests ist es eine gute Praxis, die schlimmsten Benutzerszenarien für diese App zu berücksichtigen. Sie müssen vorhersagen, wo ein systemischer App-Ausfall die schlimmsten Auswirkungen und Unterbrechungen für die Benutzer haben könnte. Tester verwenden häufig risikobasierte Tests, um zu entscheiden, welche neuen Funktionen zur App hinzugefügt werden können, um die Leistung zu optimieren und potenzielle Probleme zu vermeiden.

2. Erstellen, dokumentieren und verwalten Sie perfekte Testfälle

Nun, vielleicht ist „perfekt“ nicht das richtige Wort. Perfektion ist hier vielleicht nicht wirklich erreichbar. Aber Sie können die bestmöglichen Testfälle erstellen, und das ist von größter Bedeutung, denn Testfälle sind das A und O beim E2E-Testen. Testfälle sind das Tool der Implementierung, das E2E-Tests erst möglich macht. Daher ist ihr richtiges Design entscheidend.

Mit dem, was Sie in Schritt 1 über die Bedürfnisse und Anforderungen der Benutzer herausgefunden haben, beginnen Sie mit der Entwicklung von Testfällen. Kluge Tester streben nach Gründlichkeit und versuchen, jede wahrscheinliche Benutzerinteraktion zu erfassen, die während des normalen Anwendungsbetriebs auftreten kann.

Die Tester formulieren die Testszenarien, die die verschiedenen Nutzungsszenarien für alle zugehörigen Einzelkomponenten wie Frontend, Backend, Datenbanken und Anwendungsprogrammierschnittstellen (APIs) umreißen. Wenn möglich, sollten komplexere Workflows enger gefasst werden, damit die Testfälle leichter zu handhaben und auszuführen sind.

Die Verwaltung von Testfällen ist ähnlich wichtig, was von entscheidender Bedeutung ist, da Sie es möglicherweise mit mehreren Testfällen zu tun haben. Um den Überblick zu behalten, müssen Sie alle Ihre Testfälle (und die Testsuiten, in denen sie gespeichert sind) sorgfältig verwalten.

Das bedeutet, dass die Testfälle leicht identifizierbar bleiben und dass ihre Titel eindeutig verstanden werden können. Ebenso müssen etwaige Voraussetzungen artikuliert werden. Testfälle sollten die erforderlichen Ressourcen für die Durchführung dieses Tests sowie die erwarteten Ergebnisse dieses Tests angeben.

3. Entwickeln Sie eine Testumgebung, die für Tests geeignet ist

Das mag wie eine Doppeldeutigkeit klingen, aber denken Sie einen Moment darüber nach. So wichtig Schritt 2 auch ist, ohne eine sichere und leistungsfähige Testumgebung für den Testfall ist er überflüssig. Die Testumgebung muss der Produktionsumgebung, in der die Anwendung in der Regel eingesetzt wird, sehr ähnlich sein und sich hervorragend zum Testen eignen.

Daher sollte die Testumgebung ähnliche Arten von Dienstkonfigurationen, Datenbankschemata und API-Schlüsseln enthalten, die bei API-Tests verwendet werden. Ebenso sollten die Testumgebungen über alle notwendigen Komponenten verfügen, ob sie nun hardware-, software- oder netzwerkbezogen sind. Wenn es sich in der Produktionsumgebung befindet, sollte es auch in die Testumgebung integriert werden.

Nun ein Wort zu den Daten, die Sie in den Testfällen verwenden. Es ist leicht, in der Testphase so weit zu kommen und zu denken, dass Sie alle Eventualitäten abgedeckt haben. Wenn Sie keine Testdaten einbeziehen, die die Stabilität nachweisen und sich dem annähern, was Sie unter realen Bedingungen antreffen könnten, ist dies möglicherweise nicht der Fall.

Um qualitativ hochwertige Daten zu erhalten, können Sie möglicherweise frühere Produktionsdaten wiederverwenden, deren sensible Daten entfernt wurden. Abgesehen davon sind synthetisch generierte Daten, die Datenmerkmale imitieren, eine weitere Möglichkeit.

Und schließlich können nach Abschluss der Tests die etablierten Teardown-Mechanismen verwendet werden, damit Daten gesammelt und analysiert werden können und die erneuten Tests mit neuen Einrichtungsmaßnahmen beginnen können.

4. Beschleunigen Sie das Testen durch Automatisierung

Jetzt, wo Sie sich die Mühe gemacht haben, wertvolle Testfälle zu entwickeln, möchten Sie in der Lage sein, diese immer wieder aufzurufen und zu verwenden.

Hier kommt die Automatisierung ins Spiel, die die routinemäßige Ausführung mehrerer Testfälle verwaltet und an eine beliebige Anzahl programmierter Frameworks delegiert.

Die Testautomatisierung erweist sich vor allem bei Regressionstests als besonders nützlich, da die Automatisierung im Vergleich zu manuellen Tests eine erhebliche Zeitersparnis und eine höhere Produktivität ermöglicht. E2E-Test-Frameworks wie Selenium können Webanwendungen automatisieren, während Frameworks wie Appium die Testausführung von mobilen Apps rationalisieren und automatisieren.

Es gibt auch Tools zur Testautomatisierung (wie z. B. Katalon), die Low-Code-Technologie und KI-gestützte Funktionen nutzen, um einfache Tests und eine ebenso einfache Testpflege zu ermöglichen.

Um die Leistungsfähigkeit der E2E-Tests eines Unternehmens zu erhöhen, versuchen vorausschauende Unternehmen, die Testautomatisierung in die Pipelines für kontinuierliche Integration und konstante Lieferung (CI/CD) zu integrieren. Wenn solche Unternehmen E2E-Tests zu einem regelmäßigen Bestandteil ihrer Prozesse machen, profitieren sie von der automatischen Ausführung von Tests, effizienteren Tests und der frühzeitigen Erkennung von sich abzeichnenden Leistungsproblemen.

5. Integrieren Sie kontinuierliche Testverfahren

Es wäre beruhigend zu glauben, dass E2E-Tests eine isolierte Angelegenheit sind, vor allem wenn man bedenkt, wie aufwändig und zeitraubend sie normalerweise sind. Aber das würde nicht der Realität entsprechen: Tester ziehen nur dann maximalen Nutzen aus E2E-Tests, wenn diese zu einem regelmäßig stattfindenden Prozess werden.

Tests und die dazugehörigen Metriken müssen ständig überwacht und überprüft werden, um sicherzustellen, dass sie im Laufe der Zeit relevant bleiben. Situationen können sich drastisch und plötzlich ändern, und das Benutzerverhalten unterliegt denselben Launen. Testfälle, die einst von großem Nutzen waren, können schlaff werden und keinen Nutzen mehr bringen. Solche Tests erfordern sofortige Aufmerksamkeit, damit sie nicht zu ungenauen Testergebnissen führen oder die damit verbundenen Wartungskosten in die Höhe treiben können.

Die Teststrategie, die ein Unternehmen verfolgt, muss verfolgte Prozesse beinhalten. Diese Methode bedeutet, dass Tester herausfinden können, ob Testfälle noch relevant und lohnenswert sind oder ob sie durch neue Testfälle ersetzt werden müssen.

6. Verwenden Sie E2E-Tests, aber ignorieren Sie andere Tests nicht

Zugegeben, es gibt Dinge, die E2E-Tests leisten können, die andere Formen von Softwaretests nicht können. Diese anderen Optionen können die Qualität der Benutzererfahrung, die Anwendung erzeugt, und die Bewertung der gesamten Leistung der Anwendung von Anfang bis Ende umfassen.

Aber so wertvoll E2E-Tests auch sind, sie sollten nicht die gesamte Teststrategie eines Unternehmens ausmachen. Auch andere Tests sind auf ihre Weise wertvoll, und Sie sollten Tests anderer Arten durchführen.

Komponententests und Integration Testing sind sehr nützlich, um viele Fehler mit geringer Bedeutung zu behandeln. Und da sie nicht so groß sind wie E2E-Tests, können sie in der Regel schnell und mit weniger Ressourcen durchgeführt werden.

Es gibt noch einen weiteren Grund für den Einsatz von Unit Testing und Integration Testing. Wenn Sie mit Edge-Fällen und Ausnahmetests arbeiten (d. h. mit Fällen, die Merkmale aufweisen, die über den normalen Betrieb hinausgehen), kann der Ansatz ein anderer sein. In diesen Fällen sind die Testverfahren von Komponententests oder Integration Tests besser geeignet als E2E-Tests.

7. Unterstützen Sie die Teamfähigkeit durch Kommunikation

Wir haben darüber gesprochen, wie wichtig es ist, dass Sie regelmäßige E2E-Tests als Teil der normalen Anwendungshygiene pflegen. Ein weiterer wichtiger Aspekt von E2E-Tests ist, dass sie nicht nur von einem Mitarbeiter durchgeführt werden. Je mehr Teammitglieder zumindest am Rande beteiligt sind, desto besser für die allgemeine Gesundheit des Testprozesses.

Sie werden also ein Gefühl der Zusammenarbeit zwischen den Teammitgliedern fördern wollen, ganz gleich, ob sie in Entwicklungsteams, in der Qualitätssicherung oder in anderen Geschäftsbereichen arbeiten. Ein wesentlicher Bestandteil dieses Prozesses ist die Unterstützung einer verbesserten Kommunikation, damit alle Teammitglieder und andere Stakeholder über wesentliche Fakten oder Entwicklungen im Zusammenhang mit der Testabdeckung informiert sind.

Aus demselben Grund sollten Tester die von ihnen entwickelten Testfälle dokumentieren und dabei die Art des jeweiligen Tests und die damit verbundenen Probleme sorgfältig notieren. Diese Transparenz und Klarheit trägt wesentlich dazu bei, die Ziele des Teams in Bezug auf E2E-Tests zu fördern.

Denken Sie immer an Ihre Zielgruppe

Es wurde bereits gesagt (wie in diesem Artikel), aber es lohnt sich, zu wiederholen. Um ein effektives E2E-Testing durchzuführen, müssen Sie sich immer wieder vor Augen führen, welche Zielgruppe Sie bedienen.

Versuchen Sie wirklich, sich in den Kopf des Benutzers hineinzuversetzen. Was erwarten sie von der Anwendung? Wie könnte ein Benutzer mit dieser App interagieren? Das müssen Sie selbst herausfinden, und Sie müssen bei der Entwicklung von Testfällen die Denkweise der Benutzer beibehalten.

Außerdem ist es klug, die Anwendung in verschiedenen Browsern zu testen, um sicherzustellen, dass die Anwendung unabhängig vom verwendeten Browser reibungslos funktioniert. Dieser Schritt ist heutzutage obligatorisch, da Menschen verschiedene Browser und Erfahrungen verwenden.

Ein Hauptziel von E2E-Tests ist es, zu bestätigen, dass Apps großartig funktionieren, unabhängig davon, wo oder wie sie verwendet werden. E2E-Tests sind sowohl breit gefächert als auch umfassend genug, um die umfangreichen und aufwändigen Systemtests durchzuführen, die zur Gewährleistung der plattformübergreifenden Kompatibilität erforderlich sind.

Um ein fehlerfreies Benutzererlebnis zu schaffen, bedarf es einer erstaunlichen Ausführung. Glücklicherweise sind E2E-Tests der Unterstützung dieser komplizierten Aufgabe mehr als gewachsen.

Weiterführende Lösungen
IBM Enterprise Application Service für Java

Ein vollständig verwalteter, mandantenfähiger Service für die Entwicklung und Bereitstellung von Java-Anwendungen.

Java-Apps erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Services für die Entwicklung von Unternehmensanwendungen

Die Entwicklung von Cloud-Anwendungen bedeutet: einmal erstellen, schnell iterieren und überall bereitstellen.

Services für die Anwendungsentwicklung
Machen Sie den nächsten Schritt

IBM Cloud Application Development Consulting Services bieten fachkundige Beratung und innovative Lösungen zur Optimierung Ihrer Cloud-Strategie. Arbeiten Sie mit den Cloud- und Entwicklungsexperten von IBM zusammen, um Ihre Anwendungen zu modernisieren, skalieren und beschleunigen und so transformative Ergebnisse für Ihr Unternehmen zu erzielen.

Mehr zu Services zur Anwendungsentwicklung Erste kostenlose Schritte beim Erstellen auf IBM Cloud