Nowadays, complex software systems require deep analysis to ensure correctness and to find possible design and implementation flaws. Testing
is a widely used verification technique to find these problems. However, the testing of systems like autonomous or distributed
systems is a challenging task, as their structure evolves with time, thus leads to a potentially infinite number of different system configurations and structures. It is difficult to cover the relevant settings by testing. My work focuses to the complex task of testing distributed autonomous systems.
The first goal of my thesis is to create a framework which is able to generate test data. The output of the algorithm is a diverse set of test data which is used as possible test configuration settings and as input data of the System Under Test (SUT). My approach is able to produce a wide range of conceptionally and structurally different test data which is highly needed to cover the full scale of the possible system behaviours and configurations. My solution generates abstract test data which is an object hierarchy which attributes are missing, then these attributes are concretized.
I introduce a test generation framework to support the testing of systems described by metamodel, well-formedness constraints and instance
models. The test generation procedure is built from the following steps: 1) the description of the system and the test data selection criteria 2) the generation of various abstract tests 3) the concretization of the abstract tests to structurally different models of the metamodel (interpreted as test data). I introduce a language for describing test goals over arbitrary metamodels. In addition other parameters can also be defined to fine tune the algorithms.
The prototype tool is successfully integrated to Eclipse Modelling Framework, which is able to transform the system description defined as a metamodel, OCL
(Object Constraint Language) constraints, other Alloy language typed consistency constraints and the initial configurations to a logic problem. The generated logic problem language is Alloy or Alloy* which is solved by the Alloy Analyzer. The generated logic models are transformed back to the standard models of the metamodel. Those models can be immediately used as test inputs. I demonstrate the usefulness of the approach with two case studies from the autonomous robotic and Yakindu state machine domains. In the industrial Yakindu case study the goal is to generate valid state machines using by its reduced metamodel. The other case study come from R5-COP European Union R\&D project where the goal is to generate test rooms for autonomous robots.