Der TestUS TestPlayer© ist ein vielseitiges Werkzeug zur automatischen Generierung von Testfällen und zur Analyse, Visualisierung und Bewertung der erzeugten Testsuiten.



TestPlayer© - Prinzipielle Vorgehensweise



Im folgenden zeigen wir an Hand des Hello MBT World Beispiels die wesentlichen Schritte für die automatische Generierung einer Testsuite und die Visualisierung der dabei entstehenden Testfälle.

Benutzungsmodelle können in der Sektion Model editor im TestPlayer© Dashboard [1] mit Hilfe eines grafischen Editors erstellt werden.

Zunächst modellieren wir das Verhalten und die Aktionen eines Anwenders bei Aufruf der Java Swing GUI-Applikation HelloMBTWorld.jar durch ein Benutzungsmodell mit dem Startzustand [, dem Zustand Clear (Clear-Button), dem Zustand Hello (Hello-Button), dem Zustand MBT (MB-Button), dem Zustand World (World-Button) sowie dem Endzustand ], der durch Drücken des Bye- Buttons erreicht wird.

Außerdem müssen alle Kanten zwischen den Benutzungszuständen hinzugefügt werden, um das dynamische Benutzungsverhalten der Anwender zu beschreiben. Als Ergebnis erhalten wir zunächst ein unvollständiges Benutzungsmodell, bei dem noch die Kantenbeschriftungen fehlen. Kantenbeschriftungen sind jeweils Paare (Ereignis, Wahrscheinlichkeit), die die Namen der Übergangsereignisse und der korrespondierenden Übergangswahrscheinlichkeit zwischen den Benutzungszuständen enthalten.

In unserem Beispiel heißen die die Übergangsereignisse StartApp (Aufruf der GUI-Applikation HelloMBTWorld.jar), ClickClear (Drücken des Clear -Button), ClickHello (Drücken des Hello -Button), ClickMBT (Drücken des MBT -Button), ClickWorld (Drücken des World -Button) sowie ClickBye (Drücken des Bye -Button).

Damit haben wir zunächst das folgende unvollständige Benutzungsmodell:

Anschließend muss das generierte Modell für die weitere Verarbeitung im unkomprimierten (wichtig!) XML-Format abgespeichert werden:



Im nächsten Schritt wird das Benutzungsmodell über den Dashboard Filemanager in den Modellbereich (models) des TestPlayer© geladen:


Bei der Ausführung von Dashboard Aktionen muss generell im ersten Schritt in der Sektion Model settings das entsprechende Benutzungsmodell ausgewählt werden, in unserem Beispiel HelloMBTWorld:

Um aus dem bisherigen unvollständigen Benutzungsmodell ohne Kantenbeschriftungen automatisch Testfälle generieren zu können, müssen alle Übergangsereignisse, die zu einer Zustandsänderung führen und die zugehörigen Übergangswahrscheinlichkeiten an den Kanten des Benutzungsmodell hinzugefügt werden. Die notwendige Vervollständigung übernimmt der TestPlayer© automatisch durch Auswahl von Check graph elements im Dashboard:

Das erweiterte, vollständige Benutzungsmodell kann wiederum über den Dashboard Filemanager heruntergeladen werden

und sieht jetzt wie folgt aus:

Im letzten Schritt der Modellierung müssen die generischen Ereignisnamen noch an die konkrete Anwendung angepasst werden. Als Ergebnis dieser Anpassung entsteht das abschließende, vollständige Benutzungsmodell der Java GUI-Applikation HelloMBTWorld.jar:

Nach Hochladen des Benutzungsmodells in den in den Modellbereich models des TestPlayer© kann die automatische Generierung von Testsuiten für den Test von HelloMBTWorld.jar durchgeführt werden. Über das TestPlayer© Dashboard [1] können jetzt automatisch Testfälle erzeugt werden:


Eine Überprüfung der TestPlayer Settings in der Sektion Information section zeigt u.a. die Auswahl der folgenden Generierungsalternativen:

  • Selected model = HelloMBTWorld: die Testsuite wird aus dem Benutzungsmodell HelloMBTWorld.xml generiert
  • Profile usage = no: Testfälle werden ohne Verwendung eines speziellen Benutzungsprofils zufällig nach einer geometrischen Verteilung erzeugt
  • Number of test cases = 100: die Testsuite enthält nach der Genierung 100 unterschiedliche Testfälle
  • Generation strategy = fast overview: neben der Generierung einer Testsuite für das eingestellte Sortierkriterium im Verzeichnis test_cases des Filemanager werden zusätzliche Diagramme und Testfall-Visualisierungen im Verzeichnis diagrams des Filemanager erzeugt
  • Sorting strategy = all strategies: es werden Testsuiten für alle Sortierkriterien generiert.

Drücken des Start Button führt anschließend zur Ausführung der gewählten Optionen und erzeugt die Testfälle im Verzeichnis test_cases:

Die nachfolgenden Diagramme stehen exemplarisch für die Sortierstrategie length , d.h. Testfälle sind nach ihrer Länge (kürzere zuerst) sortiert:

Die Datei statistics.txt enthält zusätzliche Informationen über die Testsuite, wie z.B. die Anzahl der Zustände (nodes) und der Zustandsübergänge (transitions) des Benutzungsmodells, die mittlere Länge eines Testfalls in der Testsuite oder die Anzahl der Testfälle, die zu einer Abdeckung aller Zustände des Benutzungsmodells führen:

Die Datei test_cases_for_state_coverage.txt enthält alle Testfälle, mit der sich die Abdeckung der Zustände des Benutzungsmodells erreichen lässt, sowie einige Zusatzinformationen, wie z.B. das Generierungsdatum:

Die Datei test_cases_for_state_coverage.json.txt enthält alle Testfälle, mit der sich die Abdeckung der Zustände des Benutzungsmodells erreichen lässt, im kompakten JSON-Format (JavaScript Object Notation) für eine weitere Verarbeitung der Testsuite:

Das Verzeichnis diagrams enthält weitere Unterverzeichnisse für die Darstellung von charakteristischen Eigenschaften der Testsuite:

  • analyze_testcases: verschiedene Statistiken für Übergangsereignisse und Benutzungszustände
  • single_metrics: Gleichgewichtsverteilungen von Benutzungszuständen und Besuchshäufigkeiten
  • visualize_MCUM: XML-Dateien mit der Visualisierung von akkumulierten Testfällen für die Zustandsabdeckung des Benutzungsmodells
  • visualize_testsuite: PNG-Dateien zur Visualisierung der Testsuite mit unterschiedlichen Graph-Visualisierungsverfahren

Die nächsten zwei Diagramme zeigen, wie die XML -Dateien zur Visualisierung von akkumulierten Testfällen über den Filemanager als komprimiertes ZIP -Archiv heruntergeladen werden können:


Nach dem Entpacken des ZIP -Archivs können die XML -Dateien zur Visualisierung der Testfälle in den Model-Editor geladen und betrachtet werden:


Anschließend können die XML -Dateien mit dem Model-Editor zur weiteren Verarbeitung in verschiedenen Grafikformaten abgespeichert werden:


An Hand von speziellen Metriken im Verzeichnis single_metrics können die charakteristischen Eigenschaften der Testsuite analysiert werden:

  • SSP: Gegenüberstellung der Wahrscheinlichkeitsverteilung der Benutzungszustände im statistischen Gleichgewicht für das Benutzungsmodell und der relativen Häufigkeiten der entsprechenden Zustände in der generierten Testsuite. Wie zu erkennen ist stimmen die Werte für die einzelnen Benutzungszustände sehr gut überein.


  • SSV: Gegenüberstellung der mittleren Anzahl von Testfällen, die notwendig sind, um einen Zustand im Benutzungsmodell bzw. während der Testausführung zu besuchen. Wie zu erkennen ist stimmen die Werte für die einzelnen Benutzungszustände sehr gut überein.


Nach der Analyse der Testsuite können die resultierenden Testfälle visualisiert werden. Die Kantenbeschriftungen zeigen das auslösende Ereignis und wie häufig die Kante im Verlauf des Testfalls durchlaufen wird. Als Ergebnis werden drei Testsuiten gezeigt, die nach dem Sortierkriterium sort_l erzeugt sind, d.h. die Testfälle sind aus 100 statistisch zufällig generierten Testfällen zunächst nach der Länge der Testfälle sortiert und für das Erreichen des gewünschten Abdeckungskriterium ausgewählt worden.



  • Testsuite Zustandsabdeckung enthält 4 (von 100) Testfälle
Die einzelnen Testfälle werden animiert (hervorgehoben durch fett-orangene Einfärbung) dargestellt und zeigen die bisher erreichte Abdeckung von Benutzungszuständen sowie Übergängen zwischen den Zuständen (dargestellt durch blaß-orangene Einfärbung). Die Zahl hinter dem Doppelpunkt des jeweiligen Klickereignisses zeigt, wie oft der Zustandsübergang innerhalb des Testfalls durchlaufen wurde.


  • Testsuite Transitionsabdeckung enthält 17 (von 100) Testfälle
Die einzelnen Testfälle werden animiert (hervorgehoben durch fett-orangene Einfärbung) dargestellt und zeigen die bisher erreichte Abdeckung von Benutzungszuständen sowie Übergängen zwischen den Zuständen (dargestellt durch blaß-orangene Einfärbung). Die Zahl hinter dem Doppelpunkt des jeweiligen Klickereignisses zeigt, wie oft der Zustandsübergang innerhalb des Testfalls durchlaufen wurde.


  • Testsuite Pfadabdeckung enthält 57 (von 100) Testfälle
Die einzelnen Testfälle werden animiert (hervorgehoben durch fett-orangene Einfärbung) dargestellt und zeigen die bisher erreichte Abdeckung von Benutzungszuständen sowie Übergängen zwischen den Zuständen (dargestellt durch blaß-orangene Einfärbung). Die Zahl hinter dem Doppelpunkt des jeweiligen Klickereignisses zeigt, wie oft der Zustandsübergang innerhalb des Testfalls durchlaufen wurde.

Referenzen:

  1. W. Dulz. A Comfortable TestPlayer© for Analyzing Statistical Usage Testing Strategies. Proceedings of the 6th ICSE/ACM Workshop on Automation of Software Test (AST '11), 2011.