1. What is Finite State Machine Based Testing?

1.1. Introduction

Often, high-level (functional) tests are carried out manually, implementing a tailored solution, e.g, via shell scripts or launch files, for a specific system setup. Besides the effort of manual execution and supervision, current tests mostly do not take timing and orchestration, i.e., required process start-up sequence, into account. Furthermore, successful execution of components is not verified, which might lead to subsequent errors during the execution chain. Most importantly, all this knowledge about the test and its environment is implicit, often hidden in the actual implementation of the tailored test suite.

To overcome these issues, this framework introduces a generic, event-driven and configurable state-machine based process to automate:

    1. Environment setup
    1. System bootstrapping
    1. System tests
    1. Result assessment
    1. Exit and clean-up strategy

We have chosen a hierarchical state-based approach in order to inherit a well structured automaton, which enables us to invoke the steps mentioned above, in the desired order, and to explicitly model required test steps. Furthermore, the state-chart model enables us to invoke states in parallel, or sequentially, which also makes orchestration, e.g., start-up of system components, feasible and most importantly controllable. Last but not least, errors during the execution will prematurely end the state-machine to prevent subsequent errors.

1.2. Concept