WP6-03: Difference between revisions

From COMP4DRONES
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 20: Line 20:
|-
|-
|  License || Commercial, Non-Commercial, Academic
|  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] [5]).
MoMuT is a model based testing tool addressing functional and non-functional test-case generation from behaviour models. Non-functional aspects include safety invariants and robustness testing ([1][2][3][4]).


== Detailed Description ==
== 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.
[[File:MoMuT_tcg.png|600px|thumb|frame|center| Mutation based test case generation.]]
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==
==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.


[[File:MoMuT_toolchain.png|600px|thumb|frame|center| MoMuT toolchain]]


== Interoperability with other C4D tools ==
== Interoperability with other C4D tools ==
Line 34: Line 49:
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.  
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.  


 
[[File:MoMuT_Inperoperability.png|600px|thumb|frame|center| MoMuT tool interoperability graph]]


==References==
==References==
Line 45: Line 60:


[4] Fellner, Andreas , et al. Model-based, Mutation-driven Test-case Generation Via Heuristic-guided Branching Search. ACM Trans. Embed. Comput. Syst. 2019.
[4] Fellner, Andreas , et al. Model-based, Mutation-driven Test-case Generation Via Heuristic-guided Branching Search. ACM Trans. Embed. Comput. Syst. 2019.
[5] https://momut.org/

Latest revision as of 14:00, 4 October 2022

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. Non-functional aspects include safety invariants and robustness testing ([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.

Mutation based test case generation.

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.

MoMuT toolchain

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.

MoMuT tool interoperability graph

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.