The goal of MOGENTES is to significantly enhance testing and verification of dependable embedded systems by means of automated generation of efficient test cases relying on development of new approaches as well as innovative integration of state-of-the-art techniques. In particular, MOGENTES aims at the application of these technologies in large industrial systems, simultaneously enabling application domain experts (with rather little knowledge and experience in usage of formal methods) to use them with minimal learning effort.
Today, embedded computer systems constitute already an integral part of almost all technology surrounding us. Also, they are increasingly integrated in safety-relevant systems, either in any kind of vehicles, medical equipment, or industrial or public control systems. Evidently, any possible measure has to be taken to ensure the dependability of such systems, from early planning and design to final installation and maintenance. This, however, leads to the fact that today for highly dependable systems testing accounts for at least 50% of the development costs.
Part of the reason is that testing has still to be done manually to a large degree; for instance, in many projects testers are forced to manually reverse-engineer the implementation in order to achieve the coverage required for a successful certification (e.g. MC/DC) as suggested by the RTCA DO-178B standard for software development for airborne systems), because an abstract model of the system is typically not available, or it was created in the early phases of the development cycle and does not conform to the final product.
Considering the recent advances in modelling methods and model-based software generation, MOGENTES addresses the following objectives:
- To reduce testing effort by at least 20%.
- To generate efficient test cases from system and fault models, using new, domain-specific coverage metrics, for functional and non-functional system properties of new and existing complex embedded systems.
- To establish a framework for integration of involved tools, including model transformations to prepare inputs for model checkers etc., which can be easily used by domain experts.
- To provide traceability of requirements and match them to test analysis results.
- To foster application of automated testing for satisfying functional safety standards requirements.
- In general, to increase the confidence in safety-relevant embedded systems by improving their testing and proving their conformance with safety standards.
These objectives shall be achieved with the following concepts:
- Define common modelling languages and semantics (meta-models), with UML as primary candidate, such that the domain specific requirements of the demonstrators can be reflected, and the (partial) models of the demonstrators can be mapped to this language.
- Define a test theory that defines the conformance relation between the model and the implementation, and the notion of success and failure of a test case.
- Define fault models (for software as well as hardware) and extend the modelling languages to allow the integration of the representation of faults into the (application) models.
- Define new coverage criteria under consideration of minimal cut sets (i.e., combinations of faults causing a safety requirement violation), fault injection, mutation testing, and safety aspects, and use existing TCG techniques to generate efficient test cases that achieve this coverage.
- Use model-based fault injection (MBFI) to extend models for automatically calculating minimal cut sets.
- Validate the defined fault models (and thus the generated test cases) with physical fault injection.
- Use (bounded) model checking techniques to generate stress test scenarios.
- Provide semantics-aware transformations from system models to inputs of specific tools, e.g. to enable interaction of generated models with existing simulation environments for allowing evaluation of model coverage.