Zum Hauptinhalt springen
14 Oktober, 2022

Mit End-to-End-Tests die Softwarequalität erhöhen

14 Oktober, 2022

Agilität und Flexibilität sind schon lange fest im Wortschatz bei der Softwareentwicklung integriert. Die Update Zyklen haben sich in den letzten Jahren stark verkürzt und der Nutzer erwartet neue Features und Verbesserungen in deutlich kürzeren Abständen. Dies bring einen Softwarehersteller wie uns in eine schwierige Lage, die richtige Balance zwischen neuen Releases aber hoher Softwarequalität zu finden. Somit ist es unerlässlich unserer Software und die unserer Kunden automatisiert zu testen, um so trotz kurzer Release Zyklen eine hohe Softwarequalität zu gewährleisten. Dies bestätigt auch der World Quality Report 2022 von Capgemini, der hierbei vor allem einen Fokus auf das End-to-End Testing legt.

Was ist E2E Testing

In der Softwareentwicklung haben sich mittlerweile viele Teststrategien durchgesetzt. Diese reichen von einfachen Unit Tests, die eine einzige Funktion auf ihre Richtigkeit überprüfen, bis hin zu Integrationstests, Akzeptanztests, Performancetests und noch vielen weiteren. Ein unserer Meinung nach sehr wichtiges Testverfahren ist das E2E Testing. Dies ist vor allem wichtig, um auch bei kurzen Release Zyklen zu gewährleisten, dass die Software und alle ihre Funktionen ganzheitlich funktionieren.

Beim E2E Testing werden alle Nutzerworkflows, die der Nutzer in der Applikation durchlaufen kann, entsprechend abgebildet und getestet und anhand von Kriterien als erfolgreich oder fehlgeschlagen aufgeführt. Hierfür führt das E2E Testing den entsprechenden Workflow in einer isolierten Umgebung an der konkreten Applikation Ende zu Ende durch.

Arten von E2E Tests

Zum Ausführen von E2E Tests unterscheiden wir bei der meaPuna GmbH zwischen drei Möglichkeiten. Diese teilen sich in manuelle, automatisierte und plattformbasierte E2E-Tests auf.

Manuelle Tests

Manuelle Tests sind wie der Name bereits beschreibt, komplett manuelle Tests, die von Entwicklern oder einem dedizierten Testteam ausgeführt werden. Das impliziert, dass alle Tests bei jeder Version erneut manuell ausgeführt werden müssen. Hierbei arbeiten die Tester einen entsprechend Testkatalog ab, der beschreibt, was auszuführen ist und was das zu erwartete Ergebnis ist. Diese Variante produziert hohe Testkosten und ist sehr fehleranfällig.

Automatisierte Tests

Im Gegensatz zu den manuellen Tests arbeiten automatisierte Tests nach dem Motto „Write Once, Run anytime and everywhere“. Bei automatisierten E2E-Tests werden die entsprechenden Tests aus dem Testkatalog mit Hilfe von Frameworks und Tools in eine Programmiersprache abgebildet. Hierbei wird der konkrete Ablauf entsprechend implementiert und die zu erwartenden Ergebnisse anhand der UI geprüft. Diese müssen erfüllt werden, damit der Test entsprechend ein erfolgreiches Ergebnis erzielt. Die großen Frameworks in diesem Bereich bringen meist auch eine entsprechende Software mit, mit denen Tests aufgezeichnet und anschließend in die entsprechende Programmiersprache übersetzt werden können. („Playwright Codegen“, „Selenium IDE“,..). Die populärsten Tools und Frameworks in diesem Bereich sind „Playwright“ von der Firma Microsoft, „Cypress“ und „Selenium“. Vorteil bei diesen Frameworks ist meist, dass Sie die Tests auf verschiedenen Browsertreibern ausführen können und so auch browserspezifische Fehler aufgefangen werden können.

Plattformbasierte Tests

Als letztes unterscheiden wir noch die plattformbasierten Tests. In den letzten Jahren haben zahlreiche Anbieter entsprechende Plattformen entwickelt, welche das Thema E2E Testing ganzheitlich betrachten. Hierbei läuft sowohl die Testbeschreibung, Testerstellung und Testausführung auf der entsprechenden Plattform ab und ist losgelöst von der eigentlichen Entwicklung.

Vorteile von E2E Testing

Der größte Vorteil von E2E Testing lässt sich bereits vom Ende zu Ende ableiten. Dadurch, dass das Testverfahren einen Workflow komplett zu Ende testet, erkennt man Fehler, die auch an anderen Stellen auftreten, die ich nicht bedacht wurden. Wenn diese E2E Tests nun noch automatisiert implementiert sind kann gewährleistet werden, dass bei jedem Release der Nutzer alle seine Workflows erfolgreich und wie zu erwarten ausführen kann.

Für das Business leiten sich hierbei folgende zwei Schwerpunkte ab:

  1. Erhöhte Softwarequalität und zufriedene Nutzer, da alle Funktionen wie erwartet funktionieren
  2. Niedrigere Testkosten, da die Tests einfach automatisiert werden können

Ausblick

Wir sind der festen Überzeugung, dass jedes Unternehmen das Thema Testing und im speziellen das Thema E2E-Testing nicht mehr oberflächlich betrachten sollte, sondern eine klare Teststrategie entwickeln muss, um weiter am aktuellen Markt gute und qualitativ hochwertige Software produzieren zu können. Hierfür darf es kein Ansatz mehr sein, Tests manuell von Personen durchzuführen zu lassen, sondern sollte direkt ein automatisierter Weg eingeschlagen werden.

Dieser Ansatz beginnt bereits in der Entwicklung und kann mit Hilfe von Entwicklungsparadigmen wie „Test Driven Development“ noch deutlich verstärkt und somit Kernelement der Entwicklung werden.

Falls Sie mehr Informationen zum Testen von Software benötigen, kontaktieren sie uns gerne!

 

--

Links: 

Worldquality Report: https://www.capgemini.com/insights/research-library/world-quality-report-wqr-2022/