WP6-03
Model-based Mutation Testing - Protocol Testing
ID | WP6-MoMuT |
Contributor | AIT |
Levels | Tool |
Require | Linux, Windows, UML/Event-B/OOAS model |
Provide | Generation of a set of test cases and provides feedback about the quality of the existing test suite. |
Input | UML/Event-B/OOAS model, testinterface |
Output | Test suite |
C4D tooling | n.a. |
TRL | 4 |
License | Commercial, Non-Commercial, Academic |
URL | https://momut.org/ |
MoMuT is a model-based testing tool addressing functional and non-functional test-case generation from behaviour models. It can work from several different input modelling languages (e.g. UML and domain specific languages) ([1][2][3][4]).
Detailed Description
MoMuT is a model-based testing tool addressing functional and non-functional test-case generation from behaviour models. It can work from several different input modelling languages (e.g. UML and domain specific languages).
For functional test- case generation, it uses mutation-based test- case generation, where a behaviour model is slightly changed (= mutated) and test cases are searched that would allow to discriminate the original and the mutant by the outside behaviour. The change might e.g. be a modified operator or a literal used. The concept is sketched in the following figure.
Non-functional aspects that can be addressed are:
- safety invariants (by checking condition during exploration)
- robustness (via smart fuzzing on top of generated tests)
- performance (if a learned cost predictor can be derived)
Contribution and Improvements
In the project, AIT improved support for testing communication protocols driven by the needs of evaluating the correctness of an implementation of a key exchange protocol. The toolchain proposed by AIT to address UC5 is a model-based test case generation framework, whereby we create a model of the protocol to test, run the model-based mutation testing tool and then use the test to verify the protocol implementation. The main tools involved are Papyrus for the modelling, MoMuT for the test-case generation from the model and finally a test-adapter to run the tests against the protocol implementation.
Interoperability with other C4D tools
Models to be used as input for MoMuT can be in different formats and formalisms e.g. UML (in Eclipse Papyrus or SparxSystems Enterprise Architect format), a MoMuT specific textual format or a domain specific language. If Papyrus UML is used, this should be compatible/integrable with models for Papyrus4Robotics. This could also lead to interoperation with the security analysis tool.
References
[1] MoMuT::UML model-based mutation testing for UML. Aichernig, B, et al. 2015. 2015 ieee 8th international conference on Software testing, verification and validation (icst). p. 1-8.
[2] Mapping UML to labeled transition systems for test-case generation: a translation via object-oriented action systems. Krenn, W, Schlick, R and Aichernig, B. K. Berlin, Heidelberg : s.n., 2010. Proceedings of the 8th international conference on formal methods for components and objects. pp. 186–207.
[3] Fellner, Andreas, Tarrach, Thorsten and Weissenbacher, Georg. Language Inclusion for Finite Prime Event Structures. VMCAI. s.l. : Springer, 2020, Vol. 11990, pp. 314-336.
[4] Fellner, Andreas , et al. Model-based, Mutation-driven Test-case Generation Via Heuristic-guided Branching Search. ACM Trans. Embed. Comput. Syst. 2019.