Forschungsthemen
[DA] Systematic Grammar-based Testing of Model-Driven Code-Generation Toolchains
## Motivation Code generators are used to generator code from specifications. Particularly for interface definition languages, code for multiple target languages must be generated, a process that can be simplified by using staged approaches like model-driven toolchains. This thesis investigates how such code generators can be tested systematically, using a case study of the robot operating system (ROS) interface definition language and a code generator for FPGA interface components specified in VHDL, the FIRM tool. ## Objectives of Work While an extensive test suite for the FIRM tool already exists, the main focus of the thesis is to obtain a systematically constructed test suite that (a) maximises the coverage of the code generator and its generated artefacts while (b) minimising the runtime of the tests. To achieve these goals, after studying the relevant state of the art, two main contributions are required. First, a notion of coverage must be found that adequately addresses the intermediate artefacts of the employed toolchain (such as the templates and the template configurations). Then, a grammar-based test case generation approach must be developed and applied that considers the nature of the grammar describing the ROS message types. Relations between different messages types must be considered. This approach is evaluated by applying the derived metrics and a runtime analysis comparing the existing test suite and the one constructed in this work. ## Focus of Work 1. Investigate the state of the art in grammar-based test case generation, with a focus on approaches addressing structural semantic relations in the abstract syntax tree. 2. Analyse how coverage is defined in model-driven engineering based systems, especially those using template-based code generation. 3. Define helpful coverage metrics for the provided system infrastructure, considering both the language of ROS messages and the artefacts of the template-based code generation. 4. Design a test framework to maximise coverage with minimal number of tests/minimum test runtime. 5. Evaluate the designed testing approach conceptually by comparing it to related works and empirically based on the provided system infrastructure (FIRM tool) and its existing test suite.
Betreuer: Johannes Mey-:#-#:- Ariel Podlubne