End-to-End-Tests (E2E) sind eine Methode, um Fehler in Webanwendungen aufzudecken, indem das Verhalten echter Benutzer nachgestellt wird.
Die größte Schwäche dieser Methode besteht darin, dass die Tests nicht immer das Verhalten der tatsächlichen Nutzer widerspiegeln, was ihrem Zweck völlig zuwiderläuft.
Um dieses Problem zu lösen, haben wir gemeinsam mit dem Forschungslabor für Informatik (LaBRI) der Universität Bordeaux nach einer Möglichkeit gesucht, die E2E-Tests zu verbessern, indem wir genau ermitteln, wann, wo und in welcher Weise sich die Tests vom Verhalten echter Nutzer unterscheiden, um sie entsprechend korrigieren zu können.
Eine neue Methode auf dem Prüfstand
Die im Rahmen dieser Studie getestete Methode umfasste zwei wesentliche Komponenten:
1. Ein Tool zur automatischen Aufzeichnung
Zunächst wurde ein nicht-intrusives Aufzeichnungstool verwendet, mit dem die Abläufe der Testdurchführungen sowie die Abläufe echter Benutzer bei der Interaktion mit der Anwendung aufgezeichnet wurden.
Um das Verständnis der Aufzeichnungen zu erleichtern, wurden jeder Interaktion Screenshots zugeordnet ( was dank der Chrome-Erweiterungs-API möglich war).
Diese anschaulichen Darstellungen der Spuren ermöglichten es, ein detailliertes Verständnis der Zielstrukturen und aller besonderen Wechselwirkungen zu gewinnen.
2. Diff-Algorithmus (Diffing Traces)
Das Ziel eines Algorithmus bzw. einer Schnittstelle zum Erkennen von Unterschieden bestand darin, die Unterschiede zwischen den einzelnen Testdurchläufen zu ermitteln und hervorzuheben, und zwar selbst dann, wenn dasselbe Szenario von einem oder mehreren Benutzern gestartet wurde.
Ein Trace erfasst die über die Weboberfläche durchgeführten Interaktionen (Klicks und Tastatureingaben) und kann während der Ausführung eines Tests oder beim Navigieren eines Benutzers durch die Webanwendung aufgezeichnet werden.
Durch den Vergleich eines Test-Trace aus einem Skript mit einem Benutzer-Trace lassen sich die Unterschiede hinsichtlich der Interaktion aufzeigen und folgende Aspekte erkennen:
- Die Interaktionen, die der Test übersehen hat.
- Die Aktionen, die vom Testtool, aber nicht vom Benutzer ausgeführt werden, oder umgekehrt.
- Jede andere Art von Abweichung.
Bewertung der Methode
Im Ergebnis haben wir festgestellt, dass der Algorithmus tatsächlich Folgendes identifizieren konnte:
- Neue Interaktionen, die für die Erfahrung eines echten Nutzers relevanter sind als die im Test verwendeten.
- Die fehlerhaften Testabläufe, anhand derer die Tester erkennen können, wo sie ihre Tests verbessern müssen.
Diese Ergebnisse haben uns zu dem Schluss geführt, dass dieser Prozess alle E2E-Test-Toolkits perfekt ergänzt und die Qualität der Tests verbessert, die mit den gängigsten Frameworks (Playwright, Cypress usw.) durchgeführt werden.
Wir konnten genau feststellen, an welchen Stellen die Tests entweder nicht mit der Anwendung synchron waren oder zu stark vom Verhalten eines echten Nutzers abwichen.
In Zukunft möchten wir auf diesen praktischen Erfahrungen aufbauen, indem wir für jedes Szenario mehr Nutzer einbeziehen, um die Subjektivität der Ergebnisse zu verringern, und in Zusammenarbeit mit der Universität diese Methode weiter vertiefen.
Mr Suricate Wir setzen uns für die kontinuierliche Verbesserung Ihrer automatisierten Tests ein
Selbst die beste Software muss in der digitalen Welt, die sich ebenso wie die Anforderungen moderner Nutzer ständig weiterentwickelt, noch nützlicher und relevanter gestaltet werden.
Die Low-Code-Lösungen von Mr Suricate unzähligen Unternehmen dabei geholfen, ihre digitale Transformation zu beschleunigen, doch wir legen auch großen Wert auf Innovation, um den Anforderungen der Unternehmen von heute und morgen noch besser gerecht zu werden.
