<!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>An experimental analysis of a near-optimal graph-based test generation algorithm</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mutlu Beyazıt</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Serge Demeyer</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universiteit Antwerpen</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Flanders Make vzw</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Belgium</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <fpage>27</fpage>
      <lpage>28</lpage>
      <abstract>
        <p>Graphs are widely used in model-based test generation. A commonly used family of coverage criteria is based on covering edge sequences of length  for  ≥ 1 . A near-optimal test generation algorithm (which based on solving Chinese postman problem) has a known algorithmic complexity of  (| | While we cannot change the inherent complexity of the algorithm, heuristics can heavily improve upon</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>3 ).
the actual runtime of the algorithm. In this paper, for the purpose of developing such a heuristic, we
illustrate the potential points of improvement by means of an experimental analysis. Our results suggest
that the good coverage properties displayed by the algorithm are prone to being exploited to improve its
runtime performance at least for certain types of graphs.</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>
        Model-based testing is the activity of testing a (software) system based on the abstractions
called models or specifications. It is commonly used for functional testing of the system [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and
it involves activites such as modeling, test generation, test concretization and test execution [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
There have been many studies reporting the benefits of model-based testing such as increased
efectiveness and eficiency in terms of fault detection and testing costs [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. Especially
relevant for fast evolving systems, (model-based) test generation has been used in the context of
Graphical User Interfaces [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ], web services [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], web applications [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], mobile applications [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
etc.
      </p>
      <p>
        There are diferent types of graph-based models, which difer from each other in terms
of expressive power and the elements on which they put the focus. Two of these types are
state-based models, such as finite state machines [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ], and event-based models, such as event
lfow graphs [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and event sequence graphs [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Test generation is an important part of model-based testing. For graph-based models, the
idea is in general to extract edge sequences. Extracted sequences are supposed to satisfy some
coverage criteria based on, for example, coverage of certain faults or coverage of edge sequences
of diferent lengths [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Although it is more costly, generation of small test sets is desirable
in the context of fast evolving applications because the (regression) tests are executed against
every minor release.
CEUR
      </p>
      <p>
        This paper studies a commonly used near-optimal graph-based test generation algorithm [
        <xref ref-type="bibr" rid="ref14 ref15 ref6 ref8">14,
15, 6, 8</xref>
        ]. This algorithm generates a set of test cases covering edge sequences of length  ≥ 1 by
solving Chinese postman problem [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The algorithm has a known complexity of  (| | 3 ) [
        <xref ref-type="bibr" rid="ref14 ref17">14,
17</xref>
        ] where | | is the number of vertices in the graph. Thus, its runtime increases very fast
especially when the parameter  is increased. However, one can use heuristics to improve the
actual runtime of the algorithm. The aim of the paper is to motivate the exploration of such
a heuristic and experimentally validate the possibility of reducing the actual runtime. The
heuristic considered in this paper is based on utilizing test cases achieving weaker coverage in
generation of test cases achieving stronger coverage. We investigate whether tests generated
using the algorithm show good coverage properties for also the coverage targets which are out
of their scope. Furthermore, since the exploration of heuristics is also dependent on which part
of the test generation algorithm is the most time-consuming part, we perform an experimental
runtime analysis of the algorithm.
      </p>
    </sec>
    <sec id="sec-3">
      <title>2. Background</title>
      <p>This section gives a brief background on graphs, graph-based coverage criteria and the
graphbased test generation algorithm of interest.</p>
      <sec id="sec-3-1">
        <title>2.1. Graphs</title>
        <p>We start by giving the definition of a graph.</p>
        <p>Definition 1. A directed multigraph is a tuple  = ( , ) where  ≠ ∅ is a finite set of vertices,
and  is a finite multiset of edges where each edge is an order pair in  ×  . A walk  1,  2, … ,   in
 is a sequence of vertices where each (  ,  +1 ) ∈  .</p>
        <p>Depending on the context, it is possible to enrichen the semantics of a graph-based model
by distinguishing between diferent types of vertices and/or by labeling the vertices or edges
with diferent elements. For example, in state-based models, vertices represent states and edges
represent transitions where each transition is also labeled by inputs or input-output pairs. In
event-based models, on the other hand, vertices represents events, and edges have no labels;
they define a ”follows” relation on events. Of course, it is always possible to define extensions
by introducing guards, quiescence, time, hiearchy, etc. Figure 1a shows an example graph.</p>
        <sec id="sec-3-1-1">
          <title>2.2.  -Edge Coverage</title>
          <p>Regardless of the type of the graph-based model, a common purpose is to extract or generate
subgraphs from the given graph to be used as test cases. The way the test cases are generated is
dependent on the model elements. For example, a model with guards is harder to work with
than one without guards because it is more expressive. Still, in many practical applications, the
generated subgraphs are linear and, thus, walks in the graph are used as test cases.</p>
          <p>In the generation of test cases, coverage criteria of diferent strengths are defined and used.
One way to do this is to utilize  -edges. A  -edge is a walk of length  where  ≥ 1 , and  -edges
are used as coverage targets. The associated coverage criterion is given in Definition 2.
(a) Example graph</p>
          <p>(b) Graph with pseudovertices
(c) One-time transformed graph
Definition 2. Given a graph  and a set of test cases  ,  is said to cover a  -edge  in  if  appears
in one of the the test cases in  .  is said to achieve  -edge coverage if it covers all  -edges in  .</p>
          <p>Note that, if it is possible to extend each walk in a given graph to a longer walk, the set of
 -edges is always a subset of the set of ( + 1) -edges for each  ≥ 1 . Consequently, ( + 1) -edge
coverage is stronger than  -edge coverage. Thus, parameter  is used to assess the strength of
the set of test cases  .</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>2.3. Test Generation Covering  -Edges</title>
          <p>In certain contexts or, generally, for generation of test cases, certain vertices in the graph can be
marked as inital/start/entry or final/finish/exit vertices. Furthermore, the graph model may be
required to satisfy certain properties such as consistency where each vertex is reachable from
an entry vertex and an exit vertex is reachable from each vertex.</p>
          <p>The test generation algorithm we consider in this work has the following assumptions.
• The graph has at least one entry vertex and one exit vertex.
• The graph is consistent.
• Each test case is a walk from an entry vertex to an exit vertex.</p>
          <p>Without any loss of generality, we use one pseudostart vertex denoted by ”[” to mark the
entry vertices and one pseudofinish vertex denoted by ” ]” to mark the exit vertices. Each entry
vertex has an incoming edge from the pseudostart vertex and each exit vertex has an outgoing
edge to the pseudofinish vertex. Figure 1b shows inclusion of pseudo vertices to the graph in
Figure 1a assuming that ”1” and ”2” are entry vertices, and ”3” and ”4” are exit vertices.</p>
          <p>
            The main steps of the test generation algorithm is given in Algorithm 1 in two parts. In
”graph transformation” part of the algorithm (See Part 1 in Algorithm 1),  is transformed
 − 1 times to obtain a graph   such that, when the edges of   are covered,  -edges of  are
covered. In other words, each edge in   corresponds to  consecutive edges in  . It has the
time complexity of  ( 2| | 2 ); details can be found in [
            <xref ref-type="bibr" rid="ref15 ref17">15, 17</xref>
            ]. Figure 1c shows a graph which
is obtained by transforming the graph in Figure 1b once.
          </p>
          <p>Algorithm 1 Algorithm to Generate Test Cases Achieving k-Edge Coverage
Require: A consistent graph  = ( , ) and coverage parameter  ≥ 1
Ensure: Generated set of test cases  achieves  -edge coverage
1: /* Part 1: Graph transformation */
2:   ← 
3:  ← 1
4: while  &lt;  do
5:   ← Transform   using 
6:  ←  + 1
7: end while
8: /* Part 2: Euler path generation */
9:   ← Add the edge (], [) to  
10:   ← Add proper paths until degree of each vertex is 0
11:  ← Compute Euler paths from [ to ] in</p>
          <p>
            Once the transformed graph is computed, ”Euler path generation” part of the algorithm
(see Part 2 in Algorithm 1) works on solving the Chinese postman problem [
            <xref ref-type="bibr" rid="ref16 ref18">16, 18</xref>
            ]. First,
a backward edge from the pseudofinish vertex to the pseudostart vertex is added to have a
strongly-connected graph (Line 7). Then, the graph is balanced by repeating some of the existing
paths (Line 8). This is done by matching each vertex with positive degree with a vertex with
negative degree by solving an assignment problem [
            <xref ref-type="bibr" rid="ref19 ref20">19, 20</xref>
            ] and inserting a shortest path from
a vertex with positive degree to its matching vertex with negative degree. Finally, after the
graph is balanced, paths from the pseudostart vertex to the pseudofinish vertex are computed by
visiting each edge exactly once (Line 9). These paths are called Euler paths and they correspond
to the test cases. Line 10 detemines the complexity of this part, and it is given by  (| | 3 ) [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
Compared to the complexity of Part 1, Part 2 is likely the most time consuming part because, in
practice,  2 &lt;&lt; | | and, also, hidden constants that are neglected in big O notation have more
efect on the runtime of Part 2.
          </p>
          <p>Note that Algorithm 1 may yield infeasible paths depending on the semantics of the actual
graph model. In this paper, we assume that all paths are feasible.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3. Experimental Analysis</title>
      <p>In this section, we perform experiments to collect data on the test generation algorithm given
in 1 using randomly generated graph models. Our aim is to identify possible opportunities to
improve the near-optimal algorithm in terms of runtime time.</p>
      <sec id="sec-4-1">
        <title>3.1. Research Questions</title>
        <p>In order to identify possible points of improvements for Algorithm 1, we formulate the following
research questions.</p>
        <p>RQ1 Can we confirm that Euler path generation part of Algorithm 1 is the most time consuming
part?
RQ2 Given a test set achieving  -edge coverage generated by Algorithm 1, what factors afect
the coverage of  -edges and how well does the test set cover  -edges where  &gt;  ?
RQ2 is formulated to see whether test cases achieving  -edge coverage ( ≥ 1 ) show good
coverage properties for also the coverage targets which are out of their scope. This is an
indication of possibility of utilizing  -edge covering test cases in generation of the test cases
achieving  -edge coverage for  &gt;  . However, this possibility is also dependent on the change
in the runtime of diferent parts of Algorithm 1 when  is increased. Thus, we also define RQ1 to
investigate which of the two main parts of the algorithm takes more time: graph transformation
part or Euler path generation part.</p>
      </sec>
      <sec id="sec-4-2">
        <title>3.2. Experimental Setup</title>
        <p>In order to collect data, we used randomly generated and consistent graph models satisfying
the following conditions.</p>
        <p>• Each graph has one entry vertex and one exit vertex. This is done to reduce the
possible efects of multiple pseudoedges on the the test generation. Although there is no
detailed study on the subject, Algorithm 1 may yield non-optimal results if the number of
pseudoedges is greater than 1.
• All vertices in a graph have the same number of outgoing edges. This is done to control
the model size properly, to increase the probability of generating a consistent graph, and
to ensure that each edge takes part in − edges in a more uniform manner.</p>
        <p>We use the following parameter values in our experiments.</p>
        <p>• Number of vertices in a graph, or simply vertex</p>
        <p>5, 10, 15, 20, 25, 30, 35, 40, 45, 50
• Number of outgoing edges of a vertex, or simply out degree:  = 3, 4, 5
•  -edge coverage parameter:  = 1, 2, 3
• Parameter for coverage targets:  = 1, 2, 3, 4, 5
count:
 
=
For each ( , , ) triple, we generate 10 random graphs and perform 3 test generation runs to
collect data in a feasible time period. All runs are executed on a MacBook Pro 14 with Apple
M1 Pro CPU, 16GB RAM and macOS Monterey operating system.
(a) / values for  = 3
(b) / values for  = 4
(c) / values for  = 5</p>
      </sec>
      <sec id="sec-4-3">
        <title>3.3. Results</title>
        <p>Let  denote the time it takes to generate the Eulerian paths and and  denote the time to
perform the graph transformation part of Algorithm 1. To see how  and  values compare with
respect to each other, we give bar plots which include / values for  = 2, 3 and  = 3, 4, 5 in
Figures 2a, 2b and 2c. Note that values for  = 1 are not included since no transformation takes
place to cover 1-edges.</p>
        <p>RQ1 can be answered by using these plots. It is clear that Eulerian path generation part of
Algorithm 1 is far more time consuming than its graph transformation part. The diference
increases for increasing  values and increasing  values.</p>
        <p>The results of coverage analysis of  -edge covering test sets for  = 1, 2, 3 are given in Figures
3a, 3b and 3c for  =  + 1, … , 5 . While plotting the graphs, average of the values obtained over
10 random graphs with 3 runs for each graph are used.</p>
        <p>To answer RQ2, let  (, , ) denote the ratio of  -edges covered by the test set achieving
 -edge coverage for a given value of  . Figures 3a, 3b and 3c show that, when  and  −  are
ifxed,  (, , ) values obtained using diferent  are very similar and they are not dependent
on   . Also, promisingly high  (, , ) values are observed especially when  =  + 1 and
 is small:  (,  + 1, 3) = 43% ,  (,  + 1, 4) = 32% and  (,  + 1, 5) = 25% . Thus, there
is a decreasing trend for  (, , ) when  is increased; however, more data is required to
make further comments on the nature of this trend. On the other hand,  (, , ) shows a
faster-than-linear decrease for increasing  for diferent values of  when  is fixed.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Concluding Remarks</title>
      <p>Our results have both positive and negative implications for improvement of the near optimal
graph-based test generation algorithm given in Algorithm 1.</p>
      <p>On the positive side, we have the following.</p>
      <p>• A test set achieving  -edge coverage covers a significant portion of  + 1 -edges already.</p>
      <p>Therefore, it might be possible to develop heuristics utilizing test set achieving  -edge
coverage in the generation of test sets achieving  + 1 -edge coverage. This my cause a
considerable speed-up in test generation, because a test achieving  -edge coverage can be
generated much faster than a tet set achieving  + 1 -edge coverage, especially when 
increases.
• Part 2 (Eulerian path generation) of the algorithm consumes significantly more time than
Part 1 (graph transformation). This is a positive result, because if Part 1 is a combinatorial
algorithm which is based on generating a graph containing coverage targets. Thus, it
is not likely to make use of the good coverage properties displayed by the test sets to
improve this part.</p>
      <p>On the negative side, the results suggest that the portion of  + 1 -edges covered by test sets
achieving  -edge coverage may decrease fast when the average outgoing degree of the
graphbased model increases. Thus, heuristics developed based on the properties discussed above may
not work under certain conditions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.</given-names>
            <surname>Beizer</surname>
          </string-name>
          ,
          <source>Software Testing Techniques (2nd Ed.)</source>
          , Van Nostrand Reinhold Co., USA,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G. R.</given-names>
            <surname>Mattiello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. T.</given-names>
            <surname>Endo</surname>
          </string-name>
          ,
          <article-title>Model-based testing leveraged for automated web tests</article-title>
          ,
          <source>Software Quality Journal</source>
          <volume>30</volume>
          (
          <year>2022</year>
          )
          <fpage>621</fpage>
          -
          <lpage>649</lpage>
          . URL: https://doi.org/10.1007/s11219-021-09575-w. doi:
          <volume>10</volume>
          .1007/s11219- 021- 09575- w.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Utting</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Legeard</surname>
          </string-name>
          ,
          <article-title>Practical Model-Based Testing: A Tools Approach</article-title>
          , Morgan Kaufmann Publishers Inc., San Francisco, CA, USA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Hierons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bogdanov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Bowen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Cleaveland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Derrick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gheorghe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kapoor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Krause</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Lüttgen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J. H.</given-names>
            <surname>Simons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vilkomir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Woodward</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zedan</surname>
          </string-name>
          ,
          <article-title>Using formal specifications to support testing</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>41</volume>
          (
          <year>2009</year>
          ). URL: https://doi.org/10.1145/1459352.1459354. doi:
          <volume>10</volume>
          .1145/1459352.1459354.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Memon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <article-title>Studying the fault-detection efectiveness of GUI test cases for rapidly evolving software</article-title>
          ,
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>31</volume>
          (
          <year>2005</year>
          )
          <fpage>884</fpage>
          -
          <lpage>896</lpage>
          . URL: https://doi.org/ 10.1109/TSE.
          <year>2005</year>
          .
          <volume>117</volume>
          . doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2005</year>
          .
          <volume>117</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beyazit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Güler</surname>
          </string-name>
          ,
          <article-title>Event-oriented, model-based GUI testing and reliability assessment-approach and case study</article-title>
          , volume
          <volume>85</volume>
          of Advances in Computers, Elsevier,
          <year>2012</year>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>326</lpage>
          . URL: https://www.sciencedirect.com/science/article/ pii/B9780123965264000060. doi:https://doi.org/10.1016/B978- 0
          <source>- 12- 396526- 4</source>
          .
          <fpage>00006</fpage>
          -
          <lpage>0</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>L.</given-names>
            <surname>Frantzen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tretmans</surname>
          </string-name>
          ,
          <source>Towards model-based testing of web services</source>
          ,
          <year>2006</year>
          . URL: https://api.semanticscholar.org/CorpusID:16371114.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>G. de Cleva Farto</surname>
            ,
            <given-names>A. T.</given-names>
          </string-name>
          <string-name>
            <surname>Endo</surname>
          </string-name>
          ,
          <article-title>Evaluating the model-based testing approach in the context of mobile applications</article-title>
          ,
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>314</volume>
          (
          <year>2015</year>
          )
          <fpage>3</fpage>
          -
          <lpage>21</lpage>
          . URL: https://www.sciencedirect.com/science/article/pii/S1571066115000250. doi:https:// doi.org/10.1016/j.entcs.
          <year>2015</year>
          .
          <volume>05</volume>
          .002, cLEI
          <year>2014</year>
          , the XL Latin American Conference in Informatic.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G. H.</given-names>
            <surname>Mealy</surname>
          </string-name>
          ,
          <article-title>A method for synthesizing sequential circuits</article-title>
          ,
          <source>The Bell System Technical Journal</source>
          <volume>34</volume>
          (
          <year>1955</year>
          )
          <fpage>1045</fpage>
          -
          <lpage>1079</lpage>
          . doi:
          <volume>10</volume>
          .1002/j.1538-
          <fpage>7305</fpage>
          .
          <year>1955</year>
          .tb03788.x.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E. F.</given-names>
            <surname>Moore</surname>
          </string-name>
          , et al.,
          <article-title>Gedanken-experiments on sequential machines</article-title>
          ,
          <source>Automata studies 34</source>
          (
          <year>1956</year>
          )
          <fpage>129</fpage>
          -
          <lpage>153</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Memon</surname>
          </string-name>
          ,
          <article-title>Using a pilot study to derive a GUI model for automated testing</article-title>
          ,
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>18</volume>
          (
          <year>2008</year>
          ). URL: https://doi.org/10.1145/1416563.1416567. doi:
          <volume>10</volume>
          .1145/1416563.1416567.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Budnik</surname>
          </string-name>
          ,
          <article-title>Minimal spanning set for coverage testing of interactive systems</article-title>
          ,
          <source>in: Proceedings of the First International Conference on Theoretical Aspects of Computing, ICTAC'04</source>
          , Springer-Verlag, Berlin, Heidelberg,
          <year>2004</year>
          , pp.
          <fpage>220</fpage>
          -
          <lpage>234</lpage>
          . URL: https://doi.org/10. 1007/978-3-
          <fpage>540</fpage>
          -31862-0_
          <fpage>17</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -31862-0_
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beyazıt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. T.</given-names>
            <surname>Endo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mathur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Simao</surname>
          </string-name>
          ,
          <article-title>Fault domain-based testing in imperfect situations: A heuristic approach and case studies</article-title>
          ,
          <source>Software Quality Journal</source>
          <volume>23</volume>
          (
          <year>2015</year>
          )
          <fpage>423</fpage>
          -
          <lpage>452</lpage>
          . URL: https://doi.org/10.1007/s11219-014-9242-6. doi:
          <volume>10</volume>
          .1007/ s11219-014-9242-6.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Budnik</surname>
          </string-name>
          ,
          <article-title>Test minimization for human-computer interaction</article-title>
          ,
          <source>Applied Intelligence</source>
          <volume>26</volume>
          (
          <year>2007</year>
          )
          <fpage>161</fpage>
          -
          <lpage>174</lpage>
          . URL: https://doi.org/10.1007/s10489-006-0008-0. doi:
          <volume>10</volume>
          .1007/ s10489-006-0008-0.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hollmann</surname>
          </string-name>
          ,
          <article-title>Test generation and minimization with ”basic” statecharts</article-title>
          ,
          <source>in: Proceedings of the 2008 ACM Symposium on Applied Computing</source>
          , SAC '08,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2008</year>
          , pp.
          <fpage>718</fpage>
          -
          <lpage>723</lpage>
          . URL: https://doi.org/10. 1145/1363686.1363856. doi:
          <volume>10</volume>
          .1145/1363686.1363856.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Aho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dahbura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Uyar</surname>
          </string-name>
          ,
          <article-title>An optimization technique for protocol conformance test generation based on UIO sequences and rural chinese postman tours</article-title>
          ,
          <source>IEEE Transactions on Communications</source>
          <volume>39</volume>
          (
          <year>1991</year>
          )
          <fpage>1604</fpage>
          -
          <lpage>1615</lpage>
          . doi:
          <volume>10</volume>
          .1109/26.111442.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Belli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beyazıt</surname>
          </string-name>
          ,
          <article-title>Exploiting model morphology for event-based testing</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>41</volume>
          (
          <year>2015</year>
          )
          <fpage>113</fpage>
          -
          <lpage>134</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2014</year>
          .
          <volume>2360690</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>H.</given-names>
            <surname>Thimbleby</surname>
          </string-name>
          ,
          <article-title>The directed chinese postman problem</article-title>
          ,
          <source>Software: Practice and Experience</source>
          <volume>33</volume>
          (
          <year>2003</year>
          )
          <fpage>1081</fpage>
          -
          <lpage>1096</lpage>
          . URL: https://onlinelibrary. wiley.com/doi/abs/10.1002/spe.540. doi:https://doi.org/10.1002/spe.540. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/spe.540.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>H. W.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <article-title>The hungarian method for the assignment problem</article-title>
          ,
          <source>Naval Research Logistics Quarterly</source>
          <volume>2</volume>
          (
          <year>1955</year>
          )
          <fpage>83</fpage>
          -
          <lpage>97</lpage>
          . URL: https://onlinelibrary.wiley.com/ doi/abs/10.1002/nav.3800020109. doi:https://doi.org/10.1002/nav.3800020109. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/nav.3800020109.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Munkres</surname>
          </string-name>
          ,
          <article-title>Algorithms for the assignment and transportation problems</article-title>
          ,
          <source>Journal of the Society for Industrial and Applied Mathematics</source>
          <volume>5</volume>
          (
          <year>1957</year>
          )
          <fpage>32</fpage>
          -
          <lpage>38</lpage>
          . URL: http://www.jstor.org/ stable/2098689.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>