<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A DSL for Model Mutation and its Applications to Different Domains</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pablo G´omez-Abajo</string-name>
          <email>Pablo.GomezA@uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Auto ́noma de Madrid</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model-Driven Engineering (MDE) is a Software Engineering paradigm that focuses all phases of the software development process in models. Therefore, the automated manipulation of models is essential in MDE. While many Domain-Specific Languages (DSLs) exist to specify model transformation, model simulation, or code generation, there is a lack of DSLs to specify and apply model mutations. A model mutation is a kind of model manipulation that creates a set of variants (or mutants) of a seed model by the application of one or more mutation operators. Model mutation has many applications (e.g., model transformation testing, automated generation of exercises, verification of software testing, etc.). The objective of this thesis is the creation of a DSL for model mutation, and its application to different domains like education, model-based testing and search-based software engineering.</p>
      </abstract>
      <kwd-group>
        <kwd>Domain-Specific Languages</kwd>
        <kwd>Model-Driven Engineering</kwd>
        <kwd>Model Mutation</kwd>
        <kwd>Education</kwd>
        <kwd>Automated Generation of Exercises</kwd>
        <kwd>Software Testing Verification</kwd>
        <kwd>Evolutionary Algorithms</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Model-Driven Engineering (MDE) [
        <xref ref-type="bibr" rid="ref19 ref4">4,19</xref>
        ] uses models in all phases of the
software development process. Hence, model manipulation is a key activity in
MDE, for which domain-specific languages (DSLs) particularly tailored to the
transformation task are heavily used [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        A model mutation is a kind of model manipulation that creates a set of
variants (or mutants) of a seed model by the application of one or more mutation
operators. Model mutation has many applications. For example, in model
transformation testing [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], a transformation is represented as a model that is mutated
to evaluate the efficacy of a test set. Such a test set may have been created by
mutation of a set of input seed models. In education, a model representing a correct
solution in a domain (like a class diagram, an automaton or an electronic circuit)
is mutated to produce exercises (e.g., consisting in the identification of the errors
injected by the mutations) that can automate the suggested answer [
        <xref ref-type="bibr" rid="ref18 ref8">8,18</xref>
        ].
      </p>
      <p>
        There are some frameworks for model mutation, but they are specific for a
language (e.g., logic formulae [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]) or domain (e.g., testing [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]); moreover,
mutation operators are normally created using general-purpose programming
languages that are not tailored to the definition and production of mutants. Hence,
there is a lack of proposals facilitating the definition of mutation operators,
applicable to arbitrary languages and applications. These would facilitate the
creation of domain-specific mutation frameworks like the abovementioned ones
by providing: high-level mutation primitives (e.g., for object creation or reference
redirection) together with strategies for their customization; support for
composition of mutation operators; handy integration with external applications (e.g.,
in education, search-based software engineering, model-based testing) through
dedicated post-processors or compilation into a general-purpose language; and
traceability of the applied mutations.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>In this section, we review related works on the main line of related research:
the application of mutation techniques to different contexts and domains.</p>
      <p>
        Mutation is used in areas like model-based testing [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], model transformation
testing [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], program testing [
        <xref ref-type="bibr" rid="ref22 ref6">6,22</xref>
        ], adaptive systems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], embedded systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
evaluation of clone-detection algorithms [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], generation of large model sets [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ],
education [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], or evolutionary algorithms [
        <xref ref-type="bibr" rid="ref12 ref15">12,15</xref>
        ]. Most of these systems are
built ad-hoc for a specific domain; therefore, a DSL for model mutation that is
domain-independent would be helpful in automating their construction. Next,
we review approaches related to model mutation in different domains.
      </p>
      <p>
        The mutation framework in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is specific to model transformation testing.
It provides a set of predefined mutation operators which are
transformationspecific and are defined with the Kermeta general-purpose model management
language1. As an alternative, a DSL that has mutation-specific primitives, and is
not restricted to the mutation testing domain would be useful. Also for mutation
testing, the language MuDeL [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] provides a description of mutation operators
for grammar-based artefacts, typically programs. The mutation operators in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
are specific to testing Android apps. We see again that a DSL for model mutation
with further facilities to combine mutation operators, apply them several times,
and discard mutants that are non-conforming to the meta-model, or duplicated
ones, would facilitate these works. Mutation is also central in some search-based
engineering approaches [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], especially in evolutionary algorithms, where
problems are solved by generating a set of candidate solutions, which is iteratively
improved by applying crossover and mutation operators. Candidate solutions
are usually encoded as bit arrays, though some recent works [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] propose
modelbased approaches where the domain is expressed as a meta-model, the candidate
solutions as models, and the mutation operators as model mutators.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Proposed solution</title>
      <p>To facilitate the specification and creation of model mutations in a
metamodel independent way, we propose a DSL called Wodel. Fig. 1 shows the
architecture of our approach. First, the user provides a set of seed models
conformant to a meta-model. Then, they use Wodel to define the desired
mutation operators and their execution details, like how many mutations of each</p>
      <sec id="sec-3-1">
        <title>1 http://www.kermeta.org/documents/</title>
        <p>type should be applied in each mutant, or their execution order. In addition,
each Wodel program needs to declare the meta-model of the models to mutate,
which can be any meta-model because Wodel is meta-model independent. This
allows type-checking the program to ensure it only refers to valid meta-model
types and properties, and allows checking that the result of the mutation is valid.</p>
        <p>WODEL
program
check</p>
        <p>DSL
metamodel
seed
models</p>
        <p>«conforms»
«refers-to»
editor (Xtext)
code completion, validator
code gen (Xtend)</p>
        <p>WODEL
engine
generate, compile, execute
Java code</p>
        <p>postProc
model
mutants</p>
        <p>«refers-to»
mutation
registry</p>
        <p>Fig. 1: Architecture of Wodel’s environment</p>
        <p>Executing a Wodel program produces mutants of the seed models. These
are still valid models (i.e., they conform to the seed models’ meta-model) as this
is checked upon generating each mutant. If the mutant is not conforming to the
meta-model, Wodel iterates the mutant generation until a maximum n number
of times (that can be configured through the preferences page). The produced
Java code, which is in charge of creating the mutants from the seed models as
well as the registry of applied mutations, can be transparently executed from the
Wodel IDE. The registry stores the applied mutations, along with references to
the elements affected by the mutations in the seed model or in the mutants. This
registry generation of the applied mutations is useful when we need to repeat
the mutation process, or we have to generate natural language that describes
the applied mutations. Finally, an optional post-processing step can be used
to generate domain-specific artefacts for particular applications of the mutants.
This will be provided by the Wodel environment through an extension point.
This way, Wodel can also generate mutants in other formats different to EMF
XMI (e.g., json, et.). We plan to extend Wodel to three different applications:
automated generation of exercises; software testing verification; and search-based
software engineering.</p>
        <p>We plan to provide Wodel with correct and incorrect mutant generation:
correct mutants are conforming to the same meta-model of the seed model, and
incorrect mutants may violate some of its constraints (e.g., do not satisfy some
association cardinality constraint). This set of correct and incorrect mutants will
be useful in evolutionary computation (e.g., an incorrect mutant may have better
fitness according to a given criterion than a correct one). Wodel will be able
to distinguish the conforming mutants and the ones that are not conforming to
the meta-model. Also, we will include mechanisms to identify duplicate mutants
not only syntactically, but also semantically. These mechanisms ensure that the
generated mutants will be unique and they are useful in the automated
generation of exercises (e.g., we ensure that the selectable text options, or the set of
diagrams, presented in an exercise correspond to different models), and also in
software testing verification (e.g., we ensure that the mutants of a program to
be verified are behaviourally different).</p>
        <p>Wodel will provide mutation primitives: creation, deletion, edge redirection,
cloning, etc.; and also model element selection strategies: random selection, and
property-based selection (e.g., a selection with a fitness function as a property
will be useful in evolutionary algorithms). We also plan to broaden Wodel with
execution policies: parallel, sequential, distributed (e.g., two Wodel programs
can be executed in parallel in different threads at the same time, so they
generate different results which can be merged afterwards). Also, it will be useful to
provide Wodel with libraries of reusable mutations for particular domains (e.g.,
a library of interesting mutations for the automated generation of exercises of
a particular domain). We find it useful to provide Wodel with a registry
generation of the applied mutations (e.g., to reverse a mutation, or for traceability
reasons). It may also be beneficial to extend the mutations registry with
additional behaviour: compacting the registry (e.g., it is irrelevant to store in the
registry two mutations that cancel each other: one mutation creates an object
and another one deletes it). The registry will also be useful for repeatability
(e.g., it will be necessary in evolutionary computation, to be able to repeat the
mutation process). It will be also interesting to extend this registry with some
mechanisms to verbalize the applied mutations (e.g., verbalizing the applied
mutations forward or backward will be useful to explain students how to do or
undo the mutations in the automated generation of exercises, in order to create
the correct answers that fix the mutant; or the wrong ones, that correspond to
alternative mutants).
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Preliminary work</title>
      <p>We have developed an environment which allows the creation of Wodel
programs and their compilation into Java, and can be extended with post-processor
steps for particular applications. Wodel can also generate a registry of the
applied mutations. We also have created the Wodel-Edu extension to Wodel,
an application on the automated generation of test exercises.</p>
      <p>
        Wodel programs have two parts. The first one declares the number of
mutants to generate, the output folder, the seed models and their meta-model. The
second part defines mutation operators and how many times they should be
applied. Programs can also include a list of OCL constraints that all generated
mutants should fulfil. Details can be checked in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Listing 1 shows a simple
Wodel program. Line 1 states that we want to generate 3 mutants in folder
out, from the seed model evenBinary.fa. Line 2 indicates the meta-model of the
seed model. These configuration parameters can be omitted, and Wodel will
take default predefined values. These default predefined values can be configured
in the editor’s preference page. Lines 4–9 define three mutation operators: the
first one (lines 5–6) selects randomly a final state, and makes it non-final; the
second one (line 7) creates a new final state; and the last one (line 8) creates a
new transition from the state selected in line 5 to the one created in line 7.
1 generate 3 mutants in ”out/” from ”evenBinary.fa”
2 metamodel ”http://fa.com”
3
4 with commands f
5 s0 = modify one State where fisFinal = trueg
6 with freverse(isFinal)g
7 s1 = create State with fisFinal = trueg
8 t0 = create Transition with fsrc = s0, tar = s1, symbol = one Symbolg
9 g
      </p>
      <p>Listing 1: A simple Wodel program</p>
      <p>Wodel-Edu is an extension to Wodel for the automated generation of
test exercises. It provides four DSLs to configure the text and style of exercises
(eduTest), how model elements should be graphically rendered (modelDraw),
how to represent a model element textually (modelText), and how to
represent an applied mutation textually (mutaText). Wodel-Edu is also
domainindependent and generates a web application with exercises for different domains
(e.g., automata, class diagrams, electronic circuits, etc.). Currently, the
generated exercises are of multiple response, but we plan to extend the framework
to support more dynamic exercises, with a better interaction with the student.
A preliminary evaluation of Wodel-Edu showed good results (the generated
application can be accessed on-line at http://www.wodel.eu).</p>
    </sec>
    <sec id="sec-5">
      <title>5 Expected contributions</title>
      <p>Wodel will ease the creation of applications based on mutations by
providing support for their definition, execution and traceability. In addition, we will
develop the following three post-processing extensions:
1. Automated generation of exercises that can automate the suggested answer.</p>
      <p>
        This is our framework Wodel-Edu (see Section 4), which will be extended
with gamification features, and interactive exercises.
2. Software testing verification. The source code of a program (represented as a
model) will be mutated via a set of mutation operators. The quality of the
test cases will be evaluated by checking if they detect the generated mutants.
In addition, we will generate a library of Wodel encoded mutations. This
library will apply to any general-purpose programming language.
3. Search-and model-based software engineering. In this approach,
populationbased search is used to optimize a problem. Problems are represented with
models, and search is performed by mutating the models in the population.
We can use a similar approach as MOMoT [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to select the best mutants, but
with the advantage that our language is more flexible to express mutations.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6 Plan for evaluation and validation</title>
      <p>
        We will evaluate the expressivity of Wodel using in this DSL the interesting
mutations both devised by us and found in the literature [
        <xref ref-type="bibr" rid="ref16 ref18 ref9">9,16,18</xref>
        ]. We will
use the test exercises generated with Wodel-Edu in university courses about
automata theory, electronic circuits, and others. We will use the software testing
verification framework with real software projects, with the collaboration of the
industry. We will also use the approach to test ATL model transformations,
complementing the previous work of our group [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We will use the search-based
engineering environment with the help of our colleagues of the AIDA2 research
group within our department, who are experts in this area.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Current status</title>
      <p>We have developed a preliminary version of Wodel which supports 7 types
of mutation primitives and 4 selection strategies, and composite mutations. We
also have included the registry extension to store which mutations have been
applied to each seed model at the mutants’ generation. We have improved the
Wodel DSL with new mutation primitives; conditional expressions for the
specific selection of elements; and also the declaration of blocks inside Wodel
programs, in order to generate mutants at different stages. These improvements
were necessary for applying Wodel to the automated generation of exercises of
the Wodel-Edu framework. Currently, Wodel-Edu supports three kinds of
test exercises: alternative response, multiple diagram choice, and multiple
emendation choice. The design and development of Wodel includes the evaluation
of the expressivity of the DSL. The work should be finished by the middle of
2019, as it is shown in Fig. 2.</p>
      <sec id="sec-7-1">
        <title>2 http://aida.ii.uam.es/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aranega</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mottu</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etien</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Degueule</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dekeyser</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          :
          <article-title>Towards an automation of the mutation analysis dedicated to model transformation</article-title>
          .
          <source>Softw. Test. Verif. Reliab</source>
          .
          <volume>25</volume>
          (
          <issue>5-7</issue>
          ),
          <fpage>653</fpage>
          -
          <lpage>683</lpage>
          (
          <year>Aug 2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bartel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Munoz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mouelhi</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traon</surname>
            ,
            <given-names>Y.L.</given-names>
          </string-name>
          :
          <article-title>Model driven mutation applied to adaptative systems testing</article-title>
          .
          <source>In: Software Testing, Verification and Validation Workshops (ICSTW)</source>
          ,
          <source>2011 IEEE Fourth International Conference on</source>
          . pp.
          <fpage>408</fpage>
          -
          <lpage>413</lpage>
          (
          <year>March 2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bombieri</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fummi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guarnieri</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pravadelli</surname>
          </string-name>
          , G.:
          <article-title>Testbench qualification of systemc tlm protocols through mutation analysis</article-title>
          .
          <source>IEEE Trans. Comput</source>
          . (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Engineering in Practice. Morgan &amp; Claypool, USA (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cuadrado</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E., d. Lara, J.:
          <article-title>Uncovering errors in atl model transformations using static analysis and constraint solving</article-title>
          .
          <source>In: 2014 IEEE 25th International Symposium on Software Reliability Engineering</source>
          . pp.
          <fpage>34</fpage>
          -
          <lpage>44</lpage>
          (
          <year>Nov 2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Deng</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Offutt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ammann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mirzaei</surname>
          </string-name>
          , N.:
          <article-title>Mutation operators for testing android apps</article-title>
          .
          <source>Information and Software Technology</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Fleck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troya</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Search-Based Model Transformations with MOMoT</article-title>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>87</lpage>
          . Springer International Publishing,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Go</surname>
          </string-name>
          <article-title>´mez-</article-title>
          <string-name>
            <surname>Abajo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>de Lara</surname>
          </string-name>
          , J.:
          <article-title>Wodel: A domain-specific language for model mutation</article-title>
          .
          <source>In: Proceedings of the 31st Annual ACM Symposium on Applied Computing</source>
          . pp.
          <fpage>1968</fpage>
          -
          <lpage>1973</lpage>
          . SAC '16,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Granda</surname>
            ,
            <given-names>M.F.</given-names>
          </string-name>
          , Condori-Ferna´ndez, N.,
          <string-name>
            <surname>Vos</surname>
            ,
            <given-names>T.E.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Mutation Operators for UML Class Diagrams</article-title>
          , pp.
          <fpage>325</fpage>
          -
          <lpage>341</lpage>
          . Springer International Publishing (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansouri</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , Y.:
          <article-title>Search-based software engineering: Trends, techniques and applications</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>45</volume>
          (
          <issue>1</issue>
          ) (
          <year>Dec 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Henard</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papadakis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traon</surname>
            ,
            <given-names>Y.L.</given-names>
          </string-name>
          :
          <article-title>Mutalog: A tool for mutating logic formulas</article-title>
          .
          <source>In: Software Testing, Verification and Validation Workshops (ICSTW)</source>
          ,
          <year>2014</year>
          IEEE Seventh International Conference on. pp.
          <fpage>399</fpage>
          -
          <lpage>404</lpage>
          (
          <year>March 2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Krall</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menzies</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davies</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Gale: Geometric active learning for search-based software engineering</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lackner</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards the assessment of software product line tests: A mutation system for variable systems</article-title>
          .
          <source>In: Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops</source>
          , Demonstrations and Tools - Volume
          <volume>2</volume>
          . pp.
          <fpage>62</fpage>
          -
          <lpage>69</lpage>
          . SPLC '14,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mens</surname>
          </string-name>
          , T.,
          <string-name>
            <surname>Van Gorp</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>A taxonomy of model transformation</article-title>
          .
          <source>Electron. Notes Theor. Comput. Sci</source>
          .
          <volume>152</volume>
          ,
          <fpage>125</fpage>
          -
          <lpage>142</lpage>
          (
          <year>Mar 2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Moawad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hartmann</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fouquet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nain</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bourcier</surname>
          </string-name>
          , J.:
          <article-title>Polymer: A model-driven approach for simpler, safer, and evolutive multi-objective optimization development</article-title>
          .
          <source>In: Model-Driven Engineering and Software Development (MODELSWARD)</source>
          ,
          <year>2015</year>
          3rd International Conference on. pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          (
          <year>Feb 2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Offutt</surname>
            ,
            <given-names>A.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Untch</surname>
            ,
            <given-names>R.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zapf</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>An experimental determination of sufficient mutant operators</article-title>
          .
          <source>ACM TSEM 5</source>
          (
          <issue>2</issue>
          ),
          <fpage>99</fpage>
          -
          <lpage>118</lpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Pietsch</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yazdi</surname>
            ,
            <given-names>H.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kelter</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Controlled generation of models with defined properties</article-title>
          .
          <source>In: Software Engineering</source>
          <year>2012</year>
          :
          <article-title>Fachtagung des</article-title>
          <string-name>
            <surname>GI-Fachbereichs</surname>
            <given-names>Softwaretechnik</given-names>
          </string-name>
          ,
          <volume>27</volume>
          . Februar - 2. Ma¨rz 2012 in Berlin. pp.
          <fpage>95</fpage>
          -
          <lpage>106</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Sadigh</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seshia</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Automating exercise generation: A step towards meeting the mooc challenge for embedded systems</article-title>
          .
          <source>In: Proceedings of the Workshop on Embedded and Cyber-Physical Systems Education</source>
          . pp.
          <volume>2</volume>
          :
          <fpage>1</fpage>
          -
          <issue>2</issue>
          :
          <fpage>8</fpage>
          . WESE '12,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>da Silva</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          :
          <article-title>Model-driven engineering: A survey supported by the unified conceptual model</article-title>
          .
          <source>Computer Languages, Systems &amp; Structures</source>
          <volume>43</volume>
          ,
          <fpage>139</fpage>
          -
          <lpage>155</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. da Silva Sim˜ao,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Maldonado</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.C.</surname>
          </string-name>
          :
          <article-title>Mudel: a language and a system for describing and generating mutants</article-title>
          .
          <source>J. Braz. Comp. Soc. 8</source>
          (
          <issue>1</issue>
          ),
          <fpage>73</fpage>
          -
          <lpage>86</lpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Stephan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alalfi</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevenson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cordy</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          :
          <article-title>Using mutation analysis for a model-clone detector comparison framework</article-title>
          .
          <source>In: Proceedings of the 2013 International Conference on Software Engineering</source>
          . pp.
          <fpage>1261</fpage>
          -
          <lpage>1264</lpage>
          . ICSE '13, IEEE Press, Piscataway, NJ, USA (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Vincenzi</surname>
            ,
            <given-names>A.M.R.</given-names>
          </string-name>
          , Sima˜o,
          <string-name>
            <given-names>A.S.</given-names>
            ,
            <surname>Delamaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.E.</given-names>
            ,
            <surname>Maldonado</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.C.</surname>
          </string-name>
          :
          <article-title>Muta-pro: Towards the definition of a mutation testing process</article-title>
          .
          <source>Journal of the Brazilian Computer Society</source>
          <volume>12</volume>
          (
          <issue>2</issue>
          ),
          <fpage>49</fpage>
          -
          <lpage>61</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>