wake-up-neo.com

Unterschied zwischen Systemtests und End-to-End-Tests

Was ist ein End-to-End-Test und was ist der Unterschied zwischen dem Test und dem Systemtest?

Sie scheinen beide gleich zu sein und prüfen die Anwendung als Ganzes. Definitionen im Netz sind sehr verwirrend.

50
a Learner

Für mich gibt es keinen großen Unterschied zwischen den beiden und in manchen Betrieben könnten die Begriffe austauschbar verwendet werden. Überall ist anders. Ich würde es gerne so erklären:

Systemtests : Sie sind testen das gesamte System d. H. Alle Komponenten, um sicherzustellen, dass jedes System wie vorgesehen funktioniert. Dies ist mehr von einer funktionalen Seite, um die Anforderungen zu überprüfen.

Ende-zu-Ende-Tests : Hier geht es mehr um den tatsächlichen Fluss durch ein System in einem realistischeren Endbenutzerszenario. Kann ein Benutzer wie erwartet in der Anwendung navigieren und funktioniert? Sie testen den Workflow.

Wenn Sie beispielsweise eine E-Commerce-Site auf der Shop-Front testen möchten:

Systemtest: Das Durchsuchen von Artikeln, Einkaufswagen und Checkout würde funktionieren. 

Ende-zu-Ende-Test: Sie können dann Probleme mit dem Workflow beim Wechseln zwischen diesen Funktionsbereichen feststellen. 

39
Scott Helme

End-to-End-Tests - Ein End-to-End-Test ist im Grunde genau das, was er sich anhört. Sie testen eine Software von Anfang bis Ende. Wenn es sich beispielsweise um eine E-Commerce-Plattform handelt, testen Sie, ob Sie zu einer Produktseite gelangen, diese in den Warenkorb legen, auschecken und die Bestellung abschließen. Für eine Anwendung kann es sein, dass Sie in der Lage sind, ein Element aus einem Menü auszuwählen, einige Arbeiten auszuführen und es dann zu übermitteln, damit es für andere sichtbar ist. Es ist im Grunde nur eine Möglichkeit für ein funktionales Team, die neue Entwicklung zu überprüfen und sicherzustellen, dass während der Implementierung weder am Front-End noch am Back-End etwas gebrochen wurde.

Systemtest - Dies ist etwas nebulöser. Dies könnte jemand sein, der die Back-End-Datenbank einer Website testet oder die Front-End-Benutzeroberfläche oder sogar die Mittelschicht. Es handelt sich im Wesentlichen um einen isolierten Test mit einem (meistens) engen Fokus, um sicherzustellen, dass die einzelnen Komponenten eines Dienstes den Anforderungen entsprechen, die normalerweise vor der Entwicklungsarbeit festgelegt werden. Dies kann auch als "Integrationstest" bezeichnet werden.

19
Brian

Ich werde nicht zustimmen. Für mich sind diese Begriffe in Kürze:

Systemtest: Ich überprüfe, ob mein eigenes System wie erwartet funktioniert. Zum Beispiel auf der E-Commerce-Site: Wenn mein Kunde die Kasse durchläuft, werden korrekte Daten an das Lager (das sich im Besitz einer anderen Person befindet) gesendet.

End-to-End-Test: Wie oben angegeben, der tatsächliche Workflow. Jemand legt ein Produkt in den Warenkorb und gibt die Benutzerdaten ein, bezahlt dafür. Ich überprüfe, ob ich tatsächlich eine Zahlung erhalten habe, rufe das Lager an und stelle sicher, dass sie die Daten erhalten haben. Und als kleine Sahne: Mit dem Empfang des Pakets stelle ich sicher, dass diese Daten gut genug waren und korrekt gedruckt wurden, insbesondere wenn mein richtiger Name Pavel Janíček ist (siehe die lustigen Diakritiken? Sie werden manchmal falsch gedruckt).

Und hier stellen Sie fest, dass Sie selbst dann, wenn Sie Daten wie erwartet und ausgehandelt versenden, irgendwo ein Problem haben

13
Pavel Janicek

Die Antworten sind gut, um den Unterschied zu erklären. Ich möchte hinzufügen, dass es möglich ist, auf ZWEI verschiedene Definitionen von End-to-End-Tests zu stoßen: eine vertikale und eine horizontale (häufiger und in der Antworten):

 enter image description here

7
Andrejs

Systemintegrationstest: Alle verschiedenen Systemkomponenten werden getestet, wenn sie in minutiösen Details die richtigen erwarteten Ergebnisse liefern.

End-to-End-Test: Die gesamte Anwendung wird von Anfang bis Ende so getestet, dass sie vom Kunden aus gesehen zufrieden ist.

3
axis

Das Vergleichen von End-to-End-Tests und Systemtests ist vergleichbar mit dem Vergleichen von Früchten mit Farben. End-to-End-Tests (E2E-Tests) sind "Testtypen" und Systemtests sind "Teststufen". Mit anderen Worten, ein E2E-Test ist immer ein Systemtest, aber ein Systemtest ist nicht unbedingt ein E2E-Test. 

Bei E2E-Tests handelt es sich weitgehend um einen nicht funktionalen Test. Es gibt jedoch durchaus funktionale Spezifikationen, die durch einen E2E-Test validiert werden können. E2E werden in der Regel nach dem Ausführen funktioneller Systemtests durchgeführt. Benutzerakzeptanztests (in einer Produktionsumgebung), Explorative Tests (in QA- oder Staging-Umgebungen) und jede andere Situation, in der Sie das SUT in einer Umgebung ausführen, in der versucht wird, die reale Nutzung nachzuahmen, wäre ein E2E-Test, während Tests auf Systemebene möglicherweise ausgeführt werden in einer nicht produktiven Umgebung (wie einer Entwicklungsumgebung). Das bedeutet jedoch nicht, dass Sie keinen E2E-Test in dev ... durchführen können. Die Terminologie von Tests macht die Beantwortung dieser Frage schwierig, da die Industrie immer noch versucht, Standards zu erkennen.

1
Kaman Poole

Ich habe etwas unterschiedliche Winkel für diese zwei wichtigsten Tests.

Ende-zu-Ende-Tests: Nach meinem Standpunkt Ende-zu-Ende-Tests umfassen den vollständigen Arbeitsablauf des Anwendungsfalles. Um den End-to-End-Flow eines Anwendungsfalls abzuschließen, müssen Sie möglicherweise auch das Testen (zumindest die Interaktion wie „Request- und Response-Validierung“) anderer individueller Anwendungen abdecken. z.B. Wenn Sie den End-to-End-Flow einer eCommerce-Anwendung verwenden, müssen Sie den Benutzer zum Zahlungsgateway zu einem Zahlungsgateway bringen. Das Testen der Anforderung und Antwort der Zahlungsgateway-Integrationsfunktionalität ist jetzt Teil der Systemintegrationstests oder End-to-End-Tests.

Systemtests: Der Umfang des Systemtests beschränkt sich zwar auf die Überprüfung jeder einzelnen Funktionalität unserer Anwendung.

Das ist meine Ansicht. Jede Korrektur ist sehr willkommen.

0
abhiqa