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



Hello MBT Bug - Modell-basiertes Testen für Fortgeschrittene



Das Hello-MBT-Bug Beispiel erweitert das Hello-MBT-World Beispiel um die Darstellung und das Auffinden von Bugs mit Hilfe von MBT-Techniken. Für diesen Zweck wird das ursprüngliche Benutzungmodell um einen weiteren (irregulären) Zustand Bug Demon erweitert. Sein Zweck ist die Injektion einer nicht erlaubten, fehlerhaften Eingabe BuggyClick, die während der Testausführung der Java Swing-Applikation HelloMBTWorld.jar gefunden werden soll.


Das korrespondierende Benutzungsmodell, das als Basis für die automatische Generierung von fehlerhaften Testfällen aus Sicht der Anwendung HelloMBTWorld dient, sieht wie folgt aus:



Aus dem Benutzungszustand World erreicht man jetzt mit der fehlerhaften Eingabe BuggyClick erst den Fehlerzustand Bug Demon bevor die korrekte Eingabe ClickWorld wieder in den Zustand World zurückführt. Als Ergebnis erzeugt der TestPlayer© Testsuiten, die zusätzlich fehlerhafte Ereignisse BuggyClick generieren.

Mit dem TestPlayer© werden jetzt analog zum Hello-MBT-World Beispiel automatisch 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
generiert.Die Anzahl der insgesamt zu generierenden Testfälle, aus denen die Testsuite durch Reduktion mittels der gewünschten Abdeckungs- und Sortierkriterien entsteht, ist wiederum auf 100 eingestellt.

Als Ergebnis werden wiederum 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 5 (von 100) Testfälle
Der Testfall ist animiert (hervorgehoben durch fett-orangene Einfärbung) dargestellt und zeigt die Abdeckung der Benutzungszuständen sowie der Übergängen 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.


  • Testsuite Transitionsabdeckung enthält 18 (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 verdeutlicht, wie oft der jeweilige Zustandsübergang während des Testfalls durchlaufen wurde.


  • Testsuite Pfadabdeckung enthält 51 (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 verdeutlicht, wie oft der jeweilige Zustandsübergang während des Testfalls durchlaufen wurde.


Die Testfälle der Testsuite in kompakter JSON-Formatierung sehen wie folgt aus:

Inhalt der Datei test_cases_for_state_coverage.json.txt :

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  {}
]
Inhalt der Datei test_cases_for_transition_coverage.json.txt :

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  {}
]
Inhalt der Datei test_cases_for_path_coverage.json.txt :

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "BuggyClick", "Bug\nDemon"],
    ["Bug\nDemon", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  {}
]


Die Ausführung der erweiterten Testfälle mit der automatisch erzeugten, fehlerhaften Eingabe BuggyClick liefert jetzt die folgenden Ergebnisse:

Der Aufruf

java -jar HelloMBTWorld.jar -f test_cases_for_state_coverage.json.txt
testet die Anwendung HelloMBTWorld.jar mit der Testsuite test_cases_for_state_coverage.json.txt bestehend aus 5 Testfällen, die zusätzlich das fehlerhafte Ereignis BuggyClick enthalten können. Der Test erzeugt die folgenden Ausgaben auf der Konsole:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickWorld ClickBye>
TestCase[4]=<StartApp ClickHello ClickBye>
TestCase[5]=<StartApp ClickHello ClickWorld BuggyClick ClickWorld ClickBye>
Am Ende des Tests erscheint abschließend die Nachricht



und signalisiert, dass einer von 5 Testfällen fehlerhaft ausgeführt wurde.
Muss die Abdeckung sämtlicher Zustandsübergänge zwischen den Benutzungszuständen erreicht werden, wird die Testausführung mit der automatisch generierten Testsuite test_cases_for_transition_coverage.json.txt , bestehend aus 18 Testfällen, gestartet:

java -jar HelloMBTWorld.jar -f test_cases_for_transition_coverage.json.txt
Es erscheinen die folgenden Ausgaben auf der Konsole:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickWorld ClickBye>
TestCase[4]=<StartApp ClickHello ClickBye>
TestCase[5]=<StartApp ClickClear ClickBye>
TestCase[6]=<StartApp ClickHello ClickClear ClickBye>
TestCase[7]=<StartApp ClickHello ClickWorld ClickBye>
TestCase[8]=<StartApp ClickMBT ClickClear ClickBye>
TestCase[9]=<StartApp ClickWorld ClickHello ClickBye>
TestCase[10]=<StartApp ClickHello ClickHello ClickBye>
TestCase[11]=<StartApp ClickHello ClickMBT ClickBye>
TestCase[12]=<StartApp ClickWorld ClickWorld ClickBye>
TestCase[13]=<StartApp ClickWorld ClickClear ClickBye>
TestCase[14]=<StartApp ClickMBT ClickMBT ClickBye>
TestCase[15]=<StartApp ClickMBT ClickWorld ClickBye>
TestCase[16]=<StartApp ClickWorld ClickWorld ClickMBT ClickBye>
TestCase[17]=<StartApp ClickHello ClickWorld BuggyClick ClickWorld ClickBye>
TestCase[18]=<StartApp ClickClear ClickMBT ClickHello ClickWorld ClickBye>
Am Ende des Tests wird abschließend die Nachricht



ausgegeben und signalisiert, dass einer von 18 Testfälle während des Tests fehlerhaft ausgeführt wurde.
Sollen sämtliche Pfade des Benutzungsmodells durchlaufen werden, wird die Testausführung mit der automatisch generierten Testsuite test_cases_for_path_coverage.json.txt , bestehend aus 51 Testfällen, gestartet:

java -jar HelloMBTWorld.jar -f test_cases_for_transition_coverage.json.txt
Bei der Testausführung erscheinen die folgenden Ausgaben auf der Konsole:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickWorld ClickBye>
TestCase[4]=<StartApp ClickHello ClickBye>
TestCase[5]=<StartApp ClickClear ClickBye>
TestCase[6]=<StartApp ClickHello ClickClear ClickBye>
TestCase[7]=<StartApp ClickClear ClickHello ClickBye>
TestCase[8]=<StartApp ClickHello ClickWorld ClickBye>
TestCase[9]=<StartApp ClickMBT ClickClear ClickBye>
TestCase[10]=<StartApp ClickClear ClickMBT ClickBye>
TestCase[11]=<StartApp ClickWorld ClickHello ClickBye>
TestCase[12]=<StartApp ClickHello ClickHello ClickBye>
TestCase[13]=<StartApp ClickHello ClickMBT ClickBye>
TestCase[14]=<StartApp ClickWorld ClickWorld ClickBye>
TestCase[15]=<StartApp ClickClear ClickWorld ClickBye>
TestCase[16]=<StartApp ClickWorld ClickClear ClickBye>
TestCase[17]=<StartApp ClickMBT ClickMBT ClickBye>
TestCase[18]=<StartApp ClickMBT ClickWorld ClickBye>
TestCase[19]=<StartApp ClickWorld ClickWorld ClickMBT ClickBye>
TestCase[20]=<StartApp ClickWorld ClickClear ClickMBT ClickBye>
TestCase[21]=<StartApp ClickClear ClickHello ClickWorld ClickBye>
TestCase[22]=<StartApp ClickClear ClickHello ClickClear ClickBye>
TestCase[23]=<StartApp ClickClear ClickWorld ClickWorld ClickBye>
TestCase[24]=<StartApp ClickHello ClickWorld ClickHello ClickBye>
TestCase[25]=<StartApp ClickWorld ClickMBT ClickMBT ClickBye>
TestCase[26]=<StartApp ClickMBT ClickClear ClickClear ClickBye>
TestCase[27]=<StartApp ClickWorld ClickMBT ClickClear ClickBye>
TestCase[28]=<StartApp ClickHello ClickWorld BuggyClick ClickWorld ClickBye>
TestCase[29]=<StartApp ClickMBT ClickWorld BuggyClick ClickWorld ClickBye>
TestCase[30]=<StartApp ClickWorld BuggyClick ClickWorld ClickWorld ClickBye>
TestCase[31]=<StartApp ClickWorld ClickClear ClickHello ClickWorld ClickBye>
TestCase[32]=<StartApp ClickMBT ClickClear ClickClear ClickHello ClickBye>
TestCase[33]=<StartApp ClickWorld ClickWorld ClickHello ClickMBT ClickBye>
TestCase[34]=<StartApp ClickHello ClickHello ClickWorld ClickHello ClickBye>
TestCase[35]=<StartApp ClickWorld ClickMBT ClickClear ClickMBT ClickBye>
TestCase[36]=<StartApp ClickClear ClickMBT ClickHello ClickWorld ClickBye>
TestCase[37]=<StartApp ClickHello ClickWorld ClickWorld ClickMBT ClickBye>
TestCase[38]=<StartApp ClickClear ClickHello ClickHello ClickWorld ClickBye>
TestCase[39]=<StartApp ClickClear ClickHello ClickMBT ClickClear ClickBye>
TestCase[40]=<StartApp ClickClear ClickMBT ClickWorld ClickClear ClickWorld ClickBye>
TestCase[41]=<StartApp ClickHello ClickWorld BuggyClick ClickWorld ClickMBT ClickBye>
TestCase[42]=<StartApp ClickHello ClickMBT ClickClear ClickMBT ClickHello ClickBye>
TestCase[43]=<StartApp ClickClear ClickWorld ClickHello ClickWorld BuggyClick ClickWorld ClickBye>
TestCase[44]=<StartApp ClickHello ClickMBT ClickWorld BuggyClick ClickWorld ClickWorld ClickBye>
TestCase[45]=<StartApp ClickClear ClickMBT ClickWorld ClickHello ClickClear ClickHello ClickBye>
TestCase[46]=<StartApp ClickHello ClickWorld ClickClear ClickWorld BuggyClick ClickWorld ClickBye>
TestCase[47]=<StartApp ClickMBT ClickWorld BuggyClick ClickWorld ClickHello ClickMBT ClickBye>
TestCase[48]=<StartApp ClickWorld ClickMBT ClickMBT ClickWorld BuggyClick ClickWorld ClickWorld ClickBye>
TestCase[49]=<StartApp ClickMBT ClickHello ClickMBT ClickWorld ClickWorld ClickMBT ClickMBT ClickBye>
TestCase[50]=<StartApp ClickClear ClickWorld ClickClear ClickHello ClickMBT ClickHello ClickClear ClickBye>
TestCase[51]=<StartApp ClickWorld ClickHello ClickHello ClickWorld ClickMBT ClickWorld ClickClear ClickMBT ClickBye>
Am Ende des Tests wird abschließend die Nachricht



ausgegeben und signalisiert, dass 9 von 51 Testfälle während des Tests fehlerhaft ausgeführt wurden.