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



Hello TestUS - Modell-basiertes Testen von Webseiten



Auf dieser Seite zeigen wir an Hand der TestUS Homepage wie beliebige Webauftritte mit model-basierten Techniken getestet werden können. Für die automatische Generierung der Testsuite müssen wir zunächst mit Hilfe des TestPlayer© Dashboards ein passendes Benutzungsmodell für die Webseite erstellen. Für die TestUS Homepage sieht das korrespondierende Benutzungsmodell wie folgt aus:



Die TestUS Homepage startet immer im Benutzungszustand Willkommen. Von dort aus erreicht man die Hauptbenutzungszustände Auf den ersten Blick , Testen für Fortgeschrittene , Informationen , TestPlayer© Login und Sprachumschaltung. Die Hauptbenutzungszustände entsprechen den Auswahlmenüs in der obersten Menüleiste der TestUS Homepage. Aus den Hauptbenutzungszustände gelangt man in die weiteren Benutzungszuständen der Webseite, d.h.

  • Ausgehend von Willkommen erreicht man zunächst die Zustände
    • Modellgestütztes Testen sowie
    • Statistische Testfall-Generierung
  • Auf den ersten Blick erlaubt den Zugriff auf
    • Automatische Testfall-Generierung,
    • Automatisch generierte Testsuite,
    • Hello MBT World - Modell-basiertes Testen für Einsteiger sowie
    • TestPlayer© - Prinzipielle Vorgehensweise
  • Testen für Fortgeschrittene bietet den Zugriff auf
    • Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene,
    • Hello MBT Web - Modell-basiertes Testen von Webapplikationen,
    • Hello TestUS - Modell-basiertes Testen von Webseiten und
    • Referenzen
  • Informationen ermöglicht den Zugriff auf
    • Impressum sowie
    • Kontakt
  • Von TestPlayer© Login erreicht man den Zugriff auf
    • Registrierung und
    • Login
  • Sprachumschaltung bzw. wechselt die Sprache zwischen Deutsch und Englisch
  • Über den Button können die Untermenüs
    • Benutzungsmodell,
    • Testsuite,
    • Testfall,
    • Testergebnis,
    • Visualisierung sowie
    • Video aufgerufen werden.
Die Zustandsübergänge zwischen den Benutzungszuständen werden durch die generischen Ereignisse e1 bis e60 getriggert, die gemeinsam mit den korrespondierenden Übergangswahrscheinlichkeiten p1 bis p60 automatisch vom TestPlayer© erzeugt wurden.

Mit dem TestPlayer© ist es jetzt möglich aus dem obigen Benutzungsmodell automatisch Testfälle für den modell-basierten Test der TestUS Homepage zu generieren. Die nachfolgende Testsuite enthält 21 Testfälle zur vollständigen Abdeckung aller Benutzungszustände, die nach dem Sortierkriterium sort_l erzeugt sind, d.h. die Testfälle sind aus 100 statistisch zufällig generierten Testfällen nach der Länge der Testfälle sortiert worden:


  • Testsuite Zustandsabdeckung enthält 21 (von 100) Testfälle
Die Testfälle sind animiert (hervorgehoben durch fett-orangene Einfärbung) dargestellt und zeigen die Abdeckung der Benutzungszuständen sowie die Übergänge zwischen den Zuständen. Die Zahl hinter dem Doppelpunkt des jeweiligen Klickereignisses verdeutlicht, wie oft der jeweilige Zustandsübergang während des Testfalls durchlaufen wurde.

Neben den grafischen Darstellungen erzeugt der TestPlayer© außerdem Textdateien, die die Testfälle der Testsuite in kompakter JSON-Formatierung für die Testausführung bereitstellen. Die Datei test_cases_for_state_coverage.json.txt enthält die 21 Testfälle der Testsuite Zustandsabdeckung für den Test der TestUS Homepage:

[
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e52", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e6", "Sprachumschaltung"],
    ["Sprachumschaltung", "e47", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e3", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e50", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e2", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e51", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e5", "TestPlayer© Login"],
    ["TestPlayer© Login", "e48", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e4", "Informationen"],
    ["Informationen", "e49", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e8", "Statistische Testfall-Generierung"],
    ["Statistische Testfall-Generierung", "e23", "Willkommen"],
    ["Willkommen", "e52", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e7", "Modell-basierte Testfall-Generierung"],
    ["Modell-basierte Testfall-Generierung", "e22", "Willkommen"],
    ["Willkommen", "e52", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e4", "Informationen"],
    ["Informationen", "e19", "Kontakt"],
    ["Kontakt", "e34", "Informationen"],
    ["Informationen", "e49", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e2", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e12", "TestPlayer© - Prinzipielle Vorgehensweise"],
    ["TestPlayer© - Prinzipielle Vorgehensweise", "e27", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e51", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e5", "TestPlayer© Login"],
    ["TestPlayer© Login", "e20", "Registrierung"],
    ["Registrierung", "e35", "TestPlayer© Login"],
    ["TestPlayer© Login", "e48", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e3", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e14", "Hello MBT Web - Modell-basiertes Testen von Web Applikationen"],
    ["Hello MBT Web - Modell-basiertes Testen von Web Applikationen", "e29", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e50", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e4", "Informationen"],
    ["Informationen", "e18", "Datenschutz"],
    ["Datenschutz", "e33", "Informationen"],
    ["Informationen", "e49", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e4", "Informationen"],
    ["Informationen", "e17", "Impressum"],
    ["Impressum", "e32", "Informationen"],
    ["Informationen", "e49", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e5", "TestPlayer© Login"],
    ["TestPlayer© Login", "e21", "Login"],
    ["Login", "e36", "TestPlayer© Login"],
    ["TestPlayer© Login", "e48", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e2", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e9", "Automatische Testfall-Generierung"],
    ["Automatische Testfall-Generierung", "e24", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e51", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e3", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e13", "Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene"],
    ["Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene", "e28", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e50", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e5", "TestPlayer© Login"],
    ["TestPlayer© Login", "e61", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e16", "Referenzen"],
    ["Referenzen", "e31", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e50", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e2", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e11", "Hello MBT World - Modell-basiertes Testen für Einsteiger"],
    ["Hello MBT World - Modell-basiertes Testen für Einsteiger", "e26", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e43", "Sprachumschaltung"],
    ["Sprachumschaltung", "e47", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e4", "Informationen"],
    ["Informationen", "e60", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e15", "Hello TestUS - Modell-basiertes Testen von Webseiten"],
    ["Hello TestUS - Modell-basiertes Testen von Webseiten", "e30", "Testen für Fortgeschrittene"],
    ["Testen für Fortgeschrittene", "e50", "]"]
  ],
  [
    ["[", "e1", "Willkommen"],
    ["Willkommen", "e7", "Modell-basierte Testfall-Generierung"],
    ["Modell-basierte Testfall-Generierung", "e22", "Willkommen"],
    ["Willkommen", "e2", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e10", "Automatisch generierte Testsuite"],
    ["Automatisch generierte Testsuite", "e25", "Auf den ersten Blick"],
    ["Auf den ersten Blick", "e51", "]"]
  ]
]



Zum automatischen Testen der TestUS Homepage 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 passende Treiber für den Webbrowser geladen werden muss, damit Selenium die automatische Ausführung der generierten Testfälle durchführen kann.

Im folgenden Diagramm sind die Aufrufparameter der Testausführungsdatei HelloTestUS.java zu sehen. Standardmäßig wird die Webseite mit dem Google Browser Chrome gestartet:

Mit Run Configuration können in Eclipse die Aufrufparameter für die Testausführung übergeben werden:



Die Dateioption -f test_cases_for_state_coverage.json.txt liest die automatisch generierte Testsuite zur Abdeckung aller Benutzungszustände während der Testausführung ein. Der Parameter -t 1000 legt die Dauer der Klickereignisse während der Testausführung in Millisekunden fest.

Daraufhin startet der Webbrowser und führt automatisch, gesteuert über den Chrome-Treiber des SeleniumHQ Frameworks, die generierten Klickereignisse der eingelesenen Testsuite aus:



Wie zu erkennen ist, wird über die Aufrufoption -v Verzeichnis jeder ausgeführte Testfall dynamisch visualisiert. Das notwendige Visualisierungsverzeichnis kann für diesen Zweck im TestPlayer© Dashboard automatisch erzeugt werden kann.

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



Wie zu erkennen ist wurden insgesamt 21 Testfälle der automatisch generierten Testsuite -f test_cases_for_state_coverage.json.txt durchlaufen und alle 21 Testfällen haben den Test bestanden.

Das folgende Video zeigt den durchgeführten Test auf Basis der automatisch generierten Testsuite -f test_cases_for_state_coverage.json.txt und die automatische Ansteuerung der TestUS Homepage über die vorgestellten 21 Testfälle: