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.
Branchen-Newsletter
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.
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.
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:
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.
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.
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.
Eine der Branchen, die am meisten von E2E-Tests profitiert, ist der E-Commerce, der den gesamten Kaufprozess im Online-Marketing validieren kann.
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.
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.
Wir können die Best Practices für E2E-Tests in sieben allgemeine Bereiche unterteilen, von denen jeder das Zusammenspiel mehrerer separater Schritte beinhaltet.
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.
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.
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.
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.
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.
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.
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.
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.
Ein vollständig verwalteter, mandantenfähiger Service für die Entwicklung und Bereitstellung von Java-Anwendungen.
Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.
Die Entwicklung von Cloud-Anwendungen bedeutet: einmal erstellen, schnell iterieren und überall bereitstellen.