<!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>Rule Chains Coverage for Testing QVT-Relations Transformations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniel Calegari</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea Delgado</string-name>
          <email>adelgado@fing.edu.uy</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Instituto de Computacion, Facultad de Ingenier a, Universidad de la Republica</institution>
          ,
          <addr-line>11300 Montevideo</addr-line>
          ,
          <country country="UY">Uruguay</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Traditional software testing techniques have been adapted to deal with the veri cation of model transformations. Black-box techniques have the bene t of simplicity as well as the advantage of being independent of the implementation language, and thus compatible with any model transformation language. Although this is important, the inherent complexity of metamodels may result in a signi cant amount of non-relevant test models. On the contrary the use of white-box techniques allows generating more e ective models at a higher cost. In this paper we propose an approach for the veri cation of QVT-Relations transformations which considers the dependencies between transformation rules and the standard semantics. Test models generation is based on the construction of what we call a rule chain: a set of rule patterns and conditions satisfying a top rule, as well as on an adaptation of other techniques, as grammar testing and partition analysis. We introduce the approach and explain its application using a model transformation devised for the generation of service models from business process models. This approach generates more e ective test models than existing approaches, for which we are working on several tests to prove it.</p>
      </abstract>
      <kwd-group>
        <kwd>testing</kwd>
        <kwd>model transformations</kwd>
        <kwd>QVT-Relations</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The feasibility of the Model-Driven Engineering paradigm (MDE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) is strongly
based on the existence of a (semi)automatic construction process driven by
model transformations. A transformation basically takes as input a model
conforming to certain metamodel and produces as output another model
conforming to another metamodel (possibly the same). This very simple
transformation schema can be extended to take more than one source model as input
and/or produce multiple target models as output, among other extensions. The
Query/View/Transformation Relations (QVT-Relations [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) language follows this
schema using a relational approach, which consists on de ning transformation
rules as relations between source and target elements.
      </p>
      <p>
        There are several alternatives for assessing the quality of a model
transformation [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], from logical inference, which consists of using a mathematical
representation of a system and the veri cation properties, to testing, which relies on
the construction of test cases including subsequent execution of the
transformation on these models and validate that the output matches the expected one.
Although it has some disadvantages, testing is the most popular technique, since
it is lightweight, automatable and can easily uncover bugs [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        The model transformation testing process consists of four phases [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], from
the generation of a test suite (set of test models) conforming to the source
metamodel for testing the transformation to the execution of the transformation
on them and the evaluation of the outputs with respect to the expected ones.
The test models generation involves the de nition of test adequacy criteria and
the building of the test suite that achieves coverage of the adequacy criteria. This
generation can follow a black-box approach (only using the source and target
metamodels and transformation contracts), grey-box (using partial knowledge
of the transformation implementation) or white-box approach (using the full
transformation implementation).
      </p>
      <p>
        In this paper we propose a white-box approach for the generation of test
models for QVT-Relations transformations. The approach basically considers the
dependencies between transformation rules and the standard semantics of
QVTRelations for the construction on what we call a rule chain: a set of rule patterns
and conditions satisfying a top rule. The adequacy criterion is de ned to be the
coverage of every possible rule chain, and thus the whole model transformation.
The generation of these rule chains and of the test suite is based on an adaptation
of other techniques such as grammar testing [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and partition analysis [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>The remainder of the paper is structured as follows. In Section 2 we brie y
present some background on QVT-Relations and in Section 3 we introduce a
running example. In Section 4 we present our approach. In Section 5 we discuss
existing approaches and their relation with our work. Finally, in Section 6 we
present a short summary with conclusions and an outline of further work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>A Brief Look at QVT-Relations</title>
      <p>A QVT-Relations transformation can be viewed as a set of interconnected
relations (or rules) which are of two kinds: top-level relations which must hold
in any transformation execution, and non-top-level relations which are required
to hold only when they are referred from another relation. Every relation has
a set &lt;R_var_set&gt; of variables occurring in the relation and de nes a source
and a target domain pattern (&lt;domain_k_pat&gt;) which is used to nd
matching sub-graphs in the source and target models, respectively. Relations can also
contain when (&lt;when_cond&gt;) and where (&lt;where_cond&gt;) clauses. A when clause
speci es the conditions under which the relationship needs to hold, whilst the
where clause speci es the condition that must be satis ed by all model elements
participating in the relation. The when and where clauses may contain arbitrary
boolean expressions in addition to the call of other relations. Finally, any
relation can de ne a set of primitive domains (&lt;R_par_set&gt;) which are data types
used to parameterize the relation. We can view a relation as having the following
abstract structure:
[top] relation R {
&lt;R_var_set&gt; &lt;R_par_set&gt;
Domain {</p>
      <p>&lt;domain_k_pat&gt;
} //k = 1,2
[when &lt;when_cond&gt;]
[where &lt;where_cond&gt;]
}</p>
      <p>
        The standard semantics [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] states that a relation holds if for each valid
binding of variables of the when clause and variables of domains other than the target
domain, that satisfy the when condition and source domain patterns and
conditions, there must exist a valid binding of the remaining unbound variables of
the target domain that satis es the target domain pattern and where condition.
This can be interpreted as a logical formula [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] basically saying that a relation
holds if the following formula holds:
      </p>
      <p>when ! (&lt;domain_1_pat&gt; ! (&lt;domain_2_pat&gt; ^ where))</p>
      <p>In other words, this formula holds if one of the following cases hold: the when
clause do not holds, (b) the when clause holds but the source domain pattern
(&lt;domain_1_pat&gt;) do not holds, (c) every element in the formula holds (both
&lt;domain_1_pat&gt; and &lt;domain_2_pat&gt; patterns, when and where clauses).</p>
      <p>Finally, dependencies between relations can be represented as a graph where
each node represent a relation, and each directed edge is labelled with when/where
representing the invocation of the target relation from the source one within the
corresponding clause.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Generation of SoaML models from BPMN2 models</title>
      <p>
        As part of our research work we have de ned the MINERVA framework [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] which
de nes several elements to support the continuous improvement of business
processes (BPs) implemented by services with a model driven approach. At the heart
of our approach is the automation of BPs implementation, based on the
generation of service models in Service Oriented Modeling Language (SoaML [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) from
BP models speci ed in Business Process Model and Notation (BPMN2 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]).
BPMN is a readily understandable standard notation for specifying business
processes whilst SoaML provides a metamodel and a UML pro le for the
speci cation and design of services within a service-oriented architecture. It de nes
speci c stereotypes to be used when modeling services within a SOA but with
no reference to implementation details.
      </p>
      <p>
        We followed a model-driven approach to de ne the di erent type of models we
use to provide the implementation of BPs, from the speci cation of the BP to the
model for its execution and the software models to support their implementation.
In Figure 1 we illustrate this vision. To generate SoaML models from BPMN2
models [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] we have de ned a set of transformations in QVT Relations, based
on a mapping between elements from BPMN2 and SoaML metamodels.
      </p>
      <p>Three main transformations for the generation of services from elements in
BPMN2 are provided. Each transformation de nes several dependencies between
the relations that are stated in the when and where clauses of each rule, which
are the same for all of them. This dependencies graph is shown in Figure 2 where
the top relations are shown in grey and the invoked relations are shown in white.</p>
      <p>
        Due to space reasons we do not give details about the transformations, but
we explain the dependencies between rules that constitute a key element of this
work. More details can be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In the rst place, we generate a SOA
Model from a process de nition, and then we generate Participants, Messages
and Services from the messages between process participants. Then, we assign
the Messages as the types of the parameters in the generated service operations,
and create Ports on the Participants generated, typed with the corresponding
Service or Request stereotype, depending on the service being provided or
consumed. Finally, the ServicesArchitecture is created referencing every element.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Rule Chains Coverage</title>
      <p>
        We de ne a white-box approach for test models generation, which involves
generating a test suite conforming to the source metamodel for testing the
transformation of interest, based on the following knowledge: the dependencies graph
between rules, the transformation speci cation, the source metamodel, and the
standard semantics. The general idea is based on using the dependencies graph
for generating test models not covering the whole transformation (as with rule
coverage [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) but the minimal sets of rules which satisfy every top rule. The
information extracted from the dependencies graph is supplemented with the
knowledge of the three cases of rule satisfaction de ned before, which allows
de ning a set of rule chains : a set of rule patterns and conditions satisfying a
top rule. We follow three-steps for the generation of the test suite: grammar
generation, model templates generation, and test suite generation, which are
explained in the following subsections.
4.1
      </p>
      <sec id="sec-4-1">
        <title>Grammar Generation</title>
        <p>In order to construct a valid source model to test the transformation, we only
care about the source pattern of a rule, not the target pattern. In this sense, any
source model satisfying a rule must respect one of the cases of rule satisfaction
de ned in the last section: (a) do not satisfy the source conditions of the when
clause, (b) satisfy the last but do not satisfy &lt;domain_1_pat&gt; (the matching
subgraph we are looking for within the model), (c) satisfy both conditions, plus
the source conditions of the where clause. With this information, we can de ne
a grammar rule, for each transformation rule, as follows.</p>
        <p>hRulei ::= : hRule Wheni
j hRule Wheni : Rule Pat
j hRule Wheni Rule Pat hRule Wherei</p>
        <p>The source domain pattern is a terminal symbol (represented as Rule Pat)
and the when/where clauses are non-terminal ones (they must represent other
transformation rules as well as boolean expressions constraining those rules). It
can be noticed that the negation : represents that the pattern must not be
satis ed. Moreover, a transformation rule may have empty when/where clauses. In
this case the corresponding production rules will be discarded from the grammar.</p>
        <p>The rst two cases seem to be unnecessary since the transformation rule will
not generate any target model when executed. However, these are considered
negative scenarios which are also interesting to test.</p>
        <p>The dependencies graph states that the rules are chained through the when/
where clauses. If we combine this information together with the grammar rules
of each transformation rule, we can generate a complete grammar. This grammar
has a top grammar rule composed by the top transformation rules, as follows:
hTransformationi ::= hRule1i j ... j hRuleni</p>
        <p>As an example, if we focus on the subgraph within the dotted lines in
Figure 2, we can extract the following grammar (names are abbreviated), where for
example rule ModelToSoaML has empty when/where clauses.</p>
        <p>hTransformationi ::= hModelToSoaMLi
j hServicesToSoaMLi
j hCollToSoaMLi
hModelToSoaMLi ::= ModelToSoaML Pat
hServicesToSoaMLi ::= : hModelToSoaMLi
j hModelToSoaMLi : ServicesToSoaML Pat
j hModelToSoaMLi ServicesToSoaML Pat</p>
        <p>hElementsToSoaMLi
hCollToSoaMLi ::= : hModelToSoaMLi
j hModelToSoaMLi : CollToSoaML Pat
j hModelToSoaMLi CollToSoaML Pat</p>
        <p>hServArchEltToSoaMLi
hElementsToSoaMLi ::= ElementsToSoaML Pat
hServArchEltToSoaMLi ::= : hElementsToSoaMLi
j hElementsToSoaMLi : ServArchEltToSoaML Pat
j hElementsToSoaMLi ServArchEltToSoaML Pat</p>
        <p>It can be noticed that the grammar above was simpli ed for the matter of
presentation, by only considering when/where clauses composed by other
transformation rules. We can generate the grammar by also considering boolean
conditions within when/where clauses. In this case there will be a set of terminal
symbols representing these conditions. However, the test case generation will be
more complex in the presence of OCL conditions, as we explain later.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Model Templates Generation</title>
        <p>Every possible string generated from the grammar is a rule chain which provides
the set of conditions from transformation rules needed for generating valid test
models satisfying a top rule. Any combination of rule chains, one for each top
rule, completely covers the transformation (not necessarily covers every rule). In
our example, we can generate the following rule chains.</p>
        <p>
          With respect to the information provided by a rule chain, for example the
seventh rule chain de nes one of the possible set of conditions which must
satisfy a source model in order to be valid for rule CollToSoaML, and
indirectly rule ModelToSoaML. The rule chain de nes that the model must
satisfy the source pattern of those rules, together with the source pattern of rule
ElementsToSoaML, and not to satisfy the pattern of ServArchEltToSoaML.
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] ModelToSoaML Pat
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] : ModelToSoaML Pat
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] ModelToSoaML Pat : ServicesToSoaML Pat
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] ModelToSoaML Pat ServicesToSoaML Pat ElementsToSoaML Pat
[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] ModelToSoaML Pat : CollToSoaML Pat
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] ModelToSoaML Pat CollToSoaML Pat : ElementsToSoaML Pat
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] ModelToSoaML Pat CollToSoaML Pat ElementsToSoaML Pat
        </p>
        <p>
          : ServArchEltToSoaML Pat
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] ModelToSoaML Pat CollToSoaML Pat ElementsToSoaML Pat
        </p>
        <p>ServArchEltToSoaML Pat</p>
        <p>The example re ects a limitation with rule chains generation: we are
assuming that the grammar has no recursion, and thus all rule chains are nite. We
need a deep research on this topic to tackle with this limitation.
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Test Suite Generation</title>
        <p>
          We can use rule chains information to construct valid test models. For this
purpose we are in the process of adapting other techniques. Each source rule pattern
allows reducing the original metamodel to an e ective one for such rule. We can
then use partition analysis [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] to nd the representative values for each
property of those metamodels separately. However this technique must be adapted
in order to consider conditions required by domain patterns. For example, if we
consider rule ServicesToSoaML, we need to generate partitions ensuring that a
De nition has at least two collaborating Process instances. If not, the partition
could generate models not satisfying the rule.
        </p>
        <p>The adequacy criterion is de ned to be the coverage of every possible rule
chain, which is achieved by construction. However, we want to generate more
than one input model with just one set of valid bindings to the variables in the
relevant rules, for each rule chain. In fact, we use partition analysis to generate
di erent values for each property and thus have a most complete test suite.</p>
        <p>We also need an incremental approach to de ne test models from the
information provided by each pattern within the rule chains. We need to systematically
construct overlapping partitions, one for each rule chain. This is a non trivial
constraint solving problem. For instance we only consider the case where the clause
just invokes another relation. However, a complete approach must generate test
models considering boolean expressions associated to when/where clauses
(relation invocations can be arbitrarily combined with other OCL constraints, such
that the evaluation of the constraint depends on the relation invocation) as well
as rules parametrization. This is subject of future research.</p>
        <p>
          Finally, overlapping partitions can be used as input for the generation of
model and object fragments, as in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. In order to generate adequate test models
we also need to consider those invariants that must hold in any model conforming
to the source metamodel. With the use of rule chains we are avoiding the
accidentally construction of test models which will never satisfy the source conditions of
the transformation. In this sense the construction of test cases is more e ective
in terms of the transformation execution. As an extremely simple example, by
the fourth rule chain above, we know that if a model satis es the pattern of rule
ServicesToSoaML then it must satisfy the pattern of rule ElementsToSoaML.
Using the former technique it is possible to generate a model not satisfying this
constraint, and thus an invalid source model for the transformation.
        </p>
        <p>
          No matter how e ective we think the resulting test suite is, we also need some
coverage analysis for measuring test suite quality, as in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. If we cover every rule
chain, we have an equivalent coverage as a combination of the rule and (e ective)
metamodel coverage criteria, since the set of rule chains completely covers the
whole model transformation, as well as the conditions expressed by rule chains
completely covers the e ective metamodel of the transformation. Further work
is needed in order to know how our approach performs in relation with other
criteria or alternative techniques.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        As stated in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the complexity of constraints that de ne the input domain is
the main challenge for automatic test model generation. In this sense, several
ideas have been proposed for the generation of an e ective and minimal test
suite. For example. in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] the authors propose the construction of an e
ective metamodel composed of the source metamodel elements referenced in the
transformation implementation. Ideally, this step reduces the set of test models
to be considered. Then, concrete models must be generated according to some
adequacy criteria, e.g. achieve metamodel coverage or rule coverage. Although
it is important to have generic approaches compatible with any model
transformation language, like those referred earlier, the use of techniques based on
speci c knowledge allows generating more e ective models within a smaller test
suite, and thus simplifying the testing process. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] the authors explored the
extraction of partial knowledge from model transformations about its usage of
the input metamodel to generate e ective test models. They use mutation
analysis to experimentally evaluate the fault-detecting e ectiveness of the set of test
models. We can follow a similar approach to evaluate our test suite generation.
      </p>
      <p>
        The generation of rule chains is related to the grammar testing approach
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In our case we do not get concrete models to be part of the test suite, but
model templates. Each rule chain de nes the conditions under which concrete
test models must be generated. In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] the authors propose to use pairs of rules
in order to de ne test models, since they argue \that it is useful to construct
systematically all possible overlapping models of two rules". However, they do not
take into account the relations between rules as de ned with the dependencies
graph. We will use the idea of overlapping models to construct our test suite.
Finally, we have some sort of re nement of the rule coverage strategy [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], in
which we do not only try to generate a test suite exploring all rules, but also a
more e ective suite by considering how these rules are connected. In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
dependencies between rules are also used as a coverage criteria. However, that work
is based on Triple Graph Grammars and not QVT-Relations, thus the general
approach for the test model generation is completely di erent.
      </p>
      <p>
        Overlapping partitions are related to [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] in which the authors propose to
construct models by taking the left sides of two rules and then calculate all
possible overlaps of model elements. In this case, if the overlapping model is
syntactically incorrect, it is discarded. However, in our case an inconsistency
with the generation of an overlapped partition could results in an incongruent
set of transformation rules, e.g. one rule only accepts a positive integer within a
property whereas another one requires the same property to be negative, which
is identi ed as an error to be corrected.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions &amp; Future Work</title>
      <p>
        We have presented an approach for the generation of test models for
QVTRelations transformations. The approach is based on using the dependencies
graph and the standard semantics for generating test models covering any
possible rule chain, i.e. a set of rule patterns and conditions satisfying a top rule.
We generate rule chains based on an adaptation of the grammar testing
technique. From the information provided by rule chains, we generate an e ective
source metamodel for each rule, and then we use partition analysis to nd the
representative values for each property within the metamodel. Finally, we need
to systematically construct overlapping partitions, one for each rule chain, and
from these partitions generate speci c test models. This last step is subject of
current work. In fact, we are using the model transformation from BPMN2
models to SoaML models [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] for completing the approach and, at the same time,
carry out a complete veri cation process which is part of our research agenda.
      </p>
      <p>The adequacy criterion is de ned to be the coverage of every possible rule
chain. This is equivalent to a combination of the rule and (e ective) metamodel
coverage criteria, since the set of rule chains completely covers the whole model
transformation, as well as the conditions expressed by rule chains completely
covers the e ective metamodel of the transformation. This is a positive coverage,
i.e. the rules are supposed to be satis ed but not necessarily to generate a target
model. Thus, we are avoiding the accidentally construction of test models which
will never satisfy the source conditions of the transformation. Nevertheless, it
can be useful to generate negative scenarios, for example satisfying invalid rule
chains (e.g. substrings of the rule chains) to have a complete test suite. Although
this is an initial work, we expect that this approach generates more e ective
test models than existent approaches. However, this assertion deserves a deeper
comparative analysis, which is intended for future work.</p>
      <p>
        We observed that not every property is valuable when applying partition
analysis. Instead, we can focus on those properties that are really signi cant for
the transformation, i.e. those whose value a ect a condition within the
transformation. In this sense, we can identify and apply partition analysis only for those
signi cant model elements and use any default value for the rest of the elements.
This is related to [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] in which the authors identify model elements changed
by the transformation in order to test that all constraints that may be violated
due to the change hold after applying a transformation. This idea may assist in
the simpli cation of the partitions. However, it needs a more complex procedure
since we also need to consider the target domain patterns of the transformation.
      </p>
      <p>Finally, we need to evaluate if this approach can be generalized for
multiple source metamodels and adapted to other languages. Moreover we need to
investigate how the OCL can be considered associated to when/where clauses.
Acknowledgments. This work has been funded by the Agencia Nacional de
Investigacion e Innovacion (ANII), Uruguay by means of the \Generacion
Automatica de Arquitecturas Orientadas a Servicios desde Procesos de Negocio"
project (ANII-FCE-2011-7341).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kent</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Model driven engineering</article-title>
          .
          <source>In: IFM '02</source>
          ,
          <string-name>
            <surname>Springer</surname>
          </string-name>
          (
          <year>2002</year>
          )
          <volume>286</volume>
          {
          <fpage>298</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. OMG:
          <article-title>Meta Object Facility (MOF) 2</article-title>
          .0 Query/View/Transformation. Final
          <source>Adopted Speci cation Version 1</source>
          .1, Object Management Group (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calegari</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szasz</surname>
          </string-name>
          , N.:
          <article-title>Veri cation of model transformations: A survey of the state-of-the-art</article-title>
          .
          <source>ENTCS</source>
          <volume>292</volume>
          (
          <year>2013</year>
          )
          <volume>5</volume>
          {
          <fpage>25</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Selim</surname>
            ,
            <given-names>G.M.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cordy</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
          </string-name>
          , J.:
          <article-title>Model transformation testing: the state of the art</article-title>
          .
          <source>In: AMT '12</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
          <volume>21</volume>
          {
          <fpage>26</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghosh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , France,
          <string-name>
            <surname>R.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Le</given-names>
            <surname>Traon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Mottu</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.M.</surname>
          </string-name>
          :
          <article-title>Barriers to systematic model transformation testing</article-title>
          .
          <source>Commun. ACM</source>
          <volume>53</volume>
          (
          <year>2010</year>
          )
          <volume>139</volume>
          {
          <fpage>143</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Lammel, R.:
          <article-title>Grammar testing</article-title>
          .
          <source>LNCS</source>
          <year>2029</year>
          (
          <year>2001</year>
          )
          <volume>201</volume>
          {
          <fpage>216</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traon</surname>
            ,
            <given-names>Y.L.</given-names>
          </string-name>
          :
          <article-title>Qualifying input test data for model transformations</article-title>
          .
          <source>SoSyM</source>
          <volume>8</volume>
          (
          <year>2009</year>
          )
          <volume>185</volume>
          {
          <fpage>203</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Delgado</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruiz</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>de Guzman</surname>
            ,
            <given-names>I.G.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          : Minerva:
          <article-title>Model driven and service oriented framework for the continuous business process improvement and related tools</article-title>
          .
          <source>LNCS</source>
          <volume>6275</volume>
          (
          <year>2010</year>
          )
          <volume>456</volume>
          {
          <fpage>466</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. OMG:
          <article-title>Service Oriented Architecture Modeling Language (SoaML)</article-title>
          .
          <source>Technical Report Version 1.0</source>
          .1, Object Management Group (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. OMG:
          <article-title>Business Process Model and Notation (BPMN)</article-title>
          .
          <source>Technical Report Version 2</source>
          .0, Object Management Group (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Delgado</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruiz</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>de Guzman</surname>
            ,
            <given-names>I.G.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model transformations for business-it alignment: from collaborative business process to SoaML service model</article-title>
          .
          <source>In: SAC</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
          <volume>1720</volume>
          {
          <fpage>1722</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Mcquillan</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Power</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>White-box coverage criteria for model transformations</article-title>
          .
          <source>First Intl. Workshop on Model Transformation with ATL</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , Kuster,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Engels</surname>
          </string-name>
          , G.:
          <article-title>Test suite quality for model transformation chains</article-title>
          .
          <source>In: TOOLS'11</source>
          ,
          <string-name>
            <surname>Springer</surname>
          </string-name>
          (
          <year>2011</year>
          )
          <volume>3</volume>
          {
          <fpage>19</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Validation in model-driven engineering: testing model transformations</article-title>
          . In: MoDeVVa '
          <fpage>04</fpage>
          . (
          <year>2004</year>
          )
          <volume>29</volume>
          {
          <fpage>40</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Mottu</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          , J.:
          <article-title>Static analysis of model transformations for e ective test generation</article-title>
          . In: ISSRE, IEEE (
          <year>2012</year>
          )
          <volume>291</volume>
          {
          <fpage>300</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Kuster,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Abd-El-Razik</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Validation of model transformations: rst experiences using a white box approach</article-title>
          .
          <source>In: MoDELS'06</source>
          ,
          <string-name>
            <surname>Springer</surname>
          </string-name>
          (
          <year>2006</year>
          )
          <volume>193</volume>
          {
          <fpage>204</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Hildebrandt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lambers</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
          </string-name>
          , H.:
          <article-title>Complete speci cation coverage in automatically generated conformance test cases for TGG implementations</article-title>
          .
          <source>LNCS</source>
          <volume>7909</volume>
          (
          <year>2013</year>
          )
          <volume>174</volume>
          {
          <fpage>188</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>