<!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 Human-Centred Framework for Supporting Agile Model-Based Testing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maria Spichkova</string-name>
          <email>maria.spichkova@rmit.edu.au</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anna Zamansky</string-name>
          <email>annazam@is.haifa.ac.il</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>RMIT University</institution>
          ,
          <country country="AU">Australia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Haifa</institution>
          ,
          <country country="IL">Israel</country>
        </aff>
      </contrib-group>
      <fpage>105</fpage>
      <lpage>112</lpage>
      <abstract>
        <p>The successful application of model-based testing (MBT) heavily relies on constructing a complete and coherent model of a system. This implies that inconsistency, incompleteness, or inaccuracy due to human error bear signi cant consequences. We propose a formal framework for MBT which we call AHR: agile, human-centred and re nementoriented. AHR captures an iterative construction of models and test plans, as well as supports re nements at di erent levels of abstraction.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Model-based testing (MBT) is a technique for generating test cases from system
model. Testers using this approach concentrate on a data model and generation
infrastructure instead of hand-crafting individual tests, cf. [
        <xref ref-type="bibr" rid="ref2 ref4">2, 4</xref>
        ]. MBT heavily
relies on models of a system and its environment to derive test cases for the
system [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. A system model is a result of the process of abstraction, the aim of
which is a simpli cation of the complexity of a system and its environment. If the
system is complex enough, however, several re nement steps may be required,
each time using a more detailed representation of the system. Testing
methodologies for complex systems therefore often integrate di erent abstraction levels
of the system representation. The crucial points for each abstraction level are
(i) whether we really require the whole representation of a system to analyse
its core properties, and (ii) which test cases are required on this level [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. As
pointed out in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], MBT makes sense only if the model is more abstract than the
system under test. This implies that only behaviour encoded in the model can
be tested, and that di erent levels of abstraction must be bridged. Modelling in
MBT remains a strictly human activity, and the successful employment of MBT
techniques heavily relies on the human factor. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] mentions the steep learning
curve for modelling notations as one barrier in the adoption of MBT in industry.
Another barrier is the lack of state-of-the-art authoring environments, which can
provide (semi-automatic) support for the human tester and help minimise the
number of human errors as well as their impact.
      </p>
      <p>
        Construction of complex models heavily relies on tacit human knowledge and
therefore will always remain the task of a human tester, escaping full
automatisation. The complexity and error-prone nature of this task, however, calls for
Copyright ' by the paper's authors. Copying permitted only for private and academic
purposes.
more emphasis on human-centred approaches in automatic support of
modelbased testing. There are numerous works on human error in software
development [
        <xref ref-type="bibr" rid="ref15 ref6">6, 15</xref>
        ] and human-oriented software development [
        <xref ref-type="bibr" rid="ref12 ref13 ref17">12, 13, 17</xref>
        ].
      </p>
      <p>
        In this paper we introduce AHR (agile, human-oriented, re nement-oriented),
a formal framework for integrating human-centred considerations into MBT with
multiple levels of abstraction. This framework extends the ideas of
HumanCentred Agile Test Design (HCATD), cf. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], where it is explicitly
acknowledged that the tester's activity is not error-proof: human errors can happen,
both in the model and the test plan, and should be taken into account. HCATD
combines agile modelling with test planning, with the idea to explicitly make
room for inconsistency, incompleteness and inaccuracy of models and test plans
in MBT. The discovery of an error or incomplete information may cause the
tester to return to the model and re ne it, which in its turn may induce further
changes in the existing test plan. Agile software development process focuses on
facilitating early and fast production of working code [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] by supporting
iterative, incremental development. The term \agile" in AHR is meant to re ect the
iterative and incremental nature of the process of modelling and test planning.
We demonstrate the applicability of AHR using an example from the domain of
combinatorial testing of cyber-physical systems. The framework can be seen as
the rst step towards developing tools and environments supporting the human
modeller/tester in agile MBT.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>The AHR Framework</title>
      <p>The proposed AHR framework has three core features:
A Agile: Both the test plan and system model at each abstraction level of
modelling/implementation are agile in the sense that they are (only) su ciently
complete, accurate and consistent (with coverage requirements); error
correction and speci cation extension are iteratively performed.</p>
      <p>H Human-centred: Error correction and speci cation extension/completion can
be supported by posing series of queries or issuing alerts to the tester.
R Re nement-oriented: Re nement is performed in the framework in several
ways: (i) the usual static re nement of system properties when moving
between abstraction levels, (ii) dynamic re nement of system properties and
test plans as a result of information completion or error correction.
Let S be the system under test. Assume that we construct a model with m
levels of abstraction. We say that S can be completely described at each level
l by the set PROPl(S) of its properties. The main two tasks of the human
tester in the process of MBT are (1) to construct an appropriate abstraction
M of S, and (2) to propose a test suite that validates S against M according
to some chosen coverage requirements. For performing the task (1), we have to
decide which properties of the system are important to model/implement (and,
respectively, to test) and which need to be abstracted away. Thus, we have to
partition the set PROPl(S) into two disjoint subsets: LPROPl(S) { the properties
to be modelled/implemented and tested, and ABSTRl(S) { the properties to be
abstracted away, knowingly or unknowingly.</p>
      <p>LPROPl(S) [ ABSTRl(S) = PROP(S)</p>
      <p>LPROPl(S) \ ABSTRl(S) = ;
The properties LPROPl(S) might include the pre- and post-conditions of
actions. We denote the pre- and post-conditions of an action Act on the level l by
P rel(Act) and P ostl(Act) respectively.</p>
      <p>On each abstraction level the traceability between the system properties and
the corresponding tests is crucial for our approach (cf. also Figure 1). If the
information is not important on the current level, it could in uence on the overall
modelling result after some re nement steps, i.e., at more concrete levels that
are closer to the real system in the physical world. Therefore, while specifying
system we should make all the decisions on abstraction in the model transparent
and track them explicitly. In the case of contradiction between the model and
the real system this would allow us to nd the problem easier and faster.</p>
      <p>VALIDATED1 </p>
      <p>REJECTED1  UNCERTAIN1 
TESTS1 
TESTS2 
TESTSm-­‐1 
TESTSm 
VALIDATED2 </p>
      <p>REJECTED2  UNCERTAIN2 </p>
      <p>…  
VALIDATEDm-­‐1  REJECTEDm-­‐1  UNCERTAINm-­‐1 
VALIDATEDm  REJECTEDm  UNCERTAINm </p>
      <p>HCATD  
correct  
HCATD  
correct  
HCATD  
correct  
HCATD  
correct  </p>
      <p>LPROP  </p>
      <p>V1 
LPROP  </p>
      <p>V2 
…  </p>
      <p>Level  1  
 
ABSTRKNOWN   
ABSTRUNKNOWN   
 
Level  2  
 
ABSTRKNOWN   </p>
      <p> 
ABSTRUNKNOW  N    
 
 
 
 
 
Level  m-­‐1  
 
ABST RKNOWN 
ABSTR UNKNOWN 
           
Level  m      
 
 ABSTRKNOWN 
   </p>
      <p>ABSTRUNKNOWN 
LPROP  
Vm-­‐1 
LPROP  </p>
      <p>Vm 
To introduce an explicit representation of incompleteness, which is manageable
and traceable at di erent levels of abstraction, we suggest to divide the set
ABSTRl(S) into two disjoint subsets, ABSTRKNOWl(S) and ABSTRUNKNOWl(S):
ABSTRKNOWl(S) [ ABSTRUNKNOWl(S) = ABSTRl(S)</p>
      <p>ABSTRKNOWl(S) \ ABSTRUNKNOWl(S) = ;
This allows us to separate the properties of the system from which we
abstract intentionally from those, from which we abstract a unknowingly. The
ABSTRUNKNOWl(S) properties are not identi ed/classi ed at level l due to lack
of information (which may be due to error/omission). Thus, on each level l we
generally operate with three sets of properties:
{ LPROPl(S) { properties the tester decided to include at this level,
{ ABSTRKNOWl(S) { properties from which he knowingly abstracts at l;
{ ABSTRUNKNOWl(S) { properties which he unknowingly abstracts at l.
With each re nement step the tester moves some part of system's properties
from the set ABSTR to the set LPROP. We can say that in some sense the set
ABSTR represent the termination function for the modelling process.</p>
      <p>In a similar manner, the set of all tests is divided into three mutually disjoint
subsets on each level l:
{ validatedl: the tester con rmed these tests as executable on this abstraction
level according to some chosen con rmation strategy;
{ rejectedl: the tester rejected these tests as impossible or irrelevant on this
abstraction level;
{ uncertainl: the tester has not classi ed these tests to be validated/rejected,
as not enough information has been provided for the classi cation.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Combinatorial Test Design with AHR</title>
      <p>
        A type of MBT which uses particularly simple models is combinatorial test
design (CTD), cf. [
        <xref ref-type="bibr" rid="ref10 ref3 ref5">3, 5, 10</xref>
        ]. In CTD a system is modelled using a nite set of
system parameters A = fA1; : : : ; Ang. Each of the parameters is associated with
a set of corresponding values V = fV(A1); : : : ; V(An)g. The main challenge of
CDT is to optimise the number of test cases, while ensuring the coverage of given
conditions. Tai and Lei [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] have shown in their experimental work that a test set
covering all possible pairs of parameter values can typically detect 50-75% of the
bugs in a program. In what follows we demonstrate an application of the AHR
framework for CDT. In our approach, we suggest to analyse interactions between
the di erent values of the parameters, i.e., elements of the form I S1n V(Ai),
where at most one value of each parameter may appear. An interaction of size n
(where some value of each system parameter appears) is a scenario (or test). We
say that a set of scenarios T covers a set of interactions C if for every c 2 C there
is some t 2 T , such that c t. A combinatorial model E of the system is a set of
scenarios, which de nes all tests executable in the system. A test plan is a triple
P lan = (E ; C; T ), where E is a combinatorial model, C is a set of interactions
called coverage requirements, and T is a set of scenarios called tests, where T
covers C.
      </p>
      <p>
        One of the most standard coverage requirements is pairwise testing [
        <xref ref-type="bibr" rid="ref18 ref7">7, 18</xref>
        ]:
considering every (executable) pair of possible values of system parameters. In
the above terms, a pairwise test plan can be formulated as any pair of the form
P lan = (E ; Cpair(E ); T ), where Cpair is the set of all interactions of size 2 which
can be extended to scenarios from E .
      </p>
      <p>Typically, the CTD methodology is applied in the following stages. First the
tester constructs a combinatorial model of the system by providing a set scenarios
which are executable in the system. After choosing the coverage requirements,
the second stage is constructing a test plan, i.e., proposing a set of tests over
the model, so that full coverage with respect to a chosen coverage strategy is
achieved. The set of parameters A as well as the sets of corresponding values V
will be re ned and extended along with the re nement and extension of the sets
of properties. Respectively, the sets of tests have to be also re ned. When a new
level l + 1 is created by specifying LPROPl+1 and Vl+1, and some parameters
and their values are unchanged while re ning the system from level l to level
l + 1, then a number of corresponding tests are still unchanged too, which means
that we can also reuse their marking as validated/rejected/uncertain. If we trace
the re nement relations not only between the properties but also between test
plans, this might help to correct possible mistakes more e ciently, as well as
provide additional support if the system model is modi ed. In AHR, we use
upper indices on the test names to denote that the test belongs to a particular
abstraction level, e.g., test35 would denote that the test5 de ned on the Level 3.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Example Scenario: A Cyber-Physical System</title>
      <p>
        An important domain in which modelling with di erent levels of abstraction
is particularly bene ciary is cyber-physical systems (CPS). Our early work on
speci cation of CPS on abstract level was presented in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>Let us consider a cyber-physical system system with two robots R1 and R2
interacting with each other. Using the AHR framework, we model each robot on
Level 1 by two parameters, GM and P :
{ GM represents the mode of the robot's grippers, which can be either either
closed (to hold an object) or open. We specify two system parameters of this
type on Level 1, GM1 and GM2 specifying the gripper modes of R1 and R2
respectively, where V(GM1) = V(GM2) = fopen; closedg.
{ P represents the robot's position. On Level 1, we assume to have only three
possible positions for each robot. In the system model on Level 1, we have
two system parameters of this type, P1 and P2 specifying the positions of
R1 and R2 respectively, where V(P1) = V(P2) = fpos1; pos2; pos3g.
In what follows let us assume pairwise coverage requirements. We specify two
meta-operations Give and T ake to model the scenario when one robot hands an
object to another robot. A meta-operation Give in which R1 gives an object to R2
can only be performed when the gripper of R1 is closed, the gripper of R2 is open,
and the grippers of both robots are in the same position. This means that not all
test cases are executable and further restrictions should be imposed. Suppose,
however, that the information on the position is erroneously omitted, because
of a human error on speci cation level while de ning the set of LPROP1. Thus,
LPROP1 = fP re1(Give)g, where P re1(Give) = fGM1 = closed; GM2 = openg.
This induces a system model with the corresponding tests (cf. Table 1).
Initially, all tests are be marked as uncertain. The tester then goes on to construct
a test plan by selecting two tests from the table, for example, test1 and test5.
In this test plan, the tester erroneously omitted a test case including pos3. Once
the tester submits the test plan, test1 and test5 are marked as validated. At
this point the tester's mistake may be discovered, as pairwise coverage is not
achieved: e.g., the interactions fP1 : pos1; P2 : pos2g and fP1 : pos3; P2 : pos3g
remain uncovered. This can be either due to the fact that the tester considered
non-executable tests as possible or forgot to add some tests.</p>
      <p>A human-oriented solution to this kind of problems would be issuing a query
to prompt the tester to either extend the logical condition with P1 = P2 (thus
removing the interaction fP1 : pos1; P2 : pos2g from coverage requirements) or
extend the test plan with test9. To provide a better overview of the plan
conditions while analysing whether a new conditions and/or tests should be added, we
also suggest to provide an option show the current conditions. When the tester
decides to mark test9 as validated and to add the logical condition P1 = P2 to the
set LPROP1, the framework will update the set LPROP1 and notify the tester
that the pairwise coverage is achieved under the current selected conditions.
After the corresponding corrections, LPROP1 = fP re1(Give)g, where</p>
      <p>
        P re1(Give) = fGM1 = closed; GM2 = open; P1 = P2g
As the next step, the framework reminds the tester that a number of tests are
still marked as uncertain (cf. Figure 3). The tester might either accept with the
current marking or mark all the uncertainties as rejected to switch to an
optimised view, where only validated tests are presented to increase the readability.
P1
pos1
pos1
pos1
pos2
pos2
pos2
pos3
pos3
pos3
This paper3 introduces the AHR framework for supporting an agile MBT. The
framework explicitly acknowledges that the human tester as well as the system
designer may make mistakes that need to be corrected. Error correction and
speci cation extension/completion is supported by posing series of queries or
issuing alerts to the tester. AHR involves several abstraction levels of modelling
and testing, where models and test planes can be iteratively updated, completed
and improved during the development process. To illustrate the core features of
the framework, we have presented an example scenario from the domain of cyber
physical systems. AHR has the potential to facilitate the adoption of MBT in
industry, increasing the e ciency of the human tester and providing opportunities
for collaborative e orts. To increase the productivity of our approach, we might
embed it into facilities as the Virtual Experiences Laboratory [
        <xref ref-type="bibr" rid="ref1 ref16">1, 16</xref>
        ], where the
interoperability simulation and testing are performed remotely.
3 The second author was supported by The Israel Science Foundation under grant
agreement no. 817/15.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.O.</given-names>
            <surname>Blech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Peake</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Cyber-virtual systems: Simulation, validation &amp; visualization</article-title>
          . In International Conference on Evaluation of Novel Approaches to Software Engineering,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>S.R.</given-names>
            <surname>Dalal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Karunanithi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.M.</given-names>
            <surname>Leaton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.M.</given-names>
            <surname>Lott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.C.</given-names>
            <surname>Patton</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.M.</given-names>
            <surname>Horowitz</surname>
          </string-name>
          .
          <article-title>Model-based testing in practice</article-title>
          .
          <source>In International Conference on Software Engineering</source>
          , pages
          <volume>285</volume>
          {
          <fpage>294</fpage>
          . ACM,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>E.</given-names>
            <surname>Farchi</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Segall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tzoref-Brill</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zlotnick</surname>
          </string-name>
          .
          <article-title>Combinatorial testing with order requirements</article-title>
          .
          <source>In International Conference on Software Testing, Veri cation and Validation Workshops</source>
          , pages
          <volume>118</volume>
          {
          <fpage>127</fpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>W.</given-names>
            <surname>Grieskamp</surname>
          </string-name>
          <article-title>. Multi-paradigmatic model-based testing</article-title>
          .
          <source>In Formal Approaches to Software Testing and Runtime Veri cation, pages</source>
          <volume>1</volume>
          {
          <fpage>19</fpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kacker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hunter</surname>
          </string-name>
          .
          <article-title>Combinatorial software testing</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <volume>42</volume>
          (
          <issue>8</issue>
          ):
          <volume>94</volume>
          {
          <fpage>96</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mioch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Osterloh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Javaux</surname>
          </string-name>
          .
          <article-title>Selecting human error types for cognitive modelling and simulation</article-title>
          .
          <source>In Human modelling in assisted transportation</source>
          , pages
          <volume>129</volume>
          {
          <fpage>138</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Nie</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Leung</surname>
          </string-name>
          .
          <article-title>A survey of combinatorial testing</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>43</volume>
          (
          <issue>2</issue>
          ):
          <volume>11</volume>
          :1{
          <fpage>11</fpage>
          :
          <fpage>29</fpage>
          ,
          <year>February 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Pretschner</surname>
          </string-name>
          .
          <article-title>Model-based testing in practice</article-title>
          .
          <source>In FM 2005: Formal Methods</source>
          , pages
          <volume>537</volume>
          {
          <fpage>541</fpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          .
          <article-title>Agile test-based modeling</article-title>
          .
          <source>In International Conference on Software Engineering Research &amp; Practice. CSREA Press</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>I. Segall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tzoref-Brill</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zlotnick</surname>
          </string-name>
          .
          <article-title>Common patterns in combinatorial models</article-title>
          .
          <source>In International Conference on Software Testing, Veri cation and Validation (ICST)</source>
          , pages
          <fpage>624</fpage>
          {
          <fpage>629</fpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          . Architecture: Requirements + Decomposition +
          <article-title>Re nement</article-title>
          .
          <source>Softwaretechnik-Trends</source>
          ,
          <volume>31</volume>
          :
          <fpage>4</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          .
          <article-title>Human Factors of Formal Methods</article-title>
          .
          <source>In IADIS Interfaces and Human Computer Interaction</source>
          <year>2012</year>
          .
          <source>IHCI</source>
          <year>2012</year>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          .
          <article-title>Design of formal languages and interfaces: formal does not mean unreadable</article-title>
          . In Emerging Research and
          <article-title>Trends in Interactivity and the HumanComputer Interface</article-title>
          .
          <source>IGI Global</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>M.</given-names>
            <surname>Spichkova</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Campetelli</surname>
          </string-name>
          .
          <article-title>Towards system development methodologies: From software to cyber-physical domain</article-title>
          .
          <source>In Formal Techniques for Safety-Critical Systems</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. Spichkova</surname>
            , H. Liu,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Laali</surname>
            , and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Human factors in software reliability engineering</article-title>
          . Workshop on Applications of Human Error Research to Improve Software Engineering,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>M. Spichkova</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>and I. Peake.</given-names>
          </string-name>
          <article-title>From abstract modelling to remote cyberphysical integration/interoperability testing</article-title>
          .
          <source>In Improving Systems and Software Engineering Conference</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. Spichkova</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          <string-name>
            <surname>Zhu</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Mou</surname>
          </string-name>
          .
          <article-title>Do we really need to write documentation for a system? In Model-Driven Engineering</article-title>
          and
          <string-name>
            <given-names>Software</given-names>
            <surname>Development</surname>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>K.-C. Tai</surname>
            and
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lei</surname>
          </string-name>
          .
          <article-title>A test generation strategy for pairwise testing</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>28</volume>
          (
          <issue>1</issue>
          ):
          <volume>109</volume>
          {
          <fpage>111</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. Utting</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Pretschner</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Legeard</surname>
          </string-name>
          .
          <article-title>A taxonomy of model-based testing approaches</article-title>
          .
          <source>Software Testing, Veri cation and Reliability</source>
          ,
          <volume>22</volume>
          (
          <issue>5</issue>
          ):
          <volume>297</volume>
          {
          <fpage>312</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>A.</given-names>
            <surname>Zamansky</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Farchi</surname>
          </string-name>
          .
          <article-title>Helping the tester get it right: Towards supporting agile combinatorial test design</article-title>
          .
          <source>In Human-Oriented Formal Methods</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>