The main goal of software development projects is creating software artifacts while utilizing efforts in an effective way. Identifying and correcting errors during development can be a good method to reduce required efforts. Early detected errors require less efforts to be corrected.
Testing of software projects facilitates early detection of errors. The goals of testing are the examination whether a software product fulfills the imposed design specifications and meets the operational needs of users. These processes are verification and validation.
Model transformation is also a software product. The main usage of model transformations is code generation: a model is made of a specific problem in a domain, and a source code, which is also a model, is generated from this model. This source code is usually generated in a general purpose programming language. A carefully planned and implemented model transformation, that generate source code, can raise the quality of the designed software product. The reason why model transformation is an effective tool to produce quality product, is that the generated output of model transformation is previously reviewed by experts.
Design and implementation errors can also occur during the development of model transformations. The knowledge of domain experts is needed during the planning phase of model transformations, therefore this knowledge is necessary during testing. This process cannot be fully automated.
This thesis presents algorithms that facilitate testing of model transformations for domain specialists. These algorithms generate input models for a model transformation. Rules of the current transformation are executed on these automatically generated input models. This execution results output models. Domain experts then set generated input models against output models. In this way they can conclude whether the model transformation meets the requirements. The presented algorithms help domain specialists by making the testing process partially automated.