Testing is one of the major and costly phases in the life cycle of software development. Test Automation is an important method for reducing the cost of software development, and automated test case generation is also one of the most important parts in test automation that has prompted many researchers in industry and academia to work on this topic. Since generating test cases manually are laborious, time-consuming and expensive, researchers seek ways to generate test cases automatically. Model-based testing for automatic generation of test cases is one of the main methods in the process of test automation. Also, by introducing model-driven engineering, the model-driven testing approach was introduced. Model-driven testing is a model-based testing approach that uses model-driven engineering concepts.
In this study, a model-driven testing framework is provided to generate test cases to validate the functional and non-functional performance requirements. To evaluate the functional requirements, first, the sequence diagrams and class diagram are read as input and are transformed UML Testing Profile models. Then these models are automatically transformed to test cases. For better links between levels of testing and for validation groups of components, interaction overview diagram is used to display the behavior of the system. Component level diagrams are considered as nodes of the graph for the automatic generation of integration test cases. Also, in this framework, an approach is provided for non-functional testing for evaluating the system performance. For this purpose, design models are considered as inputs of this approach and by using reusable design models, test cases are produced. In this regard, the concept of workload is used to define constraints on system performance to apply constraints in the testing.
To evaluate the proposed method, test cases are automatically generated for a health appointment system. The results of the proposed method indicate that the cost of testing is reduced.