Gotten is a model-driven engineering approach that automates the construction of Metamorphic Testing (MT) environments. Starting from a meta-model that captures the concepts of a domain and a description of the domain execution environment, Gotten produces a tailored MT environment. This environment supports the definition and evaluation of domain-specific Metamorphic Relations (MRs), detailed reporting of test results, and the automated search-based generation of follow-up test cases.
Defining and executing metamorphic relations with mrDSL
Gotten provides a domain-specific language called mrDSL for defining and executing MRs. An mrDSL program declares the domain meta-models and model instance names, input features expressed through OCL, output features, processor attributes, and the metamorphic relations to be evaluated.
metamodel datacentre "/sample.gotten/model/datac.ecore" with m1, m2
models "/sample.gotten/model/dcmodels"
metamodel workload "/sample.gotten/model/workload.ecore" with w1, w2
models "/sample.gotten/model/workloads"
datacentre input Features {
context DataCentre def: NNodes: Int = racks->collect(numBoards*board.nodesPerBoard)->sum()
context DataCentre def: CPU: Int = racks->collect(
numBoards*board.nodesPerBoard*board.nodeType.CPUCores*board.nodeType.CPUSpeed)->sum()
}
output Features {
Time : Long
Energy : Long
}
Processor {
Name: String
Version: String
}
MetamorphicRelations {
MR1 = [(( NNodes(m1) > NNodes(m2) ) and ((w1) == (w2)) ) implies ((Time(m1) <= Time(m2)))]
MR2 = [(( CPU(m1) > CPU(m2) ) and ((w1) == (w2)) ) implies ((Energy(m1) <= Energy(m2)))]
}
Generating follow-up test cases with fowDSL
Gotten also provides fowDSL, a language for configuring the generation of follow-up test cases. The generation method is based on MOMoT. For each MR, users can specify the allowed model operations, such as increasing or decreasing numerical attributes or creating and deleting objects. They can also define operation limits, optimisation objectives, the maximum number of solutions, and the search algorithms to be used.
followups for datacentre using MR1
with source folder = "/sample.gotten/model/dcmodels"
and output folder = "/sample.gotten/model/dcmodels"
NNodes -> decrease [1..4] Rack.numBoards keeping {Rack.numBoards > 0};
decrease [1..4] Board.nodesPerBoard keeping {Board.nodesPerBoard > 0}
maximize ( NNodes(m2) - NNodes(m1) )
maxSolutions 10
iterations 2
algorithms [Random, NSGAII, NSGAIII, eMOEA]
Installation
- Install Gotten from the Eclipse update site by using the Eclipse Install New Software facility.

- Download the standalone Eclipse with Gotten for Windows.
- Download the standalone Eclipse with Gotten for Ubuntu.
- Download the Ubuntu 20.04 VirtualBox virtual machine with Gotten pre-installed.
Sample projects
Cloud simulators
Video streaming APIs
Demonstrations
Select the image below to watch a demonstration of the Gotten development environment.
Select the following image to watch a short introductory presentation of Gotten.
The following image shows the wizard that guides users through the MT process.

Authors and contributors
Gotten has been developed by Pablo Gómez-Abajo, Pablo C. Cañizares, Alberto Núñez, Esther Guerra, and Juan de Lara.
We also acknowledge the developers of the frameworks used to implement Gotten:
- Xtext supports the development of programming languages and domain-specific languages through a grammar-based approach.
- Henshin is used to define the transformation units that manipulate models.
- MOMoT combines model-driven engineering with search-based optimisation to solve complex model-level problems.
Related publications
- Towards metamorphic testing with LLM-based workflows: Metamorphic relation inference and follow-up test case generation. Pablo C. Cañizares, Pablo Gómez-Abajo, Esther Guerra, Juan de Lara. 2026. In Information and Software Technology, Elsevier.
- Gotten: A model-driven solution to engineer domain-specific metamorphic testing environments. Pablo Gómez-Abajo, Pablo C. Cañizares, Alberto Núñez, Esther Guerra, Juan de Lara. 2023. In the ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2023), Västerås.
- Automated engineering of domain-specific metamorphic testing environments. Pablo Gómez-Abajo, Pablo C. Cañizares, Alberto Núñez, Esther Guerra, Juan de Lara. 2023. In Information and Software Technology, Elsevier.
- New ideas: Automated engineering of metamorphic testing environments for domain-specific languages. Pablo C. Cañizares, Pablo Gómez-Abajo, Alberto Núñez, Esther Guerra, Juan de Lara. 2021. In the ACM SIGPLAN International Conference on Software Language Engineering (SLE 2021), Chicago. Best New Ideas/Vision Paper Award at SLE 2021.
Acknowledgements
This work was funded by the Spanish Ministry of Science through project MASSIVE (RTI2018-095255-B-I00) and by the Madrid R&D programme through project FORTE (P2018/TCS-4314).

