<!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>Improving Model-Based Regression Test Selection</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Mohammed Al-Refai Computer Science Department Colorado State University Fort Collins</institution>
          ,
          <addr-line>CO</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Existing model-based regression test selection approaches are based on analyzing changes performed at the model level. These approaches have three limitations. First, they cannot detect all types of changes from design models. Second, they do not identify the impact of changes to the inheritance hierarchy of the classes. Third, their applicability is limited due to the abstraction gap between the code-level regression test cases and the models that represent the software system at a high level of abstraction. This paper discusses two model-based RTS approaches to overcome these limitations, the evaluation plan, and the current status. Index Terms-regression testing, model-based regression test selection, UML activity diagram, UML class diagram, fuzzy logic I. PROBLEM II. RELATED WORK</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Models can be used to perform evolution and runtime
adaptation of a software system [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Regression testing
of the evolved and adapted models is needed to ensure
that previously tested functionality is still correct. Regression
testing is one of the most expensive activities performed during
the lifecycle of a software system [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Regression test
selection (RTS) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] improves regression testing efficiency by
selecting a subset of test cases from the original test set
for regression testing [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Model-based RTS has several
advantages over code-based RTS. The effort for testing can be
estimated earlier [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], tools for regression testing can
be programming language independent [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and managing
traceability can be more practical at the model level [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
Model-based RTS can scale up better than code-based RTS
for large software systems [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Existing model-based RTS approaches suffer from the
following three problems. First, they cannot detect all types
of changes from UML class, sequence, and state machine
diagrams that are used in these approaches [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Briand
et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] provided an example for such a change, which is
a modification to an operation implementation that does not
affect the operation’s signature and contract. Second, they
do not support the identification of changes to inherited and
overridden operations along the inheritance hierarchy [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As a result, existing model-based RTS approaches can
miss relevant test cases that need to be reexecuted. The third
problem is the lack of traceability links between code-level
test cases and the models representing the software system.
The reason is that models are generally created at a high level
of abstraction and lack low-level details that are needed to
obtain the coverage of test cases at the model level. This
lack of traceability is a known issue in model-based RTS
approaches, and can severely limit the applicability of these
approaches [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        The RTS problem has been studied for over three
decades [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Most of the existing approaches are
codebased [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and little work exists
in the literature on model-based RTS. We summarizes the
limitations of existing model-based RTS approaches. Farooq
et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] used UML class and state machine models for
RTS. This approach does not support the identification of
(1) the addition and deletion of the generalization relations,
and (2) the overridden and inherited operations along the
inheritance hierarchy. Briand et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] presented an RTS
approach based on UML use case models, class models, and
sequence models. This approach can identify the addition and
deletion of generalization relations between classes. Zech et
al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] presented a generic model-based RTS platform, which
is based on the model versioning tool, MoVE. Briand et al.
and Zech et al. do not support the identification of inherited
and overridden operations along the inheritance hierarchy.
Korel et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] used control and data dependencies in an
extended finite state machine to identify the impact of model
changes and perform RTS. This approach does not use UML
class model. All of the mentioned approaches use
designtime models, and require these models to contain enough
information to obtain the coverage of test cases at the model
level, which is not always a common practice [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>III. PROPOSED SOLUTION</title>
      <p>In this work we propose two model-based RTS approaches.
The first approach called MaRTS addresses the first two
problems discussed in section I. The second approach called
FLiRTS uses fuzzy logic to address the third problem
discussed in section I.</p>
      <sec id="sec-2-1">
        <title>A. MaRTS</title>
        <p>
          MaRTS [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] is a model-based RTS approach that uses (1) a
UML design class diagram to represent the static structure of
a software system, and (2) UML activity diagrams to represent
the fine-grained behaviors of a software system. The class
and activity diagrams are reverse engineered from the original
version of the software system. Each method of the software
system and each test case is represented as an activity diagram.
        </p>
        <p>
          The activity diagrams used in MaRTS are detailed and
executable. MaRTS exploits the Rational Software Architect
(RSA) simulation toolkit 9.01 to execute test cases at the model
level. Each action node has an associated code snippet that
contains code statements. When the execution flow reaches an
action node in a model, the code snippet associated with the
action node is executed. Each code-level method invocation
statement is represented at the model level as a call to the
corresponding activity diagram. When the model execution
flow reaches such a call, the associated activity diagram is
executed [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. MaRTS is based on the following steps.
        </p>
        <p>Extract information from the UML class diagrams. An
operations-table is extracted from the original class diagram.
This table stores for each class the operations that are declared
and inherited by the class, and the name of its superclass.
When developers adapt the class diagram, the declared and
inherited operations in each class might change. Therefore,
an operations-table is also extracted from the adapted class
diagram.</p>
        <p>Calculate traceability matrix. This step is performed
before adapting the models. The test cases are executed at
the model level, and coverage information is collected for each
test case: (1) what activity diagrams are executed, and (2) what
flows in each activity diagram are executed. This information
is used to obtain the traceability matrix that relates each test
case to the activity diagrams and the flows that were traversed
by the test case.</p>
        <p>Identify model changes. MaRTS uses RSA model
comparison2 to identify fine-grained model changes after developers
adapt the class and activity diagrams. This tool can identify
fine-grained changes in the activity diagrams at the level
of flows, nodes, and code statements associated with action
nodes.</p>
        <p>Classify test cases. Our algorithm classifies the test cases
as obsolete, retestable, or reusable. Initially, all the test cases
are classified as reusable. Next, the algorithm compares the
operations-tables to identify which operations were changed
along the inheritance hierarchy. The traceability matrix is
used to determine each test case that is affected by those
changes, and the affected test cases are classified as retestable
or obsolete. The remaining test cases are classified based on
the identified model differences.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. FLiRTS</title>
        <p>FLiRTS is a fuzzy logic-based RTS approach that performs
RTS using design models that are at a high level of abstraction.
FLiRTS uses a UML design class diagram to represent the
static structure of the system and UML activity diagrams to
represent the behaviors of the system’s methods at a high level
of abstraction. In contrast to MaRTS, action nodes in these
activity diagrams are not executable, and do not contain code
statements. Each test case is modeled as an activity diagram
that includes call behavior nodes, each of which directly links
1http://www-03.ibm.com/software/products/en/ratisoftarchsimutool
2https://www.ibm.com/developerworks/rational/library/05/712_comp2/
index.html
to an operation in the class diagram. This level of abstraction
prevents obtaining the coverage of test cases at the model level.
We propose two solutions for this problem.</p>
        <p>
          Activity diagram-based solution. This solution is based
on automatically generating detailed activity diagrams called
refinements from the abstract activity diagrams [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. A
refinement is an activity diagram that contains more flows and nodes
compared to the one that it is refining it. FLiRTS assumes
that a UML sequence diagram that represents all the use case
scenarios of the system is available, and is used to control
the refinement generation process to avoid the generation of
completely inconsistent and unrelated activity diagrams. Each
activity diagram in the system model has several possible
refinements. A refined system model is the system model where
each activity diagram is replaced by one of its refinements.
Several combinations of the refinements are possible, which
leads to the creation of several refined system models. A test
case may or may not traverse activity diagrams in a refined
system model depending on which refinements are used, and
their correctness.
        </p>
        <p>Fuzzy logic is used to address this uncertainty. We define
two input variables and set their crisp values in terms of (1) the
extent to which a test case traverses modified activity diagrams
in a refined system model, and (2) the extent to which a test
case traverses correct refinements in a refined system model.
These values are provided as inputs to the fuzzy logic-based
classifier. The final results of the classifier for each test case are
the probabilities for Retestable and Reusable associated with
each refined system model. We use the most correct refined
system model to obtain the final classification for the test case.</p>
        <p>Class diagram-based solution. First, FLiRTS reads the
design class diagram and extracts relations between the
classifiers. We consider the association, composition, generalization,
realization, and usage relations. The usage relation type that
we consider is defined as the one from a class/interface C to
a class/interface D, where C has an operation with a return
type and/or a parameter type of D.</p>
        <p>Second, FLiRTS uses the extracted relations to build a
relations graph. In this graph, the classifiers are nodes, and
the extracted relations are directed edges between the nodes.
Third, FLiRTS uses the activity diagrams representing the
test cases along with the paths between the classifiers in the
relations graph to estimate the coverage of each test case.
Based on the relations graph, there can be multiple paths
that start from a test case and end in adapted/evolved classes.
However, we are uncertain about which one of these paths is
traversed by the test case. We use fuzzy logic to address this
uncertainty for each test case by considering the number of
such paths, their length, and types of their edges.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. PLAN FOR EVALUATION AND VALIDATION</title>
      <p>We plan to empirically evaluate MaRTS and FLiRTS using
subjects as follows:
1) Compare the inclusiveness and precision of MaRTS and
FLiRTS with that of two code-based RTS approaches.
2) Evaluate the fault detection ability of the reduced test
sets.</p>
      <p>used in FLiRTS.
3) Identify generalizable thresholds for the fuzzy sets/rules</p>
    </sec>
    <sec id="sec-4">
      <title>V. EXPECTED CONTRIBUTIONS</title>
      <p>This work will contribute to the modeling field by showing
that the proposed RTS techniques are feasible and produce
results that are comparable to that of code-based RTS. We
expect that MaRTS will improve the safety and precision of
model-based RTS, and FLiRTS will improve the
applicability, safety, and precision of model-based RTS when applied
with models that are at a high level of abstraction and lack
traceability with the test cases.</p>
      <p>
        MaRTS and FliRTS can be used within the contexts of
model-based evolution and runtime adaptation. For example,
the approaches that use models to perform runtime
adaptation [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] can utilize MaRTS and FLiRTS to
classify regression test cases based on model-level changes.
      </p>
    </sec>
    <sec id="sec-5">
      <title>VI. CURRENT STATUS</title>
      <p>
        We implemented a prototype tool that automates the process
of MaRTS. We compared MaRTS with two code-based RTS
approaches, DejaVu [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and ChEOPSJ [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], in terms of their
inclusiveness, precision, the fault detection ability of the
retestable test set. We used four subject programs: JUNG,
Siena, XML-security, and chess, which is a classroom project.
      </p>
      <p>We extracted class and activity diagrams from the original
version of each subject program and its test cases. We adapted
the diagrams from one version to the following version. Then,
we applied MaRTS, DejaVu, and ChEOPSJ to classify the test
cases. We used PIT3 to apply method-level mutation operators
to the adapted versions at the code level. We ran PIT with
both the original and retestable test sets on each version, and
reported the killed mutants by each test set. The inclusiveness
of DejaVu and MaRTS was 100% for all the programs. The
inclusiveness of ChEOPSJ was 94% for JUNG, 96% for Chess,
and 92% for Siena. The precision was 100% for MaRTS and
DejaVu. The precision of ChEOPSJ was 100% for JUNG and
Chess, and 62% for Siena. ChEOPSJ did not produce results
for XML-security because of a bug in this tool. The retestable
test sets obtained by MaRTS achieved the same fault detection
ability that was achieved by the full test sets.</p>
      <p>
        We conducted a preliminary evaluation of FLiRTS. We
obtained comparable results on inclusiveness and precision
with DejaVu and MaRTS [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>VII. PROPOSED TIMELINE FOR THE REMAINING TASKS</p>
    </sec>
    <sec id="sec-6">
      <title>August - October 2017:</title>
    </sec>
    <sec id="sec-7">
      <title>Collect subjects for the experiments of FLiRTS.</title>
    </sec>
    <sec id="sec-8">
      <title>Complete the implementation of FLiRTS.</title>
    </sec>
    <sec id="sec-9">
      <title>Perform the experiments using FLiRTS and DejaVu.</title>
    </sec>
    <sec id="sec-10">
      <title>October - December 2017:</title>
    </sec>
    <sec id="sec-11">
      <title>Analyze and report the results of the experiments. Write the dissertation.</title>
      <p>∙
∙
∙
∙
∙</p>
      <p>This material is based upon work supported by the National</p>
    </sec>
    <sec id="sec-12">
      <title>Science Foundation under Grant No. CNS 1305381.</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>W. J.</given-names>
            <surname>Dzidek</surname>
          </string-name>
          , E. Arisholm, and
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Briand</surname>
          </string-name>
          , “
          <article-title>A realistic empirical evaluation of the costs and benefits of uml in software maintenance</article-title>
          ,
          <source>” IEEE Transactions on software engineering</source>
          , vol.
          <volume>34</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>407</fpage>
          -
          <lpage>432</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Blair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          , and R. B. France, “Models@run.time,” IEEE Computer, vol.
          <volume>42</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>27</lpage>
          , Oct.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Rothermel and M. J. Harrold</surname>
          </string-name>
          , “A Safe,
          <source>Efficient Regression Test Selection Technique,” ACM Transactions on Software Engineering and Methodology</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>173</fpage>
          -
          <lpage>210</lpage>
          , Apr.
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Harrold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Orso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pennings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sinha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Spoon</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Gujarathi</surname>
          </string-name>
          , “
          <article-title>Regression Test Selection for Java Software</article-title>
          ,”
          <source>in Proceedings of the 16th Conference on ObjectOriented Programming</source>
          , Systems, Languages, and
          <string-name>
            <surname>Applications</surname>
          </string-name>
          (OOPSLA'01), J. Vlissides, Ed. Tampa, FL, USa: ACM, Oct.
          <year>2001</year>
          , pp.
          <fpage>312</fpage>
          -
          <lpage>326</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Harrold</surname>
          </string-name>
          , “Testing Evolving Software,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>47</volume>
          , no.
          <issue>2-3</issue>
          , pp.
          <fpage>173</fpage>
          -
          <lpage>181</lpage>
          , Jul.
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Briand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Labiche</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>He</surname>
          </string-name>
          , “
          <source>Automating Regression Test Selection Based on UML Designs,” Journal on Information and Software Technology</source>
          , vol.
          <volume>51</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>30</lpage>
          , Jan.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Farooq</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Z. Z.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. I.</given-names>
            <surname>Malik</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Riebisch</surname>
          </string-name>
          , “
          <article-title>A model-based regression testing approach for evolving software systems with flexible tool support,” in 17th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems</article-title>
          ,
          <source>ECBS 2010</source>
          , Oxford, England, UK,
          <fpage>22</fpage>
          -26
          <source>March</source>
          <year>2010</year>
          ,
          <year>2010</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Zech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Felderer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kalb</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Breu</surname>
          </string-name>
          , “
          <article-title>A Generic Platform for Model-Based Regression Testing</article-title>
          ,”
          <source>in Proceedings of the 5th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA'12)</source>
          , ser. Lecture Notes in Computer Science 7609,
          <string-name>
            <given-names>T.</given-names>
            <surname>Margaria</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Steffen</surname>
          </string-name>
          , Eds. Heraclion, Crete: Springer, Oct.
          <year>2012</year>
          , pp.
          <fpage>112</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yoo</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          , “
          <article-title>Regression Testing Minimization, Selection and Prioritization: A Survey,”</article-title>
          <source>Journal of Software Testing, Verification and Reliability</source>
          , vol.
          <volume>22</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>120</lpage>
          , Mar.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Engström</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Runeson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Skoglund</surname>
          </string-name>
          , “
          <source>A Systematic Review on Regression Test Selection Techniques,” Information and Software Technology</source>
          , vol.
          <volume>52</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>14</fpage>
          -
          <lpage>30</lpage>
          , Jan.
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L. J.</given-names>
            <surname>White</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Abdullah</surname>
          </string-name>
          , “
          <article-title>A Firewall Approach for Regression Testing of Object-Oriented Software</article-title>
          ,”
          <source>in Proceedings of the 10th International Software Quality Week (QW'97)</source>
          , San Francisco, CA, USA, May
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Kung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Hsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Toyoshima</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Chen</surname>
          </string-name>
          , “
          <article-title>On Regression Testing of Object-Oriented Programs</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>32</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>40</lpage>
          , Jan.
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Skoglund</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Runeson</surname>
          </string-name>
          , “
          <article-title>Improving Class Firewall Regression Test Selection by Removing the Class Firewall</article-title>
          ,”
          <source>International Journal of Software Engineering and Knowledge Engineering</source>
          , vol.
          <volume>17</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>359</fpage>
          -
          <lpage>378</lpage>
          , Jun.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Q. D.</given-names>
            <surname>Soetens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Demeyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zaidman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Pérez</surname>
          </string-name>
          , “
          <article-title>ChangeBased Test Selection: An Empirical Evaluation,” Empirical Software Engineering</article-title>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>43</lpage>
          , Nov.
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Korel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. H.</given-names>
            <surname>Tahat</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Vaysburg</surname>
          </string-name>
          , “
          <article-title>Model Based Regression Test Reduction Using Dependence Analysis,”</article-title>
          <source>in Proceedings of the International Conference on Software Maintenance (SM'02)</source>
          . Montreal, Quebec, Canada: IEEE, Oct.
          <year>2002</year>
          , pp.
          <fpage>214</fpage>
          -
          <lpage>233</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Al-Refai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          , and W. Cazzola, “
          <article-title>Model-based Regression Test Selection for Validating Runtime Adaptation of Software Systems,”</article-title>
          <source>in Proceedings of the 9th IEEE International Conference on Software Testing, Verification and Validation (ICST'16)</source>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Briand</surname>
          </string-name>
          and S. Khurshid, Eds. Chicago, IL, USA: IEEE,
          <fpage>10th</fpage>
          -15th
          <source>of Apr</source>
          .
          <year>2016</year>
          , pp.
          <fpage>288</fpage>
          -
          <lpage>298</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Al-Refai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Cazzola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          , and R. France, “Using Models to Validate Unanticipated,
          <string-name>
            <surname>Fine-Grained Adaptations</surname>
          </string-name>
          at Runtime,”
          <source>in Proceedings of the 17th IEEE International Symposium on High Assurance Systems Engineering (HASE'16)</source>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Waeselynck</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Babiceanu</surname>
          </string-name>
          , Eds. Orlando, FL, USA: IEEE,
          <fpage>7th</fpage>
          -9th
          <source>of Jan</source>
          .
          <year>2016</year>
          , pp.
          <fpage>23</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Al-refai</surname>
          </string-name>
          , W. Cazzola, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          , “
          <article-title>A Fuzzy Logic Based Approach for Model-based Regression Test Selection,”</article-title>
          <source>in Proceedings of the ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MoDELS'17)</source>
          , Austin, TX, USA,
          <source>17th of Sep.- 22th of Sep</source>
          .
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          , S.-W. Cheng, A.
          <string-name>
            <surname>-C. Huang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Schmerl</surname>
            , and
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Steenkiste</surname>
          </string-name>
          , “Rainbow:
          <article-title>Architecture-Based Self Adaptation with Reusable Infrastructure</article-title>
          ,” IEEE Computer, vol.
          <volume>37</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>46</fpage>
          -
          <lpage>54</lpage>
          , Oct.
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>B.</given-names>
            <surname>Morin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Barais</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Jézéquel</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Fleurey</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Solberg</surname>
          </string-name>
          , “Models@Run.time to Support Dynamic Adaptation,” IEEE Computer, vol.
          <volume>42</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
          , Oct.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T.</given-names>
            <surname>Vogel</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          , “Adaptation and Abstract Runtime Models,”
          <source>in Proceedings of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'10)</source>
          . Cape Town, South Africa: ACM, May
          <year>2010</year>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>48</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>W.</given-names>
            <surname>Cazzola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. A.</given-names>
            <surname>Rossini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bennett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. Pradeep</given-names>
            <surname>Mandalaparty</surname>
          </string-name>
          , and R. B. France, “Fine-Grained
          <string-name>
            <surname>Semi-Automated Runtime</surname>
            <given-names>Evolution</given-names>
          </string-name>
          ,” in MoDELS@
          <article-title>Run-Time, ser</article-title>
          . Lecture Notes in Computer Science 8378,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          , B. Cheng, R. B. France, and U. Aßmann, Eds. Springer, Aug.
          <year>2014</year>
          , pp.
          <fpage>237</fpage>
          -
          <lpage>258</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>