<!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>Regression Testing for Properties of Evolving {_ Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ralf Laue</string-name>
          <email>ralf.laue@fh-zwickau.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Arian Storch</string-name>
          <email>arian.storch@bflow.org</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Applied Sciences Zwickau, Department of Computer Science Dr.-Friedrichs-Ring 2a</institution>
          ,
          <addr-line>08056 Zwickau</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>it factum GmbH</institution>
          ,
          <addr-line>Arnulfstr. 37, 80636 Munich</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In software engineering, regression testing allows to validate expected properties of a software after each change of the code. In this paper, we present a tool that transfers this idea to the area of visual modelling, in particular to {_ modelling. The modeller can select typical properties (expressed in natural language) from a menu. Then these properties will be stored together with the {_ model and can be veri ed with every change of the model.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The basic aim of our Eclipse plug-ins, the b ow* Hive (formerly known as Eclipse
Modeling Toolbox ), is to make it easy for researchers and practitioners to extend
the functionality of Eclipse-based editors for visual languages. Originally the
plug-ins have been developed for the b ow* Toolbox [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], an Eclipse-based
opensource tool for business process modelling with Event-Driven Process Chains.
Now we strive for providing the Eclipse plug-ins such that they work with
every graphical modelling tool that is based on Eclipse using EMF and GMF or
Graphiti.
      </p>
      <p>
        We provide an interface that allows modellers and researchers to add their
own extensions to those tools without having to become familiar with Eclipse
programming and the source code of the modelling tool. Before describing the
regression testing feature that was recently added to the b ow* Hive, we brie y
summarise the other features of the b ow* Hive plug-ins that have already been
described in previous work [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. Our Eclipse plug-ins allow to:
{ de ne le transformations for exporting and importing of models into/from
other le formats,
{ add user-de ned attributes to shapes and edges in the diagram,
{ decorate shapes and edges in the diagram with user-de ned visual
annotations (i.e. small icons) - depending on the user-de ned attributes mentioned
above,
{ run validation rules in background to ensure desirable constraints (such as
the absence of an inheritance cycle in a UML class diagram),
{ equip the tool with add-ons that allow to transform the diagram into the
input language of an external program, to run this program and to transform
its results back to the graphical interface of the modelling tool.
      </p>
      <p>Once again, we would like to emphasize that all these things can be achieved
without having to edit or compile the source code of the modelling tool.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Regression Testing for {_</title>
    </sec>
    <sec id="sec-3">
      <title>Models</title>
      <p>
        With the features described in the last section, it is possible to analyse a graphical
model by means of an external program (e.g. a model checker, a simulation tool or
a SAT solver). This is quite useful for purposes such as assessing the syntactical
quality of {_ models as described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In this use case, the required properties
to be validated are the same for all diagrams - the models simply have to adhere
to the {_ syntax rules.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Amyot and Yan discuss several examples where the use of models for
speci c purposes means that further constraints have to be checked. Examples
are when a certain style of the modelling language is used or when a certain
structure of the model is a prerequisite for applying analysis tools or for
using automatic model transformations. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] presents a solution to this problem in
jUCMNav, an open-source Eclipse-based tool for goal and scenario modelling:
Users can de ne situation-speci c constraints as OCL expressions and check the
compliance of the models to these constraints. Alternatively, it is possible to
select existing constraints from a pre-de ned list. The functionality of our
regression testing plug-ins follows a similar purpose - it allows to add tests to a
model. However, compared to the solution presented in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], our solution provides
the following additional features:
{ It is independent from tools and modelling languages (requiring just Eclipse
using EMF and GMF or Graphiti).
{ It allows to use arbitrary tools for validating or analysing models.
{ It allows various ways for communicating the result of the analysis to the
modeler (for example it is possible to change the colour of an involved shape
or to add a small icon at one of its corners).
{ It allows binding a set of model-speci c properties to a model.
      </p>
      <p>While the rst three items in this list just refer to the technical realisation,
the last one means a consideration in the conceptual design. By assigning a set
of expected properties to a model, we allow those properties to be checked after
each change of the model - just in the same way as regression testing works for
software.</p>
      <p>
        Kolliadis et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] describe two scenarios where this is important for {_ models
which are used for business process development: First, changed requirements
can lead to a change of the {_ model. In particular [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] discusses the case that new
actors, goals, dependencies, etc. arise. And second, the business process may be
changed, e.g. by adding a new actor or task which in consequence also means
a change of the corresponding {_ model. This leads to the question whether
properties that have been ful lled in the previous version of the model still hold.
      </p>
      <p>In the scenario discussed in the previous paragraph, regression testing is used
when the processes depicted in the {_ diagram are already operating. In a similar
way, this kind of testing can be useful for assessing variants of an {_ model in the
early design phase. After nding a variant that has certain desirable properties,
these properties should be preserved when the model is changed - or at least
we want to be aware of the fact that some change breaks a property that has
already been ful lled in another variant of the model.</p>
      <p>For using the regression testing feature, the basic course of action in this
view is as follows: First, we need an external tool that runs some validation.
The only assumption is that the command line can be used for starting the
tool and for providing its input parameters. In order to check a property of a
model, two kinds of input parameters have to be provided: First, an export of
the model to a language that the model checker understands. For example, this
can be a network of automata to be used by a model checker. Our plug-ins for
writing user-de ned model exports can be used for generating such an export.
And second, we need a representation of the property to test, once again in a
language that is understandable by the external tool. For example, this can be
an OCL constraint or a logic formula to test. As we want to make the regression
testing feature available to modellers who are not experts for temporal logic or
similar formalisms, we use a template approach for this purpose: A template le
lists the property description in natural language and assigns a formal expression
in the tool's language to it. Placeholders can be substituted by references to
model elements. For example, a line in the template le can look like this:</p>
      <p>There is no conflict between the goals $goal 1 and $goal 2 &gt;&gt;&gt;
no conflict($goal 1,$goal 2).</p>
      <p>Before the external validation tool is called, the placeholders $goal 1 and
$goal 2 have to be replaced by references to model element IDs.</p>
      <p>Fig. 1 shows the steps for assigning an expected property to an {_ model
using the \Model Properties" view that was introduced with our plug-ins. First,
one of the properties de ned in the template has to be selected. It is shown with
a yellow warning sign because the property contains a placeholder which is not
yet bound to a model element. By clicking rst on the placeholder and second
on a model element, the placeholder is substituted by the ID of an actual model
element. When the validation tool is called now, it will be equipped with the
necessary inputs (model and property translated to a formal language that the
tool understands). We require that the tool writes its result either to a le or
to the console output. The output is read and commands for our plug-ins will
be generated. Those commands will cause the properties to be marked green
(ful lled) or red (not ful lled) in the Model Properties view.</p>
      <p>
        For demonstration purposes, we use some example properties that can be
checked by simple label propagation algorithms [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we use
Prolog for describing the model and its expected properties in a formal way and
for verifying the model properties. The result of such a validation is shown in
Fig. 2. While the rst and third property is ful lled (which is indicated by a
green marker at the left), the second one is violated (and gets a red marker).
Example properties that can be checked this way is that goals are achievable,
that dependencies have reciprocal dependencies, that a failure of one actor does
not have e ects on another actor, etc.
Other authors described other properties that can be checked automatically.
E. g. Liu et. al [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] apply the model checker Alloy to test expected access
permission properties (\Least privilege" and \Separation of duties") in an {_ model.
In addition to properties that can be veri ed by formal logic, it is also possible
to check whether certain model metrics are within a certain expected range. An
example for the use of such metrics is discussed by Franch and Maiden [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] in
the context of reasoning about software architecture.
      </p>
      <p>This way, at least a set of basic properties can be expressed and checked by
means of templates. While these templates have to be de ned by an expert in
formal methods, they can be used without any knowledge in this area. Developing
a set of useful templates for frequently occurring expected model properties will
be an interesting challenge for future research.</p>
      <p>
        We acknowledge that our approach has its limits: By restricting to templates
for common properties, it will be impossible (or at least very di cult) to reach
an expressiveness of rich speci cation languages such as Formal Tropos [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Furthermore, there are many situations where human judgment is necessary
when analysing {_ models. In case of con icting contributions, human judgment
may be necessary for assessing the contribution from means to ends [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In the
same way, only humans can decide that issues can be regarded as settled in case
of con icting interests. In such a case, automated \regression tests" would not
be possible. This means that regression testing as described in this paper is a
help, but no substitution for educated reasoning about goal models.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Using our Plug-ins in Eclipse-Based Modelling Tools</title>
      <p>
        Our collection of plug-ins, called the b ow* Hive, is already integrated into our
own EPC modelling tool b ow* Toolbox 1 and into UPROM [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] (a modelling tool
that allows functional software size estimation). Previously developed plug-ins
are already part of the {_ modelling tool openOME 2. Unfortunately, openOME
is based on an older Eclipse version than the one we used for our plug-ins.
Therefore, instead of just adding our plug-ins to a compiled openOME, we had
to compile openOME together with our additional plug-ins using a newer Eclipse
version (Kepler) for making the regression testing feature available for openOME.
1http://b ow.org
2http://sourceforge.net/projects/openome/
      </p>
      <p>As already mentioned, modelling tool developers can include the functionality
described in this article into their own Eclipse-based modelling tool just by
adding our plug-ins to the tool.</p>
      <p>The source code can be obtained from https://github.com/b owtoolbox/app
where all plug-ins named org.b ow.toolbox.hive.* are part of the tool-independent
b ow* Hive. The easiest way for a user to pro t from the b ow* Hive features
in the modelling language of his or her choice is to download the most recent
version of the b ow* Toolbox from the web site mentioned above and to use
Eclipse's update mechanism for adding support for other modelling languages.</p>
      <p>We are looking forward to reports from people who made use of the regression
testing feature or other b ow* Hive features into their tools.</p>
      <p>Any questions related to our plug-ins are welcome to bflow@bflow.org.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A exible approach for validating i * models</article-title>
          .
          <source>In: Proceedings of the 5th International i * Workshop</source>
          . (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Storch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gruhn</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Analysing the style of textual labels in i * models</article-title>
          .
          <source>In: Proceedings of the 7th International i * Workshop</source>
          . (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Bohme,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Hartmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Kern</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          , Kuhne,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Laue</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          , Nuttgens,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rump</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.J.</given-names>
            ,
            <surname>Storch</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.:</surname>
          </string-name>
          <article-title>b ow* Toolbox - an open-source business process modelling tool</article-title>
          .
          <source>In: Proceedings of the Business Process Management 2010 Demonstration Track</source>
          . (
          <year>2010</year>
          )
          <volume>46</volume>
          {
          <fpage>51</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Adding functionality to openOME for everyone</article-title>
          .
          <source>In: Proceedings of the 5th International i * Workshop</source>
          . (
          <year>2011</year>
          )
          <volume>169</volume>
          {
          <fpage>171</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Ho ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>The b ow* Hive - adding functionality to Eclipsebased modelling tools</article-title>
          .
          <source>In: Proceedings of the Business Process Management Demo Session</source>
          <year>2015</year>
          . (
          <year>2015</year>
          )
          <volume>120</volume>
          {
          <fpage>124</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Amyot</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          :
          <article-title>Flexible veri cation of user-de ned semantic constraints in modelling tools</article-title>
          .
          <source>In: Proceedings of the 2008 Conference of the Center for Advanced Studies on Collaborative Eesearch: Meeting of Minds</source>
          . (
          <year>2008</year>
          )
          <volume>7</volume>
          :
          <issue>81</issue>
          {7:
          <fpage>95</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Koliadis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vranesevic</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhuiyan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krishna</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghose</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          :
          <article-title>Combining i * and BPMN for business process model lifecycle management</article-title>
          .
          <source>In: Business Process Management Workshops</source>
          . Volume
          <volume>4103</volume>
          of LNCS., Springer (
          <year>2006</year>
          )
          <volume>416</volume>
          {
          <fpage>427</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Horko</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Interactive goal model analysis for early requirements engineering</article-title>
          .
          <source>Requirements Engineering</source>
          <volume>21</volume>
          (
          <year>2016</year>
          )
          <volume>29</volume>
          {
          <fpage>61</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <article-title>Security and privacy requirements analysis within a social setting</article-title>
          .
          <source>In: Proceedings of the 11th IEEE International Conference on Requirements Engineering</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maiden</surname>
            ,
            <given-names>N.A.M.:</given-names>
          </string-name>
          <article-title>Modelling component dependencies to inform their selection</article-title>
          .
          <source>In: COTS-Based Software Systems</source>
          , Second International Conference. Volume
          <volume>2580</volume>
          of LNCS., Springer (
          <year>2003</year>
          )
          <volume>81</volume>
          {
          <fpage>91</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Fuxman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traverso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Model checking early requirements speci cations in Tropos</article-title>
          .
          <source>In: 5th IEEE International Symposium on Requirements Engineering</source>
          , IEEE Computer Society (
          <year>2001</year>
          )
          <volume>174</volume>
          {
          <fpage>181</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Aysolmaz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Demirors, O.:
          <article-title>Automated functional size estimation using business process models with UPROM method</article-title>
          .
          <source>In: 2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement</source>
          . (
          <year>2014</year>
          )
          <volume>114</volume>
          {
          <fpage>124</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>