menu
Gotten

Overview

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.

Installing Gotten from the Eclipse update site

Sample projects

Cloud simulators

Video streaming APIs

Demonstrations

Select the image below to watch a demonstration of the Gotten development environment.

Gotten development environment in action

Select the following image to watch a short introductory presentation of Gotten.

Introductory presentation of the Gotten environment

The following image shows the wizard that guides users through the MT process.

Gotten wizard for executing 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.
  1. 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.
  2. 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.
  3. 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.
  4. 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).