Gremlins.js: Zufallseingaben ergänzen Tests von Weboberflächen

Alicia Sedlock hat am 14. November 2016 einen praktischen Einstieg in Monkey Testing mit Gremlins.js veröffentlicht. Die JavaScript-Bibliothek von Marmelab simuliert ungeplante Interaktionen mit Weboberflächen. Das Tutorial erläutert, wie zufällige Klicks und Eingaben andere Fehler sichtbar machen können als fest vorgeschriebene Testabläufe.

Die damalige Projektdokumentation beschreibt Gremlins für Klicks, Touch-Ereignisse, Formulare, Scrollen und Tastatureingaben. Begleitende Mogwais beobachten den Ablauf und protokollieren unter anderem die Browser-Bildrate. Eigene Gremlins und angepasste Logger sind möglich. Das ist keine Messung der Bildrate einer nativen Spiele-Engine.

Zufallsstartwert allein garantiert keinen identischen Fehler

Über horde.seed(1234) lässt sich der Zufallsgenerator initialisieren. Das erleichtert die erneute Untersuchung einer Eingabefolge. Für eine belastbare Reproduktion müssen zusätzlich Anwendungszustand und Testdaten übereinstimmen. Asynchrone Antworten und externe Dienste werden durch den Startwert nicht automatisch deterministisch. Diese Einschränkung ergibt sich aus dem Testaufbau, nicht aus einem berichteten Bibliotheksfehler.

Die Dokumentation erlaubt außerdem, bestimmte Aktionen einzuschränken und Code vor oder nach einem Test auszuführen. Damit kann ein Team beispielsweise eine vorbereitete Testoberfläche untersuchen, statt unkontrolliert sämtliche Bereiche einer Anwendung anzuklicken. Nicht jede Gremlin-Art bietet dieselben Filter.

Nur mit isolierten Testdaten arbeiten

Für browserbasierte Spieloberflächen und interne Produktionswerkzeuge ist das Verfahren als zusätzliche QA-Methode interessant. Zufällige Formularaktionen können aber echte Zustandsänderungen auslösen. Deshalb gehören solche Läufe in eine kontrollierte Testumgebung, nicht ohne Prüfung in einen produktiven Shop, ein Live-Konto oder ein Redaktionssystem.

Unit- und Abnahmetests bleiben nötig: Ein zufälliger Lauf kann einen Fehler finden, beweist aber nicht die Korrektheit aller Funktionen. Bereits die Visual-Studio-Werkzeugauswahl vom April 2016 trennte Editorhilfen von der eigentlichen Build- und Testpipeline. Gremlins.js greift dagegen am Laufzeitverhalten einer Weboberfläche an.

Die versionierte Paketbeschreibung führt Version 0.1.0 und die MIT-Lizenz auf. Das verlinkte Repository ist auf den vor dem Tutorial bestehenden Commit vom 19. Oktober 2016 festgelegt. Beschrieben ist keine neu erschienene Version und keine heutige Installationsanleitung.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein