Model-based testing (MBT) is a variant of software testing, where the behaviour of the software is verified against a previously defined behaviour model. Verifying softwares, using this method, can solve the most crucial parts of traditional software testing and may also offer some other benefits. Although MBT is a mature idea and the field is well studied, reports show that available solutions are not fully complete and often targeted to solve only subparts of the original problem.
This thesis aims to present the full development lifecycle of a model-based testing framework that can help in all phases of the testing and that is able to generate test suites based on state machine like modelling notations.
To fully support the whole testing process I had been investigating thoroughly the background of model-based testing. Main goal of this research was to identify the primary tasks of the different testing phases and to collect all possible information that are needed to create this testing tool.
Using this knowledge I examined the related work. Comparison of available MBT tools can serve as a good starting point to develop a comprehensive solution, therefore summarising the experiences about these tools also important.
After gathering all the required information I made some design choices to start the development. Main architecture, the necessary technologies and tools have to be selected at the design phase as well.
The implementation chapter demonstrates the features of the testing framework and describes the internal behaviour in details. The different steps of the testing are exemplified by generating a test suite for a trivial software. States of the internal structures and intermediate results are showed also regarding this trivial example.
Results of the finished implementation are represented by measurements. I measured the performance of the framework during the development, thus the improvement after each iteration was quantifiable. According to these measurements the resulted software can be evaluated, proposing new features and room for future improvements.