Unser Markenzeichen ist die automatisierte, modell-gestützte Realisierung von Testsuiten unter Verwendung von grafischen Benutzungsmodellen für Hard- und Software-Systeme.



Hello MBT Web - Modell-basiertes Testen von Web Applikationen



Wir erweitern jetzt das Hello-MBT-Bug Beispiel, um Bugs innerhalb von Webseiten mit Hilfe von MBT-Techniken zu finden. Für diesen Zweck wird die im Abschnitt Hello MBT World - Modell-basiertes Testen für Einsteiger beschriebene Java Swing-Applikation als Web Applikation HelloMBTWeb realisiert:

Das korrespondierende Benutzungsmodell, das als Basis für die automatische Generierung von fehlerhaften Testfällen aus Sicht der Web Applikation HelloMBTWeb dient, ist das Gleiche wie im Abschnitt Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene vorgestellt:



Aus dem Benutzungszustand World erreicht man mit der fehlerhaften, aus Sicht der Web App nicht vorgesehenen, Eingabe BuggyClick erst den Fehlerzustand Bug Demon bevor die korrekte Eingabe ClickWorld wieder in den Zustand World zurückführt.

Damit können exakt die gleichen Testsuiten zur

  • vollständigen Abdeckung aller Benutzungszustände,
  • zur vollständigen Abdeckung aller möglichen Übergänge zwischen den Zuständen und
  • zur Abdeckung aller möglichen schleifenfreien Pfade zwischen den Zuständen
für den Test der Web App wiederverwendet werden, die zuvor, wie im Abschnitt Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene beschrieben, mit dem TestPlayer© automatisch generiert wurden.

Zum automatischen Testen der Web Applikation HelloMBTWeb benötigt man zusätzliche Treiber, die den Zugriff auf den Webbrowser automatisieren lassen. Wir verwenden für diesen Zweck das Automatisierungsframework SeleniumHQ, das sich bequem in eine, auf Eclipse basierende Testumgebung einbinden lässt:

Das obige Diagramm zeigt, dass für die Testausführung der entsprechende Treiber für den Browser geladen werden muss. Mit der Option -c "Chrome" wird die Testausführungsumgebung HelloMBTWeb.java mit dem Google Browser Chrome gestartet:



Die Dateioption -f test_cases_for_transition_coverage.json.txt liest die automatisch generierte Testsuite zur Abdeckung aller Zustandsübergänge während der Testausführung ein. Die URL-Option -u "http://localhost:8888" bestimmt, wo die zu testende Web Applikation zu finden ist. Der Parameter -t 100 legt die Dauer der Klickereignisse in Millisekunden fest.

Daraufhin startet der Webbrowser und führt automatisch die generierten Klickereignisse der eingelesenen Testsuite aus:

Am Ende des Tests wird das Ergebnis der Testausführung mitgeteilt:



Wie zu erkennen ist haben zwei von zehn Testfällen den Test nicht bestanden, weil sie das fehlerhafte Klickereignis BuggyClick in einem ihren Testschritte enthalten.

Das folgende Video zeigt die geschilderte Vorgehensweise und alle wesentlichen Schritte noch einmal in kompakter Darstellung: