MutUML tool

About:

Mutation testing is a well-known technique of assessing the quality of test suites. Whilst support for mutation analysis exists for test techniques that operate on lower levels of system abstraction, i.e. code-level mutation operators, there is not a lot of support available for model-level mutation analysis.

We have developed a mutation tool for UML Class Diagrams called MutUML (Mutation for UML).

The tool applies 18 mutation operators to generate first order mutants. MutUML is separated into three distinct parts:



Mutation Operators for First Order Mutants:
# Code Mutation Operator Rule
1 UPA2 Adds an extraneous Parameter to an Operation
2 WCO1 Changes the constraint by deleting the references to a class Attribute
3 WCO3 Change the constraint by deleting the calls to specific operation
4 WCO4 Changes an arithmetic operator for another and supports binary operators: +, -,*,/
5 WCO5 Changes the constraint by adding the conditional operator ?not?
6 WCO6 Changes a conditional operator by another and supports operators: or, and
7 WCO7 Changes the constraint by deleting the conditional operator ?not?
8 WCO8 Changes a relational operator by another and supports operators: <, <=, >, >=, ==, !=
9 WCO9 Changes a constraint by deleting a unary arithmetic operator (-)
10 WAS1 Interchange the members (memberEnd) of an Association
11 WAS2 Changes the association type (i.e. normal, composite)
12 WAS3 Changes the memberEnd multiplicity of an Association (i.e. *-*, 0..1-0..1, *-0..1
13 WCL1 Changes visibility kind of the Class (i.e. private)
14 WOP2 Changes the visibility kind of an operation.
Restriction:WOP2 has to be applied to operations that are not related with any constraints
15 WPA Changes the Parameter data type (i.e. String, Integer, Boolean, Date, Real).
Restriction:WPA has to be applied to parameters that are not related with attributes in a constructor operation. To reduce mutants only a change for operation is counted
16 MCO Deletes a constraint (i.e. pre-condition, post-condition constraint, body constraint)
17 MAS Deletes an Association.
Restriction: MAS has to be applied to associations that are not related with any constraints.
18 MPA Deletes a Parameter from an Operation.
Restriction: This mutation operator has to be applied to operations without related constraints

Download:
Contacts: Tanja Vos | Maria F. Granda