<!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 Method for Testing Model to Text Transformations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alessandro Tiso</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gianna Reggio</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maurizio Leotta</string-name>
          <email>maurizio.leotta@unige.it</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universita di Genova</institution>
          ,
          <addr-line>Italy alessandro.tiso</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model Transformations are the core of Model Driven Development; hence for generating high quality artifacts we need methods able to assure the quality of model transformations. In this work, we focus on Model to Text Transformations and propose a method, composed by a set of integrated approaches and a series of guidelines, for testing model transformations. We classify the test approaches composing our method relying on the intent on which they are carried out. Moreover, to select input models used to build test cases, we propose a de nition of adequacy criteria and coverage.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        In this work, we present a method for testing Model to Text Transformations
(MTTs), which uses a set of integrated approaches. It is part of our Method
for Developing Model Transformations (MeDMot ), but most of the underlying
ideas and techniques can be applied to test any MTT. MeDMot aims to
support the development of transformations from UML model to text, precisely it
considers MTTs of the kind shown in Fig. 1. It prescribes how to: de ne the
requirements of a transformation, then how to design, implement and test it.
Thus, the testing activity can take advantage of the speci city of requirements
and design prescribed by MeDMot. Moreover, the model transformation
architecture and the model transformation languages (ATL and Acceleo) used are
the same speci ed in our previous work [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Model transformation testing is a complex task [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], since the complexity of
the inputs (e.g., complete UML models instead of numerical values), and
consequently a large e ort is required to produce them, and the di culties in building
an e ective oracle (e.g., it may have to provide whole Java programs instead of
a result of such programs). Selecting input for model transformations is more
di cult than selecting input for programs testing because they are more di cult
to be de ned in an e ective way (e.g., compare de ning a set of input values for
a program with de ning a whole UML model). Hence, also de ning adequacy
criteria for MTTs is again more di cult than in the case of programs. For these
reasons, we try to de ne a method for testing MTTs, whose application is simple
and that can scale with the size of the tested model transformations. Moreover,
our approach to MTTs testing is pragmatic and has its main purpose in
providing guidelines to design and implement tests for them taking into account the
extreme variability of their targets.
      </p>
      <p>Our work has been motivated by the need to test various MTTs that we
developed by applying MeDMot. All of them have as source a class of UML
models built using a speci c pro le, whereas the targets are respectively: (1) Java
Desktop applications (U-Java); (2) SQL scripts (U-SQL); (3) OWL Ontologies
(U-OWL); (4) Coloured Petri nets suitable for the CPN tools1 (U-Petrinet).</p>
      <p>In Sect. 2 we provide a classi cation for MTT testing, Sect. 3 presents the
adequacy criteria for MTTs testing, Sect. 4 proposes an approach to MTT unit
testing, and Sect. 5 gives some hints on how the testing activity can be
automated. Finally, Sect. 6 outlines the guidelines of our method for testing MTTs.
Related work and conclusion are in Sect. 7 and 8 respectively.
1.1</p>
      <p>Preliminaries
A structured textual artifact (STA) is a set of text les, written using one or
more concrete syntaxes, disposed in a well-de ned structure (positions of the
les in the le system).</p>
      <p>In this paper we consider the kind of MTTs shown in Fig. 1. The Domain
Universe is the set of the UML models built using a speci c pro le, Dom is a
subset of Domain Universe containing all models assumed to be a correct input for
the transformation. The Codomain Universe is a set of STAs, Cod is the subset
of Codomain Universe containing all the STAs assumed to be a correct result
of the transformation. mtt is a function that transforms elements of Dom into
elements of Cod .</p>
      <p>Both the elements in the domain and in the codomain have associated a
semantics (e.g., U-SQL: UML models representing persistent data structure !
SQL statements, U-Java: UML models representing desktop applications ! Java
programs), which the transformation developer should know. The transformation
requirements should be expressed in terms of the semantics of the transformation
source and target, e.g., in the case of U-Java, every persistent class should be
transformed into a persistent Java class of the application generated or, in the
case of U-SQL, every class stereotyped by table should be transformed into
a SQL statement for table creation.</p>
      <p>Instead, the design of a transformation should de ne how domain elements
are transformed into fragments of the STAs. In the case of U-SQL the design
prescribes that a class stereotyped by table and named A is transformed into
the SQL statement like CREATE TABLE TABLE-A.</p>
      <p>U-OWL: the running example. U-OWL is an MTT from UML models of
ontologies to OWL.
1 http://cpntools.org/</p>
      <p>An ontology model is composed by a class diagram (the StaticView) de ning
the structure of the ontology in terms of categories, specializations, and
associations, and possibly by an object diagram (the InstancesView) describing the
information about the individuals of the ontology (i.e., which are the individuals,
the values of their attributes and the links among them). The object diagram
must be de ned with respect to the class diagram, i.e., its instances must be
typed by classes present in the latter, and similarly its links and slots must
correspond respectively to associations and attributes in the latter. The used UML
pro le is composed of two stereotypes: category and instances . A UML
class stereotyped by category represents a class de nition of the ontology, its
individuals will be de ned in the instances view. A UML class stereotyped by
instances must have a list of literals and will de ne simultaneously a class
de nition and its individuals, de ned by its literals. Such UML class cannot
have attributes. Moreover, there is a set of well-formedness rules characterizing
Dom that, for space reasons, we do not show here, such as: \all the attributes
of a UML class must have multiplicity equal to one and be typed by a UML
primitive type". The output of the transformation is a text le describing the
ontology using the RDF/XML for OWL concrete syntax. The transformation
must produce a OWL de nition of an ontology having exactly the classes and
the instances described by the input model together with the features (e.g.,
attributes, relationships, slots) de ned again by the model.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Transformation Test Classi cation</title>
      <p>A transformation test case is a triple (IM; check; expct), where IM 2 Dom is
an input model, check : Cod ! CheckResult is a total function and expct 2
CheckResult. check represents some observations on the output models, where
the result of such observations will be some elements in CheckResult (obviously,
CheckResult is the set of the observations on the output models), and expct is
the expected result of the observations on the transformation of IM (i.e., what
forecasted by the oracle). The test is passed if check(mtt(IM)) = expct. A test
suite is a set of test cases.</p>
      <p>
        We classify the MTT tests on the basis of the intent with which they are
carried out (taking also inspiration from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]).
      </p>
      <p>Conformance tests are made with the intent of verifying if the MTT targets
belong to the Cod . In general this means checking that the textual artifacts
produced by the transformation have the required structure (e.g., a folder containing
at least two les and no subfolders) and that the various les have the correct
form (e.g., they are correct with respect to a given BNF or XML schema).</p>
      <p>Referring to Fig. 1, conformance tests are done with the intent of
verifying that all the elements belonging to the Dom are transformed by mtt into
elements of the Cod . The check function must verify some properties
characterizing the codomain. For instance, in the case of a transformation producing Java
programs, a check may verify that they are syntactically correct/they use only
standard API/all their identi ers are lower case; whereas for an MTT
producing HTML documents a test may check that they are correctly visualized by a
speci c browser2 or that they describe a web site respecting some accessibility
requirements.</p>
      <p>If a conformance test fails, then we rstly have to look at the constraints
of the domain and the codomain de nition to see if they are too weak/too
strong, and later we have to examine the mtt design and implementation. To
better clarify this point consider the following example: let mtt a transformation
from UML models representing databases into SQL, if the constraints over the
transformation domain do not prohibit class names with whitespaces, then a
substantially correct transformation will transform these element names into
wrong table identi ers, and conformance tests will fail. In this case, the correct
developer action is to re ne the de nition of the domain, so to forbid UML
element names containing whitespaces.</p>
      <p>In a conformance test case (IM; check; expct), check and expct do not depend
on IM, because these two test case ingredients are built only by looking to the
de nition of Cod and the transformation requirements.</p>
      <p>Referring to the U-OWL case, an error discovered by conformance tests is
the following: the transformation forgot to add the closing tag to the de nition
of the OWL class corresponding to a UML class. Trying to open with Protege3
the OWL le produced by the transformation of whatever trivial model (i.e.,
containing at least a UML class) we are informed of an exception occurred during
the parsing of the input le.</p>
      <p>Semantic tests are made with the intent of verifying that the target of the
MTT has the expected semantics. Referring to the Fig. 2, semantic tests are done
with the intent of verifying that elements belonging to the Dom are transformed
into elements of the Cod belonging to the right class of equivalent STAs (class of
equivalent STAs are depicted with diamonds in the picture). The check function
using to build the test cases has to verify semantic properties typical of the
codomain nature, using methods and techniques again typically of that context
(e.g., Java programs, OWL ontologies)</p>
      <p>To clarify the concept we give two examples: (1) if the transformation target
are Java programs, then a semantic test may verify if some class operation has the
required behaviour by means of classical tests or that an interactive program may
execute some speci c scenario; (2) in the OWL case the meaning of a OWL le is
an ontology made of semantic categories (OWL classes), containing individuals,
and of inclusion/sub-typing relationships between categories, thus the semantic
tests may check if the represented ontology has all the OWL classes described
2 obviously this test will be performed by a human being
3 http://protege.stanford.edu/
in the UML input model, or that an OWL class has all the required individuals,
or that an OWL class is a sub-class of another one.</p>
      <p>
        Semantic tests should be built taking into consideration all the techniques
and methods already existent for the nature of the Cod . For instance, if the Cod
is the set of all the Java projects for desktop applications, then we can employ
the techniques used to test (the semantic of) a Java program. Referring to the
U-OWL case, an error discovered by semantic tests is the following: the input
model is composed by a class diagram containing a hierarchy of classes each one
stereotyped with category and an object diagram containing only one object
instance of one of the leaf classes. The output produced must contain an ontology
in which are described the same class hierarchy and an individual belonging to a
leaf class. A semantic test could be the \realization of an individual"4 reasoning
task that may be performed by a reasoner like FaCT++ [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Semantic tests depend on the source model. Indeed, the form of the check
function depends on what elements are contained in the source model. In some
cases the expected results can be automatically derived from the source model
(see Sect. 5). Semantic tests are very important because allow to nd the most
serious failures, for instance when the transformation requirements are not met,
even if the transformation result is a running Java program or an OWL ontology
correctly shown by Protege.</p>
      <p>Textual tests are made with the intent of verifying that the textual elements
comprising the STA target of the MTT have the required form. Referring to
the Fig. 3, textual tests are done with the intent of verifying that each element
belonging to the Dom is transformed into the right element of the Cod . The
check function must verify that the result of the transformation considered as
a pure textual artifact has the right form. Textual tests depend on the input
models, similarly to the semantic tests.</p>
      <p>For example: (1) if the Cod is JAVA code, then a textual test may verify
if there is a correct number of les, in the right position in the le system
and with the right names; (2) if the Cod is an ontology written using OWL,
then a textual test may verify if it contains the right number of class structure
de nitions. Referring to the U-SQL case, an error discovered by textual tests
is the following: the target contain the string \AT char(60)" in correspondence
of an attribute AT typed by the UML basic string type in the source model,
instead of the string \AT char(64)" (as required by the design). In this case the
string found in the target is correct with respect to a given BNF, but it is not the
4 that is, nd all classes which the individual belongs to, especially the most speci c
one
expected one (in our example the string \AT char(64)"). We want to emphasize
that this kind of errors are not revealed by the conformance test.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Transformation Test Adequacy Criteria</title>
      <p>
        A test adequacy criterion is a criterion that drives the selection of
characteristics for input models that will be used to generate the test models needed to
build the test suites (adapted from the de nition found in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]). We use model
characteristics instead of whole models for criteria de nition, because de ning
whole models requires a substantial e ort and to x a large number of details
not relevant (e.g., to require to have a UML model with a class with a given
stereotype and 3 operations and no attributes versus to have to produce a
complete model de ning also the names, the parameters, and the result types of such
operations).
      </p>
      <p>The coverage is the ratio between the number of characteristics identi ed by
a test adequacy criterion that can be found in the input models of a test suite
and the total number of characteristics identi ed by the same test adequacy
criterion.</p>
      <p>In the following we describe three adequacy criteria. Let S be the set of
the stereotypes and tagged values comprising the UML pro le used for de ning
Dom; let CD be the set of the UML constructs/diagrams allowed to appear in
the models in Dom considered relevant by the transformation developer; and let
M = S [ CD.</p>
      <p>Referring our running example U-OWL, S =f category , instances g and
CD=fclass, association, object, link, Class Diagram, Object Diagramg. In this
case the developer did not considered relevant to insert in CD also the attributes
and the slots.</p>
      <p>Criterion 1 . The predicates on Dom de ning this criterion are: predx : Dom !
Bool de ned by predx(M od) , x appears in M od, for x 2 M , M od 2 Dom; thus
we have the same number of predicates and elements of M. Each test model must
contain at least one of the elements of M. Starting from this criterion we can
de ne other criteria, simply requiring that each predicate considers more than
one element of M, e.g., if x; y 2 M and x 6= y, then we can de ne a predicate
predx;y : Dom ! Bool such that predx;y(M od) , x; y both appear in M od. So,
for example in our case the set M is composed by eight elements thus, we need,
at least, to de ne 8 7 predicates.</p>
      <p>Criterion 2 . This adequacy criterion takes into account the features of the
elements in M, and is de ned by the set of predicates that evaluate the presence
in the input models of a set of relevant combinations of such features. The
developer must consider that some combination of them may be not allowed by
the de nition of Dom. Each test model must contain at least one of these sets of
relevant combination of features. In the U-OWL case, the features of class (that
belongs to M ) allowed in the Cod (just the attribute) will contribute to the
criteria, for instance, with predicates checking the presence of a class without
attributes and of a class with 3 attributes.</p>
      <p>Criterion 3 . The adequacy criterion takes advantage on the way we give the
MTT design. The design of each transformation function is given by means of
relevant source-target pairs. Each pair is composed by a left side, that shows
a template, and a right side that shows the result of the application of this
function on model fragments obtained instantiating such template. So, criterion
3 is de ned by the set of predicates checking that the various templates are
instantiated on the input models. Each test model must contain at least one of
the templates showed in the left side of the source-target pairs. We cannot show
the application of this criterion in the U-OWL case, because we do not report
its design.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Transformation Unit Test</title>
      <p>A non-trivial MTT will be built by composing many sub-transformations, that
transform di erent - but potentially overlapping - parts of the input models; for
example in the case U-OWL we have a transformation of classes (contained in the
StaticView), and a transformation of objects (contained in the InstancesView);
thus we can consider as subject of testing the whole transformation or its
subtransformations. The various sub-transformations may be arranged in a kind
of call-tree (we use a diagram similar to the structure chart, that we call
decomposition diagram), where the nodes are labelled by the sub-transformations
themselves and the children of a node labelled by S are the trees corresponding
to those called by S. A sample of the structure of a MTT in terms of
subtransformations is shown in Fig. 4.</p>
      <p>Thus, we can decompose the whole transformation in parts, each one
composed by the sub-transformations belonging to one of the subtrees, and test
these parts separately. For example in Fig. 4 we can test separately the parts
of the transformations corresponding to the subtrees T1 and T2. The testing of
the transformation parts will use test cases built with model fragments, but it
should be checked that still they satisfy the restrictions imposed by the de nition
of Dom, i.e., they may be extended to become models in Dom. The developer
should also choose a decomposition that allows to have transformation parts that
generate self-consistent structured textual artifacts, to allow the semantic
testing. Using this approach we can build a kind of unit testing of a MTT. Indeed,
each part of the transformation can be tested separately.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Transformation Testing Automation</title>
      <p>We consider two levels of testing automation: (1) automate the generation of
the artifacts needed for testing and (2) automate the execution of testing. In
the former case the check function and sometimes also the expected results are
automatically generated from the elements contained in the source model. In the
latter case the execution of testing and sometimes also the retrieval of testing
results can be partially, or totally automatized.</p>
      <p>Automate test generation. If the generation of testing artifacts can be
described in an algorithmic way, the needed artifacts can be produced during the
execution of the MTT to be more precise by an extension of MTT that together
with the target produces also the test cases components, without adding any
information to the source models. This is possible when the structure of the
artifacts and the input data for the test cases depend only on the content of the
source models. For example, if we consider the U-Java case, we have that the
source models may contain persistent classes (those stereotyped by store ),
then the generated persistent entities may be tested generating a JUnit test that
creates number of entity instances and then retrieve them.</p>
      <p>If the generation of the needed testing artifacts cannot be described in an
algorithmic way, we can try to add some parts in the source model and extend
the transformation to map them into tests. For example in the case of U-Java,
we do that by inserting in the source model test classes and test operations, that
drive the generation of executable JUnit tests in the target code.</p>
      <p>
        Automate test execution. Automating the execution of testing becomes
an important issue when the number of test cases grows, and should be supported
by tools. Depending on the nature of the codomain of the transformation, tools
designed expressly for automate the execution of testing may already exist (e.g.,
JUnit for Java). After that the testing artifacts are generated (automatically or
by the transformation developer), a speci cally designed application can execute
the test suites and, in some cases, can generate reports containing the result
of testing. For example, if we consider U-Java, the testing execution can be
automated by means of Maven [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. All the test generated artifacts consist, in
this case, of Java code and con guration les placed both in the same project
in which the application code is generated, but in a separate folder, that Maven
recognizes as the tests container. The developer only needs to activate the build
process. During the build process tests are executed and report les are produced.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Transformation Testing Method</title>
      <p>In this section we outline the guidelines of our method for testing MTTs.</p>
      <p>We believe that there is a \natural" order with which tests should be
performed: starting from tests which have the intent of discovering coarse errors to
tests which want to discover ner errors. Thus, our testing method requires to
rst execute the conformance tests, then the textual tests and nally the
semantic tests. Indeed, conformance tests are those that reveal the largest number of
errors, because they are able to detect all MTT implementation errors related
to generate text not following the required concrete syntax, e.g., forgetting to
close a parenthesis or forgetting a space between two keywords (which in our
experience are very common). Instead, semantic tests are able to detect more
serious errors due to the requirements understanding or implementation. Finally,
textual tests are able to discover if the semantic of the MTT output is obtained
using the wanted syntactic constructs.</p>
      <p>To build each test suite we have to build a set of test cases consisting of an
input model, a check function and the expected result of the check (see Sect. 1.1).
For each kind of tests, we x the form of the checks, and build three test suites
each one using input models selected using the three adequacy criteria de ned
in Sect. 3. Thus, for each kind of tests (those introduced in Sect. 2) we build
three suites. Hence, we have a total of nine test suites. The test suites should be
executed in the following order: rst the three test suites built with the intent of
detecting conformance errors, then the three test suites built with the intent of
detecting syntactic errors and nally those having intent of discovering semantic
errors. Within each group, the test suites built using the Criterion 1 should be
executed rst, followed by those built using the Criterion 2 and nally those
built using the Criterion 3. The following table summarises the tests suites that
must be built and the order of execution.</p>
      <p>Test Type
conformance
textual
semantic</p>
      <p>If there are constraints to the time available to testing, we suggest to prioritise
the building and execution of the test suites made using criterion 1, then those
made with criterion 2 and nally using criterion 3. Moreover, we suggest to
privilege conformance tests, then textual and nally semantic tests.</p>
      <p>Each input model may be instance of more than one template, but as
guideline we suggest to build small input models that are instances of the minimum
number of templates.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Related Work</title>
      <p>
        At the best of our knowledge there are no other works which deal speci cally
with MTT transformation testing (except our previous work [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]).
      </p>
      <p>
        Fleurey et al. in their work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] de ne test adequacy criteria based on input
metamodel coverage adapting UML-based test criteria de ned in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Moreover,
they report that this kind of adequacy criteria select as input for testing the
model transformation, a signi cant amount of data irrelevant w.r.t. the model
transformation and so, they describe a way to de ne a sub-set of the input
metamodel selecting metamodel elements that are relevant for the model
transformation. Our de nition of adequacy criteria enable us to select only input
models relevant for our MTT under test. Moreover, we de ne the various
criteria using the concrete syntax of the input models and not the abstract syntax
(i.e., the metamodel).
      </p>
      <p>
        Esther Guerra in her work [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] considers Model to Model transformations and
starting from a formal speci cation written using a custom speci cation language
can derive oracle functions and generate a set of input test models that can be
used to test the model transformation written using transML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a family of
modelling languages proposed by the same author and others. In our case input
models are not generated, but the adequacy criteria we propose assure that
they cover a good portion of the interesting properties of the transformation.
Moreover, this work considers only Model to Model transformation, instead we
are interested more in Model to Text Transformations.
      </p>
      <p>
        Amrani et al. in their work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] report on the building of a catalog of model
transformation intents and the properties model transformation has to have.
They describe a schema for the model transformation intent catalog where each
intent has a set of attributes and properties that must be satis ed. Moreover,
they catalogue a list of common transformation intents and model
transformation properties among that we can nd the type correctness and property
preservation, that in some way we use in our classi cation of tests. Finally, we take
inspiration from this work in the idea of the classi cation of testing approaches.
8
      </p>
    </sec>
    <sec id="sec-8">
      <title>Conclusion</title>
      <p>In this paper, we have proposed a method for testing Model to Text
Transformations, which uses a set of integrated approaches. It is part of our method for
developing model transformations (MeDMot ), but most of the underlying ideas
(and techniques) can be applied to any MTT context. Moreover, we have
provided a novel de nitions of adequacy criteria and coverage speci c to the MTT
context. As future work we plan to conduct an empirical investigation using
mutation techniques to see what kind of errors are really revealed by the three
proposed types of testing.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Amrani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lambers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lucio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Salay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Selim</surname>
          </string-name>
          , E. Syriani, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <article-title>Towards a model transformation intent catalog</article-title>
          .
          <source>In Proc. of AMT</source>
          <year>2012</year>
          ,
          <article-title>pages 3{8</article-title>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          , R. France,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Le Traon</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Mottu</surname>
          </string-name>
          .
          <article-title>Barriers to systematic model transformation testing</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>53</volume>
          (
          <issue>6</issue>
          ):
          <volume>139</volume>
          {
          <fpage>143</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Steel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          .
          <article-title>Validation in model-driven engineering: testing model transformations</article-title>
          .
          <source>In Proc. of MODEVA</source>
          <year>2004</year>
          , pages
          <fpage>29</fpage>
          {
          <fpage>40</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          .
          <article-title>Speci cation-driven test generation for model transformations</article-title>
          . In Z. Hu and J. Lara, editors,
          <source>Theory and Practice of Model Transformations</source>
          , volume
          <volume>7307</volume>
          <source>of LNCS</source>
          , pages
          <volume>40</volume>
          {
          <fpage>55</fpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Santos</surname>
          </string-name>
          .
          <article-title>Engineering model transformations with transml</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          ,
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <volume>555</volume>
          {
          <fpage>577</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J. A. Mc</given-names>
            <surname>Quillan</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Power</surname>
          </string-name>
          .
          <article-title>A Survey of UML-Based Coverage Criteria for Software Testing</article-title>
          .
          <source>Technical report</source>
          , Department of Computer Science, Maynooth, Co. Kildare, Ireland,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>F. P.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. F.</given-names>
            <surname>Vandome</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. McBrewster. Apache</given-names>
            <surname>Maven</surname>
          </string-name>
          . Alpha Press,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Tiso</surname>
          </string-name>
          , G. Reggio, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Leotta</surname>
          </string-name>
          .
          <article-title>Early experiences on model transformation testing</article-title>
          .
          <source>In Proceedings of the 1st Workshop on the Analysis of Model Transformations, AMT</source>
          <year>2012</year>
          , pages
          <fpage>15</fpage>
          {
          <fpage>20</fpage>
          , New York, NY, USA,
          <year>2012</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.</given-names>
            <surname>Tsarkov</surname>
          </string-name>
          and
          <string-name>
            <given-names>I.</given-names>
            <surname>Horrocks</surname>
          </string-name>
          . Fact+
          <article-title>+ description logic reasoner: system description</article-title>
          .
          <source>In Proc. of IJCAR</source>
          <year>2006</year>
          , pages
          <fpage>292</fpage>
          {
          <fpage>297</fpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>