Was ist End-to-End Testing: E2E Testing Framework mit Beispielen
End-to-End Testing ist eine Software-Testmethodik, um einen Anwendungsablauf von Anfang bis Ende zu testen. Der Zweck von End-to-End-Tests besteht darin, das reale Benutzerszenario zu simulieren und das zu testende System und seine Komponenten auf Integration und Datenintegrität zu überprüfen.
Niemand möchte für seine Fehler und seine Nachlässigkeit bekannt sein, und das gilt auch für die Tester. Wenn den Testern eine Anwendung zum Testen zugewiesen wird, übernehmen sie von diesem Moment an die Verantwortung, und die Anwendung dient auch als Plattform, um ihr praktisches und technisches Testwissen zu zeigen.
Um also technisch gesehen sicherzustellen, dass das Testen vollständig durchgeführt wird, ist es notwendig, ein „End-to-End-Testing“ durchzuführen.
In diesem Tutorium werden wir lernen, was ein End-to-End-Testing ist, wie es durchgeführt wird, warum es notwendig ist, welche Matrizen verwendet werden, wie man einen End-to-End-Testfall erstellt und einige andere wichtige Aspekte. Wir werden auch über Systemtests lernen und sie mit End-to-End-Tests vergleichen.
Real auch => End-to-End-Training an einem Live-Projekt – Kostenloses Online-QA-Training.
Was ist End-to-End-Testing?
End-to-End-Testing ist eine Software-Testmethodik, um einen Anwendungsablauf von Anfang bis Ende zu testen. Der Zweck dieses Tests ist es, das reale Benutzerszenario zu simulieren und das zu testende System und seine Komponenten auf Integration und Datenintegrität zu überprüfen.
Es wird von Anfang bis Ende unter realen Szenarien wie der Kommunikation der Anwendung mit Hardware, Netzwerk, Datenbank und anderen Anwendungen durchgeführt.
Der Hauptgrund für die Durchführung dieses Tests ist es, verschiedene Abhängigkeiten einer Anwendung zu bestimmen und sicherzustellen, dass genaue Informationen zwischen verschiedenen Systemkomponenten kommuniziert werden. Er wird in der Regel nach Abschluss der Funktions- und Systemtests einer Anwendung durchgeführt.
Lassen Sie uns ein Beispiel für Gmail nehmen:
Die End-to-End-Prüfung eines Gmail-Kontos umfasst die folgenden Schritte:
- Aufrufen einer Gmail-Anmeldeseite über eine URL.
- Einloggen in das Gmail-Konto mit gültigen Anmeldedaten.
- Zugriff auf den Posteingang. Öffnen von gelesenen und ungelesenen E-Mails.
- Verfassen einer neuen E-Mail, Antworten oder Weiterleiten einer E-Mail.
- Öffnen von Gesendeten Objekten und Überprüfen von E-Mails.
- Überprüfen von E-Mails im Spam-Ordner
- Abmelden aus der Gmail-Anwendung durch Anklicken von ‚Logout‘
End-to-End Testing Tools
Empfohlenes Tool:
#1) TestCraft
Wir empfehlen die Verwendung eines End-to-End Test Automation Tools wie TestCraft.
TestCraft ist eine codelose Selenium-Testautomatisierungsplattform. Seine revolutionäre KI-Technologie und die einzigartige visuelle Modellierung ermöglichen eine schnellere Testerstellung und -ausführung bei gleichzeitiger Eliminierung des Testwartungsaufwands.
Die Tester erstellen vollständig automatisierte Testszenarien ohne Codierung. Kunden finden Bugs schneller, veröffentlichen häufiger, integrieren in den CI/CD-Ansatz und verbessern die Gesamtqualität ihrer digitalen Produkte. All dies schafft eine vollständige End-to-End-Testerfahrung.
=> Besuchen Sie die TestCraft-Website
Wie funktionieren End-To-End-Tests?
Um ein wenig mehr zu verstehen, lassen Sie uns herausfinden, wie es funktioniert?
Nehmen Sie ein Beispiel aus dem Bankensektor. Nur wenige von uns haben sicher schon einmal Aktien ausprobiert. Wenn ein Inhaber eines Demat-Kontos eine Aktie kauft, muss er einen bestimmten Prozentsatz des Betrages an den Broker abtreten. Wenn der Aktionär diese Aktie verkauft, egal ob er einen Gewinn oder einen Verlust erzielt, wird wiederum ein bestimmter Prozentsatz des Betrags an den Makler abgeführt. Alle diese Transaktionen werden in Konten erfasst und verwaltet. Der gesamte Prozess umfasst das Risikomanagement.
Wenn wir uns das obige Beispiel ansehen und dabei den End-to-End-Test im Hinterkopf behalten, werden wir feststellen, dass der gesamte Prozess mehrere Zahlen sowie verschiedene Ebenen von Transaktionen umfasst. Der gesamte Prozess umfasst viele Systeme, die schwierig zu testen sein können.
E2E Testmethoden
#1) Horizontaler Test:
Diese Methode wird sehr häufig verwendet. Sie erfolgt horizontal über den Kontext mehrerer Anwendungen. Diese Methode kann leicht in einer einzigen ERP-Anwendung (Enterprise Resource Planning) vorkommen. Nehmen Sie ein Beispiel für eine webbasierte Anwendung eines Online-Bestellsystems. Der gesamte Prozess umfasst Konten, den Bestandsstatus der Produkte sowie Versanddetails.
#2) Vertikaler Test:
Bei dieser Methode werden alle Transaktionen einer Anwendung von Anfang bis Ende überprüft und bewertet. Jede einzelne Schicht der Anwendung wird von oben nach unten getestet. Nehmen Sie ein Beispiel für eine webbasierte Anwendung, die HTML-Codes verwendet, um Webserver zu erreichen. In solchen Fällen ist eine API erforderlich, um SQL-Codes für die Datenbank zu erzeugen. All diese komplexen Datenverarbeitungsszenarien erfordern eine angemessene Validierung und spezielle Tests. Daher ist diese Methode sehr viel schwieriger.
White Box Testing“ und Black Box Testing“ sind beide mit diesem Testen verbunden. Oder anders ausgedrückt: Es handelt sich um die Kombination der Vorteile von White Box Testing und Black Box Testing. Je nach Art der zu entwickelnden Software werden auf verschiedenen Ebenen beide Testtechniken, d. h. White-Box- und Black-Box-Tests, je nach Bedarf eingesetzt. Grundsätzlich führt der End-to-End-Test sowohl den funktionalen als auch den architektonischen Ansatz für jede Software oder jedes Programm durch, um die Systemfunktionen zu validieren.
Die Tester mögen die End-to-End-Prüfung, weil das Schreiben von Testfällen aus der Perspektive des Benutzers und in einem realen Szenario die beiden häufigsten Fehler vermeiden kann, nämlich das „Übersehen eines Fehlers“ und das „Schreiben von Testfällen, die keine realen Szenarien verifizieren“.
Nachfolgend sind einige Richtlinien aufgeführt, die beim Entwurf von Testfällen für diese Art von Tests beachtet werden sollten:
- Testfälle sollten aus der Perspektive des Endbenutzers entworfen werden.
- Der Schwerpunkt sollte auf dem Testen einiger vorhandener Funktionen des Systems liegen.
- Mehrere Szenarien sollten für die Erstellung mehrerer Testfälle in Betracht gezogen werden.
- Unterschiedliche Sätze von Testfällen sollten erstellt werden, um sich auf mehrere Szenarien des Systems zu konzentrieren.
Wie bei der Ausführung von Testfällen ist es auch bei diesem Test. Wenn die Testfälle „bestanden“ sind, d.h. wir die erwartete Ausgabe erhalten, wird gesagt, dass das System den End-to-End-Test erfolgreich bestanden hat. Wenn das System nicht die gewünschte Ausgabe liefert, muss ein Testfall erneut getestet werden, wobei die Fehlerbereiche zu berücksichtigen sind.
Warum führen wir E2E-Tests durch?
Im heutigen Szenario besteht ein modernes Softwaresystem, wie auch im obigen Diagramm dargestellt, aus der Verbindung mit mehreren Teilsystemen. Dies hat moderne Softwaresysteme sehr kompliziert gemacht.
Diese Subsysteme, von denen wir sprechen, können innerhalb derselben Organisation oder in vielen Fällen auch in verschiedenen Organisationen sein. Außerdem können diese Teilsysteme dem aktuellen System ähnlich sein oder sich von ihm unterscheiden. Infolgedessen kann ein Ausfall oder Fehler in einem Teilsystem das gesamte Softwaresystem beeinträchtigen und zu seinem Zusammenbruch führen.
Diese großen Risiken können durch diese Art von Tests vermieden und kontrolliert werden:
- Überprüfen Sie den Systemfluss und führen Sie eine Systemflussüberprüfung durch.
- Erweitern Sie die Testabdeckungsbereiche aller am Softwaresystem beteiligten Teilsysteme.
- Ermittelt eventuelle Probleme in den Subsystemen und erhöht so die Produktivität des gesamten Softwaresystems.
Nachfolgend sind einige Aktivitäten aufgeführt, die zum End-to-End-Prozess gehören:
- Eine gründliche Untersuchung der Anforderungen, um diese Tests durchzuführen.
- Eine ordnungsgemäße Einrichtung von Testumgebungen.
- A thorough study of Hardware and Software requirements.
- Descriptions of all subsystems as well as main software system involved.
- Enlist the roles and responsibilities for all the systems and subsystems involved.
- Testing methods used under this testing as well as standards that are followed, its description.
- Test cases designing as well as tracing requirement matrix.
- Record or save the input and output data for each system.
E2E Testing Design Framework
We will look into all the 3 categories one by one:
#1) User Functions: Die folgenden Aktionen sollten als Teil der Erstellung von Benutzerfunktionen durchgeführt werden:
- Auflistung der Merkmale der Softwaresysteme und der mit ihnen verbundenen Subsysteme.
- Für jede Funktion sollten die durchgeführten Aktionen sowie die Eingabe- und Ausgabedaten verfolgt werden.
- Finden Sie die Beziehungen, falls vorhanden, zwischen verschiedenen Benutzerfunktionen.
- Finden Sie die Art der verschiedenen Benutzerfunktionen heraus, d.h. ob sie unabhängig oder wiederverwendbar sind.
#2) Bedingungen: Die folgenden Aktivitäten sollten als Teil der Erstellung von Bedingungen auf der Grundlage von Benutzerfunktionen durchgeführt werden:
- Für jede einzelne Benutzerfunktion sollte eine Reihe von Bedingungen vorbereitet werden.
- Zeitpunkte, Datenbedingungen und andere Faktoren, die Benutzerfunktionen beeinflussen, können als Parameter betrachtet werden.
#3) Testfälle: Folgende Faktoren sollten bei der Erstellung von Testfällen berücksichtigt werden:
- Für jedes Szenario sollten ein oder mehrere Testfälle erstellt werden, um jede einzelne Funktionalität der Benutzerfunktionen zu testen.
- Jede einzelne Bedingung sollte als separater Testfall aufgeführt werden.
Involvierte Metriken
Weiter zu den nächsten wichtigen Aktivitäten oder Metriken, die an diesem Test beteiligt sind:
- Status der Testfallerstellung: Dies kann in Form eines Graphen verfolgt werden, um den Fortschritt der geplanten Testfälle, die in Vorbereitung sind, darzustellen.
- Wöchentliche Verfolgung des Testfortschritts: Dies beinhaltet eine wochenweise Darstellung des Fortschritts bei der Ausführung der Testfälle. Er kann durch eine prozentuale Darstellung für bestandene, fehlgeschlagene, ausgeführte, nicht ausgeführte, ungültige usw. Fälle wiedergegeben werden.
- Status- und Detailbericht für Defekte: Der Statusbericht sollte täglich erstellt werden, um den Ausführungsstatus der Testfälle sowie die gefundenen und protokollierten Fehler nach ihrem Schweregrad darzustellen. Wöchentlich sollte der Prozentsatz der offenen und geschlossenen Fehler berechnet werden. Außerdem sollte der Fehlerstatus auf der Grundlage von Schweregrad und Priorität wöchentlich verfolgt werden.
- Testumgebung: Hier wird die zugewiesene Zeit für die Testumgebung sowie die tatsächlich genutzte Zeit für die Durchführung der Tests festgehalten.
Wir haben fast alle Aspekte dieser Tests gesehen. Lassen Sie uns nun zwischen „Systemtests“ und „End-to-End-Tests“ unterscheiden. Zuvor möchte ich Ihnen jedoch eine grundlegende Vorstellung von „Systemtests“ geben, damit wir die beiden Formen des Softwaretests leicht unterscheiden können.
Systemtests sind eine Form des Testens, die eine Reihe verschiedener Tests umfassen, deren Zweck es ist, die vollständige Prüfung des integrierten Systems durchzuführen. Systemtests sind im Grunde eine Form von Black-Box-Tests, bei denen der Schwerpunkt auf der externen Funktionsweise der Softwaresysteme aus der Sicht des Benutzers liegt, wobei reale Bedingungen berücksichtigt werden.
Systemtests umfassen:
- Testen einer vollständig integrierten Anwendung einschließlich des Hauptsystems.
- Bestimmen Sie die Komponenten, die miteinander und innerhalb des Systems interagieren.
- Überprüfen Sie die gewünschte Ausgabe auf der Grundlage der bereitgestellten Eingaben.
- Analysieren Sie die Erfahrung des Benutzers, während Sie verschiedene Aspekte der Anwendung verwenden.
Oben haben wir die grundlegende Beschreibung von Systemtests gesehen, um sie zu verstehen. Jetzt werden wir uns die Unterschiede zwischen „Systemtests“ und „End-to-End-Tests“ ansehen.
S.No. | End to End Testing | System Testing |
---|---|---|
1 | Validates both the main Software system as well as all the interconnected Sub-Systems. | As per the specifications provided in Requirement document, it just validates the software system. |
2 | The main emphasis is on verifying the end to end testing process flow. | The main emphasis is on verifying and checking features and functionalities of the software system. |
3 | While performing testing, all the interfaces including the backend processes of the software system is taken under consideration. | While performing testing, only the functional and the non- functional areas and their features are considered for testing. |
4 | End to End testing is executed /performed after the completion of System testing of any software system. | System testing is basically performed after the completion of integration testing of software system. |
5 | Manual testing is mostly preferred for performing end to End testing as these form of testing involves testing of external interfaces also which can be very difficult to automate at times. And will make the whole process very complex. | Both manual and automation testing can be performed as a part of System testing. |
Conclusion
Hope you learned various aspects of End to End tests like its processes, metrics, and the difference between System testing and End to End testing.
Für jede kommerzielle Softwareversion spielt die End-to-End-Prüfung eine wichtige Rolle, da sie die gesamte Anwendung in einer Umgebung testet, die reale Benutzer wie Netzwerkkommunikation, Datenbankinteraktion usw. exakt imitiert.
Meistens wird die End-to-End-Prüfung manuell durchgeführt, da die Kosten für die Automatisierung solcher Testfälle zu hoch sind, als dass sie sich jedes Unternehmen leisten könnte. Dies ist nicht nur für die Systemvalidierung von Vorteil, sondern kann auch für das Testen der externen Integration als nützlich angesehen werden.
Lassen Sie uns wissen, wenn Sie Fragen zum End-to-End-Test haben.
Letzte Aktualisierung: February 18, 2021