End-to-End-Tests
End-to-End-Test ist eine Softwaretestmethode, mit der die gesamte Software vom Anfang bis zum Ende sowie die Integration in externe Schnittstellen überprüft werden. Der Zweck von End-to-End-Tests besteht darin, die gesamte Software auf Abhängigkeiten, Datenintegrität und Kommunikation mit anderen Systemen, Schnittstellen und Datenbanken zu testen, um ein komplettes produktionsähnliches Szenario durchzuführen.
Zusammen mit dem Softwaresystem validiert es auch die Stapel- / Datenverarbeitung von anderen vor- / nachgelagerten Systemen. Daher der Name "End-to-End" . End-to-End-Tests werden normalerweise nach Funktions- und Systemtests ausgeführt. Es verwendet tatsächliche Produktionsdaten wie Daten und Testumgebungen, um Echtzeiteinstellungen zu simulieren. End-to-End-Tests werden auch als Kettentests bezeichnet .
Warum End-to-End-Tests?
End-to-End-Tests überprüfen den gesamten Systemfluss und erhöhen das Vertrauen, indem Probleme erkannt und die Testabdeckung von Subsystemen erhöht werden. Moderne Softwaresysteme sind komplex und mit mehreren Subsystemen verbunden, die sich von aktuellen Systemen unterscheiden können. Das gesamte System kann durch einen Ausfall eines Subsystems zusammenbrechen, das ein großes Risiko darstellt und durch End-to-End-Tests vermieden werden kann.
End-to-End-Testprozess:
Das folgende Diagramm gibt einen Überblick über den End-to-End-Testprozess.
Die Hauptaktivitäten bei End-to-End-Tests sind:
- Untersuchung der Anforderungen an End-to-End-Tests
- Einrichtung der Testumgebung und Hardware- / Softwareanforderungen
- Beschreiben aller Systeme und ihrer Subsystemprozesse.
- Beschreibung der Rollen und Verantwortlichkeiten für alle Systeme
- Testmethodik und Standards
- End-to-End-Anforderungsverfolgung und -design von Testfällen
- Eingabe- und Ausgabedaten für jedes System
Wie erstelle ich End-to-End-Testfälle?
End-to-End-Test Das Design-Framework besteht aus drei Teilen
- Erstellen Sie Benutzerfunktionen
- Baubedingungen
- Testfälle erstellen
Benutzerfunktionen erstellen
Folgende Aktivitäten sollten als Teil der Build-Benutzerfunktionen ausgeführt werden:
- Listen Sie die Funktionen des Systems und die miteinander verbundenen Komponenten auf
- Listen Sie die Eingabedaten, Aktionen und Ausgabedaten für jedes Merkmal oder jede Funktion auf
- Identifizieren Sie die Beziehungen zwischen den Funktionen
- Bestimmen Sie, ob die Funktion wiederverwendbar oder unabhängig sein kann
Zum Beispiel -Consider ein Szenario , in dem Sie auf Ihr Bankkonto anmelden und etwas Geld auf ein anderes Konto von einer anderen Bank (3 übertragen rd Party-Subsystem)
- Melden Sie sich beim Bankensystem an
- Überprüfen Sie den Kontostand auf dem Konto
- Übertragen Sie einige Betrag von Ihrem Konto auf ein anderes Bankkonto (3 rd Party-Subsystem)
- Überprüfen Sie Ihren letzten Kontostand
- Abmelden der Anwendung
Build-Bedingungen basierend auf der Benutzerfunktion
Folgende Aktivitäten werden als Teil der Baubedingungen ausgeführt:
- Erstellen einer Reihe von Bedingungen für jede definierte Benutzerfunktion
- Zu den Bedingungen gehören Sequenz-, Zeit- und Datenbedingungen
Zum Beispiel - Überprüfung von mehr Bedingungen wie
Loginseite
- Ungültiger Benutzername und Passwort
- Überprüfung mit gültigem Benutzernamen und Passwort
- Überprüfung der Passwortstärke
- Überprüfung von Fehlermeldungen
Saldobetrag
- Überprüfen Sie den aktuellen Kontostand nach 24 Stunden. (Wenn die Überweisung an eine andere Bank gesendet wird)
- Suchen Sie nach der Fehlermeldung, wenn der Überweisungsbetrag größer als der aktuelle Kontostand ist
Erstellen Sie ein Testszenario
Erstellen des Testszenarios für die definierte Benutzerfunktion
In diesem Fall,
- Melden Sie sich beim System an
- Überprüfung des Bankguthabenbetrags
- Überweisen Sie den Kontostand
Erstellen Sie mehrere Testfälle
Erstellen Sie einen oder mehrere Testfälle für jedes definierte Szenario. Testfälle können jede Bedingung als einen einzelnen Testfall enthalten.
Metriken für End-to-End-Tests:
Im Folgenden sind einige von vielen Metriken aufgeführt, die für End-to-End-Tests verwendet werden.
- Status der Testfallvorbereitung: Gibt den Fortschritt der Testfallvorbereitung anhand der geplanten an
- Wöchentlicher Testfortschritt - Bietet wöchentliche Details zum prozentualen Abschluss des Tests. - Fehlgeschlagen, nicht ausgeführt und gegen geplante Ausführungstests ausgeführt.
- Fehlerstatus und Details - Gibt den prozentualen Anteil offener und geschlossener Fehler pro Woche an. Auch wöchentliche Fehlerverteilung basierend auf Schweregrad und Priorität
- Verfügbarkeit der Umgebung - Gesamtzahl der Stunden "bis" / Gesamtzahl der Stunden, die pro Tag für Tests geplant sind
End-to-End-Test gegen Systemtest
End-to-End-Tests | Systemtests |
---|---|
Validiert das Softwaresystem sowie miteinander verbundene Subsysteme | Validiert nur das Softwaresystem gemäß den Anforderungsspezifikationen. |
Es überprüft den gesamten End-to-End-Prozessablauf. | Es überprüft die Funktionen und Merkmale des Systems. |
Alle Schnittstellen, Backend-Systeme werden zum Testen berücksichtigt | Funktionale und nicht funktionale Tests werden für Tests berücksichtigt |
Es wird ausgeführt, sobald der Systemtest abgeschlossen ist. | Es wird nach dem Integrationstest ausgeführt. |
Bei End-to-End-Tests werden externe Schnittstellen überprüft, deren Automatisierung komplex sein kann. Daher wird manuelles Testen bevorzugt. | Sowohl manuelle als auch Automatisierung können für Systemtests durchgeführt werden |
Fazit
In der Softwareentwicklung ist End-to-End-Testen der Prozess, bei dem ein Softwaresystem zusammen mit seinen Subsystemen überprüft wird. Die größte Herausforderung bei diesen Tests besteht darin, über ausreichende Kenntnisse des gesamten Systems sowie eines miteinander verbundenen Subsystems zu verfügen.