Our strength is the automated, model-based generation of test suites using graphical user models for hardware and software systems.



Hello MBT World - Model-based testing for beginners



The Hello-MBT-World example demonstrates how model-based testing can be used to test Java GUI applications. For this purpose, a Java Swing application HelloMBTWorld.jar , which is stored in the TestPlayer© directory app together with the source code, is started (see below) in such a way that all click events of the buttons are triggered via an automatically generated test file.



The following diagrams first illustrate how the Java application HelloMBTWorld behaves when the four buttons Hello, MBT, World and Clear are pressed. The red Bye button terminates the execution of the application.


  • Start


  • Hello


  • World


  • MBT


  • Clear


  • MBT


  • World

...

A corresponding statistical usage model, which serves as a basis for the automatic generation of test cases, looks like this for the HelloMBTWorld application:



After starting the Java application, usage state Clear is directly reached from the start state [ and then, depending on whether the click events ClickHello, ClickMBT, ClickWorld or ClickClear are selected the usage states Hello, MBT, World or Clear are reached. Pressing the Bye button generates the click event ClickBye and terminates the test case when the final state ] is reached.

The additional generic probabilities p1 up to p21 at the edges behind the input events define the transition probabilities for selecting the respective input events. Prior to the generation of the test cases, the TestPlayer© replaces the generic values by concrete probability values that either originate from a given test profile or are calculated on the basis of a uniform geometric distribution.

By applying the usage model above the TestPlayer© Dashboard offers simple user interactions to automatically generate dedicated test suites that have specific characteristics, i.e

  • complete coverage of all usage states
  • complete coverage of all possible transitions between the usage states
  • coverage of all loop-free paths between the start state [ and the final state ], i.e. no transition is selected twice within the same test case
The default number of test cases that are generated by the TestPlayer© is 100, but can easily be changed within the TestPlayer© Dashboard. Test suites that possess the specific characteristics defined above arise by reduction with respect to the given coverage and sort criteria. Below three test suites are presented that are generated by using the sort criterion sort_l , i.e. test cases are selected from 100 statistically generated test cases by first sorting them with respect to the length of the test cases.



  • Testsuite state coverage contains 4 (out of 100) test cases
The individual test cases are animated (emphasized by bold orange coloring) and show the current coverage of usage states as well as transitions between the states (represented by pale orange coloring). The number after the colon of the particular click event shows how often the state transition within the test case was executed.


  • Testsuite transition coverage contains 17 (out of 100) test cases
The individual test cases are animated (emphasized by bold orange coloring) and show the current coverage of usage states as well as transitions between the states (represented by pale orange coloring). The number after the colon of the particular click event shows how often the state transition within the test case was executed.


  • Testsuite path coverage contains 57 (out of 100) test cases
The individual test cases are animated (emphasized by bold orange coloring) and show the current coverage of usage states as well as transitions between the states (represented by pale orange coloring). The number after the colon of the particular click event shows how often the state transition within the test case was executed.

In addition to the graphical representations, the TestPlayer© also generates text files that provide the test cases of the test suite in compact JSON format for further processing, especially for test execution.

Content of the file test_cases_for_state_coverage.json.txt:

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  {}
]
Content of the file test_cases_for_transition_coverage.json.txt:

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  {}
]
Content of the file test_cases_for_path_coverage.json.txt:

[
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "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", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickMBT", "MBT"],
    ["MBT", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickClear", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickBye", "]"]
  ],
  [
    ["[", "StartApp", "Clear"],
    ["Clear", "ClickMBT", "MBT"],
    ["MBT", "ClickHello", "Hello"],
    ["Hello", "ClickHello", "Hello"],
    ["Hello", "ClickMBT", "MBT"],
    ["MBT", "ClickWorld", "World"],
    ["World", "ClickHello", "Hello"],
    ["Hello", "ClickClear", "Clear"],
    ["Clear", "ClickBye", "]"]
  ],
  {}
]

Executing the command

java -jar HelloMBTWorld.jar -h
returns the following help text:
NAME
    HelloMBTWorld.jar

SYNTAX
    java -jar HelloMBTWorld.jar [[-f] <test case file>]  [[-t] <time>] [[-d] <level>] [[-h]]


ARGUMENTS
    -f <test case file> :  use file <test case file> to simulate/test the HelloMBTWorld app
                           from a test case file that was automatically generated by the
                           TestUS (https://testus.eu) TestPlayer© MBT tool

    -t <time> :            set the <time> in milliseconds beetween successive klick events
                           (default: 10 ms)

    -d <level> :           set debug level
                           <level>=0: no debug info (only start of test case #1 is shown)
                           <level>=1: confirm each test case (default)
                           <level>=2: confirm each single test step (e.g. klick event)

    -h :                   print this help info
	

The output shows that

java -jar HelloMBTWorld.jar -f test_cases_for_state_coverage.json.txt
performs the testing of HelloMBTWorld.jar by using the generated test suite in the file test_cases_for_state_coverage.json.txt that contains 4 test cases. During the test case execution a timeout of 10 milliseconds separates individual clicks. Each of the five buttons Hello, MBT, World, Clear and Bye is triggered at least once and the following output appears in the console:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickHello ClickBye>
TestCase[4]=<StartApp ClickWorld ClickBye>
At the end of the test, the message



appears and indicates that all 4 test cases have successfully passed the test.
If the coverage of the state transitions has to be ensured the test is started by using the automatically generated test suite test_cases_for_transition_coverage.json.txt that consists of 17 test cases:

java -jar HelloMBTWorld.jar -f test_cases_for_transition_coverage.json.txt
During the test execution the buttons Hello, MBT, World, Clear and Bye are triggered at least once in all possible transition combinations and the following output appears in the console:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickHello ClickBye>
TestCase[4]=<StartApp ClickClear ClickBye>
TestCase[5]=<StartApp ClickWorld ClickBye>
TestCase[6]=<StartApp ClickHello ClickWorld ClickBye>
TestCase[7]=<StartApp ClickHello ClickMBT ClickBye>
TestCase[8]=<StartApp ClickWorld ClickClear ClickBye>
TestCase[9]=<StartApp ClickWorld ClickMBT ClickBye>
TestCase[10]=<StartApp ClickMBT ClickClear ClickBye>
TestCase[11]=<StartApp ClickMBT ClickHello ClickBye>
TestCase[12]=<StartApp ClickMBT ClickMBT ClickBye>
TestCase[13]=<StartApp ClickHello ClickClear ClickBye>
TestCase[14]=<StartApp ClickWorld ClickHello ClickBye>
TestCase[15]=<StartApp ClickWorld ClickWorld ClickBye>
TestCase[16]=<StartApp ClickMBT ClickWorld ClickBye>
TestCase[17]=<StartApp ClickHello ClickHello ClickBye>
At the end of the test, the message



appears and indicates that all 17 test cases have successfully passed the test.
If all possible loop-free paths of the usage model have to be visited the test is started by using the automatically generated test suite test_cases_for_path_coverage.json.txt that consists of 57 test cases:

java -jar HelloMBTWorld.jar -f test_cases_for_transition_coverage.json.txt
During the test execution the buttons Hello, MBT, World, Clear and Bye are triggered in such a way that no transition will appear more than once in each test case. For example the sequence button World is triggered directly after button Hello may appear at most once in a single test case. During the test execution by using the test suite test_cases_for_path_coverage.json.txt the following output appears in the console:

TestCase[1]=<StartApp ClickBye>
TestCase[2]=<StartApp ClickMBT ClickBye>
TestCase[3]=<StartApp ClickHello ClickBye>
TestCase[4]=<StartApp ClickClear ClickBye>
TestCase[5]=<StartApp ClickWorld ClickBye>
TestCase[6]=<StartApp ClickHello ClickWorld ClickBye>
TestCase[7]=<StartApp ClickHello ClickMBT ClickBye>
TestCase[8]=<StartApp ClickWorld ClickClear ClickBye>
TestCase[9]=<StartApp ClickWorld ClickMBT ClickBye>
TestCase[10]=<StartApp ClickMBT ClickClear ClickBye>
TestCase[11]=<StartApp ClickMBT ClickHello ClickBye>
TestCase[12]=<StartApp ClickClear ClickMBT ClickBye>
TestCase[13]=<StartApp ClickMBT ClickMBT ClickBye>
TestCase[14]=<StartApp ClickHello ClickClear ClickBye>
TestCase[15]=<StartApp ClickWorld ClickHello ClickBye>
TestCase[16]=<StartApp ClickWorld ClickWorld ClickBye>
TestCase[17]=<StartApp ClickMBT ClickWorld ClickBye>
TestCase[18]=<StartApp ClickHello ClickHello ClickBye>
TestCase[19]=<StartApp ClickWorld ClickHello ClickClear ClickBye>
TestCase[20]=<StartApp ClickClear ClickMBT ClickWorld ClickBye>
TestCase[21]=<StartApp ClickWorld ClickClear ClickHello ClickBye>
TestCase[22]=<StartApp ClickClear ClickHello ClickClear ClickBye>
TestCase[23]=<StartApp ClickMBT ClickWorld ClickMBT ClickBye>
TestCase[24]=<StartApp ClickMBT ClickMBT ClickWorld ClickBye>
TestCase[25]=<StartApp ClickHello ClickWorld ClickClear ClickBye>
TestCase[26]=<StartApp ClickMBT ClickMBT ClickHello ClickClear ClickBye>
TestCase[27]=<StartApp ClickWorld ClickHello ClickHello ClickWorld ClickBye>
TestCase[28]=<StartApp ClickWorld ClickMBT ClickHello ClickClear ClickBye>
TestCase[29]=<StartApp ClickMBT ClickWorld ClickClear ClickClear ClickBye>
TestCase[30]=<StartApp ClickMBT ClickHello ClickMBT ClickWorld ClickBye>
TestCase[31]=<StartApp ClickMBT ClickHello ClickHello ClickWorld ClickBye>
TestCase[32]=<StartApp ClickHello ClickWorld ClickMBT ClickHello ClickBye>
TestCase[33]=<StartApp ClickClear ClickHello ClickHello ClickMBT ClickBye>
TestCase[34]=<StartApp ClickClear ClickWorld ClickHello ClickHello ClickWorld ClickBye>
TestCase[35]=<StartApp ClickWorld ClickWorld ClickMBT ClickHello ClickClear ClickBye>
TestCase[36]=<StartApp ClickClear ClickWorld ClickWorld ClickMBT ClickClear ClickBye>
TestCase[37]=<StartApp ClickHello ClickHello ClickWorld ClickWorld ClickHello ClickBye>
TestCase[38]=<StartApp ClickHello ClickMBT ClickHello ClickWorld ClickMBT ClickBye>
TestCase[39]=<StartApp ClickMBT ClickMBT ClickWorld ClickMBT ClickHello ClickBye>
TestCase[40]=<StartApp ClickHello ClickWorld ClickClear ClickMBT ClickClear ClickBye>
TestCase[41]=<StartApp ClickMBT ClickHello ClickWorld ClickMBT ClickMBT ClickBye>
TestCase[42]=<StartApp ClickWorld ClickMBT ClickHello ClickHello ClickWorld ClickBye>
TestCase[43]=<StartApp ClickMBT ClickWorld ClickHello ClickWorld ClickWorld ClickBye>
TestCase[44]=<StartApp ClickWorld ClickMBT ClickClear ClickClear ClickHello ClickClear ClickBye>
TestCase[45]=<StartApp ClickMBT ClickClear ClickHello ClickMBT ClickMBT ClickHello ClickBye>
TestCase[46]=<StartApp ClickMBT ClickHello ClickClear ClickWorld ClickWorld ClickHello ClickBye>
TestCase[47]=<StartApp ClickHello ClickClear ClickWorld ClickClear ClickMBT ClickWorld ClickBye>
TestCase[48]=<StartApp ClickClear ClickMBT ClickWorld ClickClear ClickWorld ClickHello ClickBye>
TestCase[49]=<StartApp ClickHello ClickHello ClickMBT ClickClear ClickWorld ClickHello ClickBye>
TestCase[50]=<StartApp ClickWorld ClickMBT ClickClear ClickMBT ClickWorld ClickWorld ClickBye>
TestCase[51]=<StartApp ClickHello ClickClear ClickMBT ClickHello ClickMBT ClickClear ClickBye>
TestCase[52]=<StartApp ClickHello ClickMBT ClickWorld ClickClear ClickClear ClickWorld ClickWorld ClickBye>
TestCase[53]=<StartApp ClickWorld ClickMBT ClickWorld ClickWorld ClickHello ClickClear ClickClear ClickBye>
TestCase[54]=<StartApp ClickHello ClickMBT ClickMBT ClickHello ClickClear ClickMBT ClickClear ClickBye>
TestCase[55]=<StartApp ClickHello ClickClear ClickMBT ClickWorld ClickMBT ClickClear ClickClear ClickBye>
TestCase[56]=<StartApp ClickWorld ClickHello ClickClear ClickClear ClickMBT ClickMBT ClickHello ClickBye>
TestCase[57]=<StartApp ClickMBT ClickHello ClickHello ClickMBT ClickWorld ClickHello ClickClear ClickBye>
At the end of the test, the message



appears and indicates that all 57 test cases have successfully passed the test.