Mit End-to-End Testing zur einwandfreien Webanwendung

Webanwendungen sind selten statisch. Damit bestehende Funktionen und Layouts dabei keinen Schaden nehmen, kommen End-to-End Tests zum Einsatz.

Datum

07.07.2020

Dieser Beitrag wurde verfasst von:

Marvin Lange

End-to-End Testing sorgt dafür, dass Webanwendungen auch bei Anpassungen vollkommen intakt bleiben. Denn: Neben neuen Browserspezifikationen müssen Entwickler stetig neue SEO-Richtlinien und Features implementieren. Mit End-to-End Tests können alle Anwendungen und Seiten getestet werden, welche sich in einem Browser öffnen lassen. Für die Entwicklung wird das Framework „Cypress“ verwendet. Dieses beinhaltet verschiedene Funktionen, welche die Entwicklung vereinfachen und die Zuverlässigkeit der Ergebnisse sicherstellen.

Wie genau das ausschaut und wie End-to-End Tests Entwickler beim der Webentwicklung unterstützen, erfahren Sie in unserem Blogartikel.

End-to-End Tests: So funktioniert’s

Im Gegensatz zu Unit- oder Integration Tests, wird bei End-to-End Tests die komplette Anwendung aus Sicht eines Users geprüft. Dazu wird sie zunächst in verschiedenen Browsern (aktuell Chrome, Firefox und Edge) und Auflösungen geöffnet.

Ein Test besteht zum einen aus Interaktionsanweisungen (Klicken, Scrollen, Tippen, etc.) und zum anderen aus erwarteten Ergebnissen (Bsp.: „Nachdem der User auf einen Submit-Button klickt, soll er auf eine Success Seite weitergeleitet werden.“ oder „Der Text in der Navigation soll die Farbe Blau haben.“).

Durch dieses Vorgehen kann sowohl die Funktionalität der Webanwendung als auch das Layout entsprechend geprüft werden. Geschrieben werden die Tests entweder in JavaScript oder in TypeScript. Da ein Webentwickler sich keine neue Programmiersprache aneignen muss, kann das Entwickeln von End-to-End Tests schnell erlernt werden. 

End-to-End Testing für Layout und Funktionalität

Um ein einwandfreies Layout sowie eine umfassende Funktionalität der Website sicherzustellen, lassen sich die End-to-End Tests sowohl in den Entwicklungsprozess integrieren als auch auf die produktive Anwendung anwenden. Dies gestaltet sich wie folgt:

Entwicklungsprozess

In einer Codeverwaltungssoftware wie beispielsweise GitLab lassen sich Pipelines einrichten, welche bei jeder Aktualisierung des Programmcodes ablaufen. Es ist möglich, End-to-End Tests einer Anwendung in solch eine Pipeline zu verlagern, sodass im Entwicklungsprozess bei jeder Codeänderung geprüft wird, ob die Tests erfolgreich sind.

Sollte ein Test fehlschlagen, wird dies dem Entwickler mitgeteilt und er sieht, dass eine bestehende Funktion durch seine Entwicklung beschädigt wurde. Dadurch hat er nun die Möglichkeit, den Fehler zu beheben, noch bevor die Anwendung deployed wird.  

Produktive Anwendungen

Im Falle der produktiven Webanwendungen lassen sich die Tests in einen Docker Container auslagern – Layout und Funktionalität der Anwendungen können so jede Nacht geprüft werden.

Im Falle eines fehlgeschlagenen Tests werden die Entwickler benachrichtigt, um dann direkt mit der Fehlerbehebung zu starten. Auf diese Weise werden Probleme sichtbar, welche nicht in der Entwicklung entstehen, sondern beispielsweise durch geänderte Browserspezifikationen oder nicht weiter vom Browser unterstützte Funktionen hervorgerufen werden. Bei der Analyse und Behebung von fehlgeschlagenen Tests unterstützen Screenshots oder auch Videos, die automatisiert aufgezeichnet werden.

Fazit

End-to-End Tests sind eine nicht zu unterschätzende Technik, wenn es um die Sicherstellung der Qualität von Webanwendungen geht! Ob Unternehmenswebsite, Weblog oder Online-Shop – End-to-End Tests sind das Mittel der Wahl für alle Anwendungen und Seiten, die sich mit dem Browser abrufen lassen. Sowohl im Entwicklungsprozess als auch bei produktiven Anwendungen kommt die Technik zum Einsatz. Gerne beraten unsere Experten Sie zu End-to-End Testing oder unterstützen Sie bei der Umsetzung Ihres Webprojekts.