TETRABox - A Generic White-Box Testing Framework for Model Transformations
Sprache der Bezeichnung:
Model transformations are crucial for Model-Driven Engineering (MDE), comparable in importance to compilers for programming languages, allowing to transform between languages and abstraction levels. Given their increasing use in safety critical areas such as aviation industry, proper means for testing the correctness of model transformations are inevitable.
Although first testing frameworks have been proposed, they fall short with respect to test source model generation and fault localization, and they are typically hardly configurable and tightly coupled to a certain transformation language. Second, apart of these frameworks, first isolated approaches for the phase of test source model generation have been proposed, which, however, rely on black-box testing techniques, thus, incorporating the source metamodels and the requirements, but neglect the transformation definition, which may lead to untested parts of the transformation definition. Finally, means for fault localization are missing, since testing approaches identify the failing of a test case, but miss to provide the failing parts of the transformation definition.
For tackling these limitations, the aim of TETRABox is to establish a comprehensive testing framework for model transformations supports all testing phases, ranging from test source model generation to fault localization especially focusing on configurable components. To keep it broadly applicable, the envisioned components for testing are independent of a transformation language, allowing new languages to be incorporated by providing a transformation to the common formalism of a control flow graph. Second, to leverage white-box testing, TETRABox allows automatic generation of test source models on basis of the transformation definition by means of symbolic execution. Finally, for fault localization, oracles offering a dedicated failure trace are employed, which are used to provide an entry point for debugging by slicing techniques.