<!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 Visual 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="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Arian Storch</string-name>
          <email>arian.storch@bflow.org</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Schnadelbach</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Saxon Police Force - Computer and Internet Crime Unit</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</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="aff2">
          <label>2</label>
          <institution>it factum GmbH</institution>
          ,
          <addr-line>Arnulfstr. 37, 80636 Munich</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>89</fpage>
      <lpage>96</lpage>
      <abstract>
        <p>In this paper, we present a set of Eclipse plug-ins which adapts the idea of regression testing for the area of visual modelling in software engineering: Expected properties of models in languages such as UML, BPMN, etc. are stored together with the model (comparable with test cases added to software). With each change of the model, these properties can be checked. The solution should work with any visual modelling language included into Eclipse { both for standardised as for domain-speci c languages. The advantage of our approach over current existing solutions is that the process of model checking is completely hidden to the modeller. In particular, it is not necessary for the modeller to learn a formalism for specifying expected properties.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In this paper, we present a set of Eclipse plug-ins that aim to improve the
quality of visual models in languages such as UML, SysML or BPMN, but also in
domain-speci c visual languages. For this purpose, the idea of regression testing
which is a well-known paradigm in software engineering is adapted for the domain
of visual modelling. In software engineering, regression testing makes sure that
software still works correctly after it has been changed. This avoids that desirable
properties (expressed as test cases) get lost with a software change. It is good
practice to run such tests after each software change. If the results for all test case
executions are \green" (Fig. 1), the software developer knows that the software
still has the behaviour which is expected by the test cases.</p>
      <p>
        We would like to achieve the same for the domain of visual models in software
engineering: Expected properties are stored together with the models and can
be tested with every change of the model. However, here we face a di erent
situation: While a typical software developer is able to write test cases (which
are executable computer programs as well), we cannot expect that every modeller
can formulate desirable model properties in a formal language that is needed for
model veri cation. In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Visser et al. point out that hiding the formal models
and speci cation formalisms from the end-user is paramount to the success of
formal veri cation. With our Eclipse plug-ins, we provide the possibility to hide
both the formal model that is needed by the model checker as the formalism
needed for specifying properties. This enables end users who are not experts for
formal methods to use the \regression testing" feature for visual models.
2
      </p>
      <p>
        Challenges of \Hiding" Formal Methods
The usual way for verifying properties of visual models in software engineering
starts with transforming the model into another (formal) model that can be
analysed by a veri cation tool. This formal model can be e.g. a Petri net or
an abstract automaton that can be processed by a model checker. In the most
cases, the veri cation tool (a model checker, a SAT solver, a natural language
processing tool, etc.) already exists independently from the modelling tool. If
we want to use such a tool for \regression testing" of visual models, we face the
following challenges (cf. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]):
1. The visual model has to be transformed into the formal language the tool
can work with.
2. The properties to be veri ed have to be transformed into a formal language
understood by the tool.
3. Starting the veri cation tool should be possible directly from the modelling
tool's user interface.
4. The information which of the checked properties are ful lled should be shown
in the modelling tool's user interface.
5. If a property is not ful lled, an explanation of the reasons (such as a
counterexample found by a model checker) should be transferred back to the
visual model.
6. The tested properties have to be bound to the model such that they can be
checked again with the next change of the model.
      </p>
      <p>
        Our set of Eclipse plug-ins, called the b ow* Hive, provides a solution to those
challenges. Originally the plug-ins have been developed for the b ow* Toolbox
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], an Eclipse-based open-source tool for business process modelling with
EventDriven Process Chains. Now, the current version of our Eclipse plug-ins should
work with every graphical modelling tool that is based on Eclipse using GMF
or Graphiti.
      </p>
      <p>
        The basic steps for integrating model veri cation into the user interface of a
modelling tool (model transformation into a formal language, starting external
veri cation tool and visualising its results in the modelling tool) are described
in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Here, we would like to discuss a recent enhancement that deals with point
(2) from the above list { a point which is often neglected by current tools. For
our discussion, we use examples from the area of business process modelling.
However, we want to emphasise that our solution is independent from modelling
languages and application domains.
      </p>
      <p>Point (2) from the above list - specifying the properties to test - is not yet
satisfactory implemented by several current tools that verify properties of visual
models. In the area of business process modelling and compliance checking, we
often encounter the need to specify the properties as temporal logic formulae
(see Fig. 2) or as OCL constraints.</p>
      <p>Other authors suggested graphical languages for specifying the expected
properties; some examples are shown in Fig. 3. The disadvantage is that
modellers have to learn one more visual language.</p>
      <p>
        Our approach for specifying properties is to use patterns for frequently
occurring model properties. This idea goes back to the work of Dwyer et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] who
developed a set of property speci cation patterns such as \Response" (A must
always be followed by B) or \Absence" (A must never happen). In the spirit
of this work, speci c property speci cation patterns for business processes have
been developed [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the participants of a study were able to express
72 out of 82 business compliance rules by means of these patterns.
      </p>
      <p>
        Wong and Gibbons [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] showed how Dwyer's patterns can be used for
verifying properties of BPMN models. This means that the theory of using speci cation
patterns for verifying properties of business process models is well-researched.
However - to the best of our knowledge - this method was rarely included into
publicly available modelling tools. Notable exceptions are [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] as one of the rst
works on applying patterns for property veri cation and the work by the groups
who have developed the speci cation patterns (see e.g. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]).
Business process models often have to adhere to certain compliance rules such
as \After each customer request we receive, an o er will be sent". To ensure a
high quality of the model or the adherence to compliance rules, it is desirable
to verify such properties after each change of the model. Using the terminology
from [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the mentioned property can be described by the speci cation pattern
\Response". A modeller who wants to verify this property in our tool b ow*
Toolbox opens the Eclipse view \Model properties" (which is provided by our
plug-ins) and selects the appropriate pattern from a menu as shown in Fig. 4.
Next, the placeholders in the property speci cation are bound to shapes in the
diagram (i.e. to tasks in the depicted business process) by rstly clicking on
the hyperlink for the placeholder and secondly clicking on the shape. When all
properties are bound to concrete model elements, both the model to be veri ed
as its expected properties are transformed into the input language of a formal
tool. For demonstrating the approach, we transform a business process model
in the language Event-Driven Process Chains into a network of automata that
can be veri ed by the model checker UPPAAL. In addition, the properties to be
veri ed are translated into a temporal logic formula as well. For this purpose,
a template has to be provided which lists the property speci cation patterns
as well as their formal representation in the language of the model checker.
Of course, an expert in formal methods is needed for creating these templates.
However, once the templates exist, end-users can use them without any deeper
knowledge in this area. For example, for the mentioned property, this template
looks like this:
After execution of $function_1 , $function_2 will always be
executed later &gt;&gt;&gt;i_$function_1.working--&gt;i_$function_2.working
      </p>
      <p>Next, the tool for veri cation (in our case, the model checker UPPAAL) is
called, its results are analysed and shown in the Model Properties view in the
same way. The properties are marked as \red" or \green" (see Fig. 5) in the
same way as in Eclipse's JUnit plug-in (Fig. 1).</p>
      <p>
        Using our Plug-ins in Eclipse-Based Modelling Tools
While the example in the previous section deals with business process models,
the pattern-based approach can be used for other types of modelling as well. For
example, property speci cation patterns have been used for verifying properties
of UML state charts [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ] or goal models [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] discusses the development
for property speci cation patterns for arbitrary domain-speci c languages. To
sum up, we believe that the b ow* Hive can be useful for a great variety of
di erent types of modelling, including domain-speci c approaches. To give an
example, Fig. 6 shows how our plug-ins have been used for verifying typical
properties of models in the goal-oriented modelling language {_ .
      </p>
      <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="ref17">17</xref>
        ] (a
modelling tool that allows functional software size estimation) and (partly) in the {_
modelling tool openOME 2.
      </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>Compiled binaries and the source code can be obtained from the
repositoryhttps://github.com/bflowtoolbox/ where all plug-ins named org.bflow.toolbox.
hive.* are part of the tool-independent b ow* Hive. The easiest way for a user to
pro t from the features provided by the b ow* Hive 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.
1http://bflow.org
2http://sourceforge.net/projects/openome/</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Visser</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whalen</surname>
            ,
            <given-names>M.W.:</given-names>
          </string-name>
          <article-title>The hidden models of model checking</article-title>
          .
          <source>Software and System Modeling</source>
          <volume>11</volume>
          (
          <year>2012</year>
          )
          <volume>541</volume>
          {
          <fpage>555</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. 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="ref3">
        <mixed-citation>
          3.
          <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 BPM Demo Session</source>
          <year>2015</year>
          . (
          <year>2015</year>
          )
          <volume>120</volume>
          {
          <fpage>124</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Giordano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martelli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spiotta</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dupre</surname>
          </string-name>
          , D.T.:
          <article-title>Business processes veri cation with temporal answer set programming</article-title>
          .
          <source>In: Proceedings of the 1st International Workshop on Knowledge-intensive Business Processes. Volume 861 of CEUR Workshop Proceedings</source>
          . (
          <year>2012</year>
          )
          <volume>48</volume>
          {
          <fpage>59</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Forster</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Engels</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schattkowsky</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Der Straeten</surname>
          </string-name>
          , R.:
          <article-title>Veri cation of business process quality constraints based on visual process patterns</article-title>
          .
          <source>Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering</source>
          (
          <year>2007</year>
          )
          <volume>197</volume>
          {
          <fpage>208</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Speck</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feja</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Witt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Pulvermuller, E.,
          <string-name>
            <surname>Schulz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Formalizing business process speci cations</article-title>
          .
          <source>Comput. Sci. Inf</source>
          . Syst.
          <volume>8</volume>
          (
          <year>2011</year>
          )
          <volume>427</volume>
          {
          <fpage>446</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Muller, J.:
          <article-title>Strukturbasierte Veri kation von BPMN-Modellen</article-title>
          . Vieweg+Teubner,
          <string-name>
            <surname>Wiesbaden</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avrunin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corbett</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Property speci cation patterns for nite-state veri cation</article-title>
          .
          <source>In: Proceedings of the second workshop on Formal methods in software practice</source>
          , ACM Press (
          <year>1998</year>
          )
          <volume>7</volume>
          {
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Janssen</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mateescu</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mauw</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fennema</surname>
          </string-name>
          , P., van der Stappen, P.:
          <article-title>Model checking for managers</article-title>
          .
          <source>In: 5th and 6th International SPIN Workshops</source>
          .
          <article-title>(</article-title>
          <year>1999</year>
          )
          <volume>92</volume>
          {
          <fpage>107</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Elgammal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Turetken, O., van den Heuvel, W.,
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          :
          <article-title>Formalizing and appling compliance patterns for business process compliance</article-title>
          .
          <source>Software and System Modeling</source>
          <volume>15</volume>
          (
          <year>2016</year>
          )
          <volume>119</volume>
          {
          <fpage>146</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Wong</surname>
          </string-name>
          , P.Y.,
          <string-name>
            <surname>Gibbons</surname>
          </string-name>
          , J.:
          <article-title>Property speci cations for work ow modelling</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>76</volume>
          (
          <year>2011</year>
          )
          <volume>942</volume>
          { 967
          <string-name>
            <given-names>Integrated</given-names>
            <surname>Formal</surname>
          </string-name>
          <article-title>Methods (</article-title>
          <year>iFM09</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>L.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avrunin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Osterweil</surname>
            ,
            <given-names>L.J.:</given-names>
          </string-name>
          <article-title>Using software engineering technology to improve the quality of medical processes</article-title>
          .
          <source>In: 30th International Conference on Software Engineering (ICSE</source>
          <year>2008</year>
          ), Companion Volume,
          <source>ACM</source>
          (
          <year>2008</year>
          )
          <volume>889</volume>
          {
          <fpage>898</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lopez</surname>
            , K., Cheng,
            <given-names>B.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konrad</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldsby</surname>
          </string-name>
          , H.:
          <article-title>Visualizing requirements in UML models</article-title>
          .
          <source>First International Workshop on Requirements Engineering Visualization)</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Leitner-Fischer</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leue</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Quantum:
          <article-title>Quantitative safety analysis of UML models</article-title>
          .
          <source>In: Proceedings Ninth Workshop on Quantitative Aspects of Programming Languages. Volume 57 of EPTCS</source>
          . (
          <year>2011</year>
          )
          <volume>16</volume>
          {
          <fpage>30</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Elaborating security requirements by construction of intentional anti-models</article-title>
          .
          <source>In: Proceedings of the 26th International Conference on Software Engineering</source>
          , IEEE Computer Society (
          <year>2004</year>
          )
          <volume>148</volume>
          {
          <fpage>157</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Meyers</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deshayes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucio</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>ProMoBox: A framework for generating domain-speci c property languages</article-title>
          .
          <source>In: Software Language Engineering - 7th International Conference</source>
          . Volume
          <volume>8706</volume>
          of LNCS., Springer (
          <year>2014</year>
          )
          <volume>1</volume>
          {
          <fpage>20</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <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>