<!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>TEST CASE REDUCTION METHODS BY USING CBR Siripong Roongruangsuwan and Jirapun Daengdej</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Autonomous System Research Laboratory Faculty of Science and Technology Assumption University</institution>
          ,
          <country country="TH">Thailand</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>It has been proven that software testing usually consumes over 50% of the costs associated with the development of commercial software systems. Particularly, regression testing activities has been shown to be a critically important phase of software testing. Many reduction techniques have been proposed to reduce costs. Unfortunately, the cost is usually over budget and those methods are failed to reasonably control costs. The primarily outstanding issue is non-effective methods to remove redundancy tests while a bigger size of tests and a significant amount of time are still remaining. To resolve the issue, this paper proposes an artificial intelligent concept of case-based reasoning (CBR). CBR has an uncontrollable costs issue as same as testing. There are many effective algorithms researched over a long period of time. This study introduces three methods combined between CBR's deletion algorithm and testing activities. Those methods aim to minimize size of tests and time, while preserving fault detection.</p>
      </abstract>
      <kwd-group>
        <kwd>- test case reduction</kwd>
        <kwd>test reduction</kwd>
        <kwd>test reduction CBR</kwd>
        <kwd>CBR for testing and test reduction techniques</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Software Testing is an empirical investigation
conducted to provide stakeholders with information
about the quality of the product or service under test
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], with respect to the context in which it is intended
to operate. Software Testing also provides an
objective, independent view of the software to allow
the business to appreciate and understand the risks of
implementation of the software. Test techniques
include the process of executing a program or
application with the intent of finding software bugs. It
can also be stated as the process of validating and
verifying that software meets the business and
technical requirements that guided its design and
development, so that it works as expected. Software
Testing can be implemented at any time in the
development process; however, the most test effort is
employed after the requirements have been defined
and coding process has been completed.
      </p>
      <p>
        Many researchers [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <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="ref15">15</xref>
        ],
[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ] have proven
that these test case reduction methods can reserve the
fault detection capability. There are many outstanding
research issues in this area. In this paper, the research
issues are: redundancy test cases are still remained, an
uncontrollable growth of test cases and existing
reduction methods consume a great deal of time and
cost during a reduction process. The literature review
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] shows that there are many techniques to resolve
those three issues. One of effective approaches is to
apply the concept of artificial intelligent. There are
many artificial intelligent concepts, such as neutral
network, fuzzy logic, learning algorithms and
casebased reasoning (CBR). CBR is one of the most
popular and actively researched areas in the past. The
researches [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] show that CBR has
identical problems as same as software testing topic. In
software testing field, particularly during regression
testing activities, the key research issues are: (a) too
many redundancy test cases after reduction process (b)
a decrease of test cases’ ability to reveal faults and (c)
uncontrollable grow of test cases. Meanwhile, the key
research issues in CBR field are: (a) there are too
many redundancy cases in the CBR system (b) a size
of CBR system is continuously growing all the time
and (c) existing CBR deletion algorithms take longer
time to remove all redundancy cases in the CBR
system. Those issues in CBR field can be elaborated as
follows: Fundamentally, there are four steps in the
CBR system, which are: retrieve, reuse, revise and
retain. These steps can lead to a serious problem of
uncontrollably growing cases in the system. However,
the study shows that there are many proposed
techniques in order to control a number of cases in the
CBR system, such as add algorithms, deletion
algorithms and maintenance approaches. CBR have
been investigated by CBR researchers in order to
ensure that only small amounts of efficient cases are
stored in the case base. The previous work [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] shows
that deletion algorithms are the most popular and
effective approaches to maintain a size of the CBR
system. There are many researchers have proposed
several deletion algorithms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], such as
random method, utility approach and footprint
algorithm. These algorithms aim to: (a) remove all
redundancy or unnecessary cases (b) minimize size of
system and reduction time and (c) preserve the ability
of solving problems. Nevertheless, each technique has
strength and weakness. Some methods are suitable for
removing cases. Some methods are perfectly suitable
for reducing time. Some may be used for reserving the
problem solving capability. Eventually, the previous
work [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] discovered several effective methods (e.g.
confidential case filtering method, coverage value
algorithm and confidential coverage approach) to
remove those cases, minimize size of CBR and reduce
amount of time, while preserving the ability of CBR
system’s problem solving skill. Therefore, this paper
applies those effective deletion techniques to resolve
the problems of software testing. In the light of
software testing, the proposed techniques focus on
how to maintain the test case or test data while the
ability to reveal faults is still preserved. It is assumed
that test cases or test data in this paper are treated as
cases in the CBR system. Also, there is an assumption
that a given set of test cases are generated by a
pathoriented test case generation technique. The
pathoriented technique is widely used for a white-box
testing, which this paper does not address how to
generate test cases with path-oriented methods.
      </p>
      <p>Section 2 discusses an overview of test case
reduction techniques and processes. Also, section 2
discusses a concept of CBR. Section 3 provides a
definition of terminologies used in this paper. Section
4 lists the outstanding research issues motivated this
study. Section 5 proposes three new test case
reduction methods. Section 6 describes an evaluation
method and discusses a result. The last section
represents all source references used in this paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2. LITERATURE REVIEW</title>
      <p>This section describes an overview of test case
reduction techniques and the concept of CBR. The
following describes those two areas in details.</p>
    </sec>
    <sec id="sec-3">
      <title>2 .1 . Test Case Reduction Techniques</title>
      <p>
        This section discusses and organizes test case
reduction (or TCR) techniques researched in
19952006. This study shows that there are many
researchers who proposed a method to reduce
unnecessary test cases (also known as redundancy test
cases), like Offutt [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Rothermel [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], McMaster [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
and Sampth [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. These techniques aim to remove and
minimize a size of test cases while maintaining the
ability to detect faults. The literature review [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
[
        <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="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ]
shows that there are two types of reduction
techniques, which are: (a) pre-process and (b)
postprocess. First, the pre-process is a process that
immediately reduces a size of test cases after
generating. Typically, it is occurred before regression
testing phase. Second, the post-process is a process
that maintains and removes unnecessary test cases,
after running the first regression testing activities.
Although these techniques can reduce the size of test
cases, but the ability to reveal faults seems slightly to
be dropped. However, Jefferson Offutt [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and
Rothermel [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <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="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ],
[
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] has proven that these test case reduction
techniques have many benefits, particularly during the
regression testing phase, and most of reduction
techniques can maintain an acceptable rate of fault
detection. The advantages of these techniques are: (a)
to spend less time in executing test cases, particularly
during the regression testing phase (b) to significantly
reduce time and cost of manually comparing test
results and (c) to effectively manage the test data
associated with test cases. This study proposes a new
“2C” classification of test case reduction techniques,
classified based on their characteristics, as follows:
(a) coverage-based techniques and (b) concept
analysis-based techniques.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.2. Case-Based Reasoning (CBR)</title>
      <p>
        Over the time, CBR is growing. When the
uncontrollable case-based growth is occurred, the
performance of CBR is decreasing. Therefore, the
maintenance process is required in order to preserve
or improve the performance of the system. The
process of maintaining CBR is called CBM. David C.
Wilson [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] presented the overall concepts of CBR and
case based maintenance. This paper focused on the
case based maintenance (CBM) approach in term of
the framework. In other words, this paper described
the type of data collection and how the case based
maintenance works. There were so many policies for
CBM, for example, addition, deletion, and retain.
“CBM was defined as the process of refining a CBR
system’s case-base to improve the system’s
performance. It implements policies for revising the
organization or contents (representation, domain
content, accounting information, or implementation)
of the case-base in order to facilitate future reasoning
for a particular set of performance objectives.”
      </p>
      <p>
        These studies [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]
reveal that several deletion algorithms have been
proposed. For example, a random approach (RD),
utility deletion algorithm (UD), footprint deletion
algorithm (FD), footprint utility deletion algorithm
(FUD) and iterative case filtering algorithm (ICF).
      </p>
      <p>
        RD is the simplest approach, which removes the
case randomly. UD deletes the case that has minimum
utility value. Footprint algorithm uses the competence
model and removes the auxiliary case from the
system. FUD is a hybrid approach between Utility
algorithm and Footprint algorithm, and is concerned
with the competence model and the utility value.
Finally, ICF focuses on the case, which the
reachability set is greater than the coverage set [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
[
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>3. DEFINITION</title>
      <p>
        This section describes a definition of terminologies.
Definition 1: Barry [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] defined the CBR, case base,
auxiliary case and pivotal case as follows:
“Case-Based Reasoning is one of the Artificial
Intelligence-based algorithms, which solve the
problems by searching through the case storage for
the most similar cases. CBR has to store their solved
cases back to their memory or storage in order to
learn from their experience.”
“Case Base is a collection of cases in CBR, which
can be defined as the following: Given a case - base C
= {c1... cn}, for c ε C whereas C = CBR, c = case”
Definition 2: “Auxiliary Case is a case that does not
have a direct effect on the competence of a system
when it is deleted. The definition of auxiliary case can
be described as follows:
Auxiliary cases do not affect competence at all. Their
deletion only reduces the efficiency of the system. A
case is an auxiliary case if the coverage it provides is
subsumed by the coverage of one of its reachable
cases.”
Definition 3: “Pivotal Case is the case that does
have a direct effect on the competence of a system if it
is deleted.
      </p>
      <p>
        A case is a pivotal case if its deletion directly reduces
the competence of a system (irrespective of the other
cases in the case-base) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Using the above
estimates of coverage and reachability a case is
pivotal if it is reachable by no other case but itself.”
      </p>
    </sec>
    <sec id="sec-6">
      <title>4. RESEARCH CHALLENGES</title>
      <p>
        This section discusses the details of research issues
motivated this study. The literature review reveals
that [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] those research
issues are: (a) too many redundancy test cases after
reduction process (b) a decrease of test cases’ ability
to reveal faults and (c) uncontrollable grow of test
cases. These research issues can be elaborated in
details as follows: First, the literature review shows
that redundancy test cases are test cases tested by
multiple test cases. Many test cases that are designed
to test the same things (e.g. same functions, same line
of code or same requirements) are duplicated. Those
duplicated tests are typically occurred during testing
activities, particularly during regression testing
activities [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. Those
duplicated tests can be eventually removed in order to
minimize time and cost to execute tests. The study
shows that there are many proposed methods to delete
those duplicated test cases such as McMaster's work
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], Jeff's method [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and Khan's approach [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
Also, the study shows that one of the most interesting
research issues is to minimize those duplicated tests
and reduce cost of executing tests. Although there are
many proposed methods to resolve that issue, that
issue is still remaining. Thus, it is a challenge for
researchers to continuously improve the ability to
remove duplicated tests. Second, test cases are
designed to reveal faults during software testing
phase. The empirical studies [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ],
[
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ] describe that reducing test cases
may impact to the ability of detect faults. Many
reduction methods decrease a capability of testing and
reveal those faults. Therefore, one of outstanding
research challenges for researchers is to remove tests
while preserving the ability to defect faults. Last, this
paper shows that uncontrollable grow of test cases can
be typically occurred during software testing process
and evolution. Even if there are many reduction
methods proposed to control and limit growth of tests,
unfortunately it appears that a number of test cases is
still large. Obviously, the greater size of test cases
takes longer time and cost to execute.
      </p>
    </sec>
    <sec id="sec-7">
      <title>5. PROPOSED METHODS</title>
      <p>
        For evolving software, test cases are growing
dramatically. The more test cases software test
engineers have, the more time and cost software test
engineers consume. The literature review shows that
regression testing activities consume a significant
amount of time and cost. Although, a comprehensive
set of regression selection techniques [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] has been proposed to minimize time and cost,
there is an available room to minimize size of tests
and clean up all unnecessary test cases. Thus,
removing all redundancy test cases is desirable. There
are many approaches to reduce redundancy test cases
and applying an artificial intelligent concept in the
test case reduction process is an innovated approach.
The literature review [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] shows that there are
many areas of artificial intelligent concept, such as
artificial neutral network, fuzzy logic, learning
algorithms and CBR concept. Also, it reveals that
CBR has a same research issue as software testing
has. The issue is that cases in the CBR system will be
consistency growing bigger and larger all the time.
There are four steps in CBR that can uncontrollably
grow a size of the system: retrieve, reuse, revise and
retain. Therefore, many CBR papers aim to reduce all
redundancy cases, known as “deletion algorithms”.
The smaller size of CBR system is better and
desirable. Due to the fact that CBR has the same
problem as software testing and this paper focuses on
reduction methods, therefore, this paper proposes to
apply CBR deletion algorithms to the test case
reduction techniques. This paper introduces three
reduction methods that apply CBR deletion
algorithms: TCCF, TCIF and PCF methods. Those
techniques aim to reduce a number of test cases
generated by path-oriented test case generation
technique. This technique is used for white-box
testing only. However, the generation methods are out
of the scope of this paper.
      </p>
    </sec>
    <sec id="sec-8">
      <title>5.1. Example of Test Cases</title>
      <p>Given a set of test cases generated, this study
discusses the use of a number of case maintenance
techniques, which have been investigated by CBR
researchers in ensuring that only small amount of
cases are stored in the case base, thereby reducing
number of test cases should be used in software
testing. Similar to what happen to software testing, a
number of CBR researchers have focused on finding
approaches especially for reducing cases in the CBR
systems’ storages. This paper proposes to use the path
coverage criteria in order to reduce redundancy test
cases. This is because path coverage has a huge
benefit of required very thorough testing activities.
The following describes in details of the above path
coverage using in the software testing field. Let S =
{s1, s2, s3, s4, s5} to be a set of stage in the control
flow graph. The control flow graph can be derived
from the source-code or program. It is a white-box
testing. Thus, each state represents a block of code.
The techniques that aim to generate and derive test
cases from the control flow graph are well-known as
path-oriented test case generation techniques. These
techniques are widely used to generate test cases.
There are many research papers on this area.
However, the test case generation techniques are out
of scope in this paper.
From the above figure, this paper assumes that
each state can reveal a fault. Thus, an ability to reveal
faults of five states is equal to 5. Also, it is assumed
that every single transaction must be tested. This
example is used in the rest of paper.</p>
      <p>Let TCn = {s1, s2, …,sn} where TC is a test case
and sn is a stage or node in the path-oriented graph
that is used to be tested. From the above figure, a set
of test cases can be derived as follows:
TC1 = {s1, s2} TC7 = {s1, s2, s3, s5}
TC2 = {s1, s3} TC8 = {s1, s4, s3, s5}
TC3 = {s1, s4} TC9 = {s2, s3}
TC4 = {s1, s2, s3} TC10 = {s2, s3, s5}
TC5 = {s1, s3, s5} TC11 = {s3, s5}
TC6 = {s1, s4, s3} TC12 = {s4, s3}</p>
      <p>TC13 = {s4, s3, s5}</p>
      <p>The following describes the proposed methods
that apply the concept of CBR in details:</p>
    </sec>
    <sec id="sec-9">
      <title>5.2. Test Case Complexity for Filtering (TCCF)</title>
      <p>
        A complexity of test case is the significant criteria in
this proposed method [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. In this paper, the
complexity of test case measures a number of states
included in each test case.
      </p>
      <p>Let Cplx(TC) = {High, Medium, Low} where
Cplx is a complexity of test case, TC is a test case and
the complexity value can be measured as:
• High when a number of states are greater than an
average number of states in the test suite.
• Medium when a number of states are equal to an
average number of states in test suites.
• Low when a number of states are less than an
average number of states in the test suites.</p>
      <p>The procedures of this method can be described
briefly in the following steps.</p>
      <p>The first step is to determine a coverage set. From
figure 1, each coverage set can be identified as
follows:
Coverage (1) = {TC1} Coverage (7) = {TC1, TC4, TC7,
Coverage (2) = {TC2} TC9, TC10, TC11}
Coverage (3) = {TC3} Coverage (8) = {TC3, TC6, TC8,
Coverage (4) = {TC1, TC11, TC12, TC13}
TC4, TC9} Coverage (9) = {TC9}
Coverage (5) = {TC2, Coverage (10) = {TC9, TC10,
TC5, TC11} TC11}
Coverage (6) = {TC3, Coverage (11) = {TC11}
TC6, TC12} Coverage (12) = {TC12}
Coverage (13) = {TC11, TC12,</p>
      <p>TC13}</p>
      <p>The second step is also to determine a reachability
set. The reachability set can be figured out from the
above coverage set, based on the given definition in
this paper. Therefore, the reachability set can be
identified as follows:
Reachability (TC1) = {1, 4, Reachability (TC7) = {7}
7} Reachability (TC8) = {8}
Reachability (TC2) = {2, 5} Reachability (TC9) = {4, 7,
Reachability (TC3) = {3, 6, 9, 10}
8} Reachability (TC10) = {7,
Reachability (TC4) = {4, 7} 10}
Reachability (TC5) = {5} Reachability (TC11) = {5, 7,
Reachability (TC6) = {6, 8} 8, 10, 11, 13}
Reachability (TC12) = {6, 8,
12, 13}
Reachability (TC13) = {8,
13}</p>
      <p>Next, the step is to define an auxiliary set. The
given definition of auxiliary set is to find a test case
that does not have a direct effect on the ability to
reveal faults when it is removed. From figure 1,
therefore, the auxiliary set can be identified as
follows:</p>
      <p>Auxiliary set = {TC1, TC2, TC3, TC4, TC5, TC6, TC9,</p>
      <p>TC10, TC11, TC12, TC13}</p>
      <p>Afterward, the method computes a complexity
value for all test cases in the above auxiliary set. From
figure 1 and test suites that contain 13 test cases, the
average number of states is equal to 3. Therefore, the
complexity value for each test case can be computed
as follows:</p>
      <p>Cplx(TC1) = Low, Cplx(TC2) = Low, Cplx(TC3) =
Low, Cplx(TC4) = Medium, Cplx(TC5) = Medium,
Cplx(TC6) = Medium, Cplx(TC9) = Low, Cplx(TC10) =
Medium, Cplx(TC11) = Low, Cplx(TC12) = Low and</p>
      <p>Cplx(TC13) = Medium</p>
      <p>Finally, the last step removes test cases with
minimum of complexity value from the auxiliary set.
Thus, TC1, TC2, TC3, TC9, TC11 and TC12 are
removed.</p>
    </sec>
    <sec id="sec-10">
      <title>5.3. Test Case Impact for Filtering (TCIF)</title>
      <p>
        The study [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] shows that software is error-ridden in
part because of its growing complexity. Software is
growing more complex every day. The size of
software products is no longer measured in thousands
of lines of code, but it measures in millions. Software
developers already spend approximately 80 percent of
development costs [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] on identifying and correcting
defects, and yet few products of any type other than
software are shipped with such high levels of errors.
Other factors contributing to quality problems include
marketing strategies, limited liability by software
vendors, and decreasing returns on testing and
debugging, according to the study. At the core of
these issues is difficulty in defining and measuring
software quality. Due to the fact that defining and
measuring a quality of software is important and
difficult, the impact of inadequate testing must not be
ignorance. The impact of inadequate testing could be
lead to the problem of poor quality, expensive costs
and huge time-to-market. In conclusion, software
testing engineers require identifying the impact of
each test case in order to acknowledge and understand
clearly the impact of ignoring some test cases. In this
paper, an impact value is an impact of test cases in
term of the ability to detect faults if those test cases
are removed and not be tested.
      </p>
      <p>Let Imp(TC) = {High, Medium, Low} where Imp
is an impact if a test case is removed, TC is a test case
and the impact value can be measured as:
• High when the test case has revealed at least one
fault for many times.
• Medium when the test case has revealed faults for
only one time.
• Low when the test case has never revealed faults.</p>
      <p>The procedure of this method is similar to the
previous method. The only different is that this
method aims to use an impact value instead of
complexity value. Therefore, the fire three steps are
to: identify coverage set, define reachability set and
determine an auxiliary set. Afterward, the next step is
to compute and assign an impact value. The method
computes the impact value for all test cases in the
above auxiliary set. From figure 1, the impact value
for each test case can be computed as follows:
Imp(TC1) = Low, Imp(TC2) = High, Imp(TC3) =</p>
      <p>Medium, Imp(TC4) = Low, Imp(TC5) = High,
Imp(TC6) = Medium, Imp(TC9) = Low, Imp(TC10) =
Low, Imp(TC11) = Low, Imp(TC12) = Low and</p>
      <p>Imp(TC13) = Low</p>
      <p>Finally, the last step removes test cases with
minimum of impact value from the auxiliary set.
Thus, TC1, TC4, TC7, TC9, TC10, TC11, TC12 and TC13
are removed.</p>
    </sec>
    <sec id="sec-11">
      <title>5.4. Path Coverage for Filtering (PCF) Method</title>
      <p>
        Code coverage analysis is a structural testing
technique (also known as white box testing).
Structural testing compares test program behaviour
against the apparent intention of the source code. This
contrasts with functional testing (also referred to
black-box testing), which compares test program
behaviour against a requirements specification.
Structural testing examines how the program works,
taking into account possible pitfalls in the structure
and logic. Functional testing examines what the
program accomplishes, without regard to how it
works internally. Structural testing is also called path
testing since you choose test cases that cause paths to
be taken through the structure of the program. The
advantage of path cover is that it takes responsible for
all statements as well as branches across a method. It
requires very thorough testing. This is an effective
substitute of other coverage criteria. The path
coverage is used as coverage value in this technique.
The Coverage value is combined into the addition
policy for adding significant case [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Within the
adding algorithm along with the coverage weight
value stated in the review, the concept of deletion
algorithm and the coverage have been proposed. The
coverage value can specify how many nodes that the
test case can cover. In other words, the coverage value
is an indicator to measure that each test case covers
nodes. It means that the higher coverage value is, the
more nodes can be contained and covered in the test
case. Let Cov(n) = value where Cov is a coverage
value, value is a number of test cases in each coverage
group and n is a coverage relationship.
      </p>
      <p>The procedure of this method can be elaborated
briefly as the following steps. From figure 1, the first
step is to identify a coverage set, which has been
already identified in the previous method. The next
step is to calculate a coverage value. This paper
proposes to calculate a coverage value based on a
number of test cases in each coverage group.
Therefore, the coverage value can be computed as
follows:
Cov(1) = 1, Cov(2) = 1, Cov(3) = 3, Cov(4) = 3,
Cov(5) = 3, Cov(6) = 4, Cov(7) = 6, Cov(8) = 6,
Cov(9) = 1, Cov(10) = 3, Cov(11) = 1, Cov(12) = 1
and Cov(13) = 3.</p>
      <p>The last step removes all test cases with minimum
coverage value, in the potential removal set.
Therefore, TC1, TC2, TC9, TC11 and TC12 are removed.</p>
    </sec>
    <sec id="sec-12">
      <title>6. EVALUATION</title>
      <p>This section describes an experiments design,
measurement metrics and results. This paragraph
designs an experiment used to evaluate and determine
the best reduction methods. This paper proposes the
following three steps. First, the experiment proposes
to randomly generate 2,000 test data used in the
telecommunication industry. In this experiment, the
test data is represented as test case. Second, the
experiment executes reduction methods with the
generated test cases and compares among the
following reduction methods: RD, UD, FD, FUD, ICF
and three proposed methods (e.g. TCCF, TCIF and
PCF). This step randomly simulates defects for each
test case in order to determine an ability to reveal
faults. Third, the experiment aims to run the above
methods for 10 times in order to calculate the average
value for each metric. The metrics used in this
experiment are described in details in next section.
Afterward, the experiment compares the values and
evaluates a result by generating a comparison graph in
order to determine the most recommended reduction
approach.</p>
      <p>The following table lists the description of each
test data that need to be generated randomly.</p>
      <p>Table 1 An Example Form of Test Cases
Attribu Description Data Type
te
Test Id Numeric
Table 2 Approach to Generate Random Test Case
Attribute Approach
Test Id Generate randomly from the following
combination: t + Sequence Number. For
example, t1, t2, t3, …, tn.</p>
      <p>Name Random from the following values: iPhone,
BlackBerry, Nokia, LG, Sony and Samsung.</p>
      <p>Set as a zero (0) at the beginning
Set as a one (1) at the beginning</p>
      <p>The following table describes an approach to
generate random data using the above attributes
respectively.</p>
      <p>There are two elements needed to be
randomly generated: (a) a number of states
that needed to be tested by each test case and
be generated between 1 and 100. (b) states
themselves that described as follows:
Generate randomly from the following
combination: s + Sequence Number. For
example, s1, s2, s3, …, sn.</p>
      <p>Random from the following values: 1-100
Random from the following values: 1-100
Compute a number of states from “a set of
states” field</p>
      <p>
        The paragraph lists the measurement metrics used
in the experiment. The first measurement is a number
of test cases. The large number of test cases consumes
time, effort and cost more than the smaller size of test
cases. Many reduction or minimization approaches
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <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="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ],
[
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ] have been proposed to minimize size of test
cases. This has proven that size is one of important
metrics in software testing area. The second is an
ability to reveal faults. It aims to measure the
percentage of faults detection. One of the goals of test
case with a set of data is to find defects. Thus, this
metric is important criteria to measure and determine
which reduction methods can preserve the high ability
to reveal faults. The last measurement is a total of
reduction time: It is the total number of times running
the reduction methods in the experiment. This metric
is related to time used during execution time and
maintenance time of test case reduction methods.
Therefore, less time is desirable. This paragraph
discusses an evaluation result of the above
experiment. This section presents the reduction
methods results in term of: (a) a number of test cases
(b) ability to reveal faults and (c) total reduction time.
The comparative methods are: RD, UD, FD, FUD,
ICF, TCCF, TCIF and PCF. Additionally, this section
shows a graph format. There are two dimensions in
the following graph: (a) horizontal and (b) vertical
axis. The horizontal represents three measurements
whereas the vertical axis represents the percentage
value.
      </p>
      <p>The above graph presents that both of FD and PCF
minimize a number of test cases by far better than
other reductions methods, approximately over 15%.
Meanwhile, both of them are the worst methods for
preserving an ability to reveal faults. FUD, TCCF and
TCIF are best top three methods to reserve a
capability to detect faults. They are greater than other
methods over 22%. Unfortunately, they are also the
worst three methods that require a lot of time during a
reduction process. In the mean time, both of RD and
PCF take the least total reduction time among other
methods. The evaluation result suggests that FD and
PCF is perfectly suitable for a scenario that does not
directly concern about an ability to reveal faults and
total reduction time. Both of FD and PCF are two of
the most excellent methods to minimize a number of
test cases. Meanwhile, FUD, TCCF and TCIF are the
most recommended methods to delete tests while
preserving the ability to detect faults. In addition, both
of RD and PCF are excellent in case that total time is
matter.</p>
    </sec>
    <sec id="sec-13">
      <title>7. CONCLUSION</title>
      <p>This paper reveals that there are many research
challenges and gaps in the test case reduction area.
Those challenges and gaps can give the research
direction in this field. However, the research issues
that motivated this study are: (a) too many
redundancy test cases after reduction process (b) a
decrease of test cases’ ability to reveal faults and (c)
uncontrollable grow of test cases. This paper
combines the concept of software testing and CBR.
Those two concepts could be used together on
practical software development scenarios. The
proposed maintenance algorithms are significant
approaches for removing unnecessary test cases and
are used for controlling the growth of test cases.
Those approaches are aimed at maintaining the large
test cases by minimizing the time consumed by
execution &amp; maintenance and reducing the size of the
test cases along with preserving the ability to reveal
faults as much as possible. Also, the evaluation
reveals that they have been achieved by removing a
number of test cases, minimizing time for executing
&amp; maintenance and preserving the fault-detection
ability with sample of 2,000 test cases. However, the
primarily limitation of those approaches is about the
path coverage. The path coverage may be not an
effective coverage factor for a huge system that
contains million lines of code. This is because it
requires an exhaustive time and cost of identify
coverage from a huge amount of codes. Thus, one of
the future works is to apply other coverage factors for
those approaches. Finally, this paper recommends
researchers to improve the ability to reduce duplicated
or unnecessary test cases from multiple test suites,
enhance the capability to reduce test cases in the large
commercial system and develop a systematic
approach to identify an impact and complexity of
tests.</p>
    </sec>
    <sec id="sec-14">
      <title>8. REFERENCES</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Jefferson</surname>
          </string-name>
          <string-name>
            <given-names>Offutt</given-names>
            , Jie Pan and
            <surname>Jeffery M. Voas</surname>
          </string-name>
          , “
          <article-title>Procedures for Reducing the Size of Coverage-based Test Sets”</article-title>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Barry</given-names>
            <surname>Smyth</surname>
          </string-name>
          &amp; Keane. “Remembering To Forget:
          <source>A Competence Preserving Deletion Policy for Case-Based Reasoning Systems” In Proceedings of the 14th International Joint Conference on Artificial Intelligence</source>
          ,
          <fpage>377</fpage>
          -
          <lpage>382</lpage>
          . Morgan-Kaufman,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Barry</given-names>
            <surname>Smyth Ph</surname>
          </string-name>
          .
          <source>D. Thesis. “Case Based Design” Department of Computer Science</source>
          , Trinity College, Dublin Ireland,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Barry</surname>
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Boehm</surname>
          </string-name>
          , “
          <article-title>A Spiral Model of Software Development and Enhancement”</article-title>
          , TRW Defense Systems Group,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Boris</given-names>
            <surname>Beizer</surname>
          </string-name>
          , “Software Testing Techniques, Van Nostrand Reinhold”, Inc, New York NY,
          <article-title>2nd edition</article-title>
          .
          <source>ISBN 0-442-20672-0</source>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Bo</given-names>
            <surname>Qu</surname>
          </string-name>
          , Changhai Nie, Baowen Xu and Xiaofang Zhang, “
          <article-title>Test Case Prioritization for Black Box Testing”</article-title>
          ,
          <source>31st Annual International Computer Software and Applications Conference (COMPSAC</source>
          <year>2007</year>
          ),
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Cem</given-names>
            <surname>Kaner</surname>
          </string-name>
          , “Exploratory Testing”, Florida Institute of Technology,
          <source>Quality Assurance Institute Worldwide Annual Software Testing Conference</source>
          , Orlando, FL,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>David</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Wilson. Ph.D. Thesis</surname>
          </string-name>
          “
          <article-title>A Case-Based Maintenance: The husbandry of experiences</article-title>
          .” Department of Computer Science, Indiana University,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Lehmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Wegener</surname>
          </string-name>
          , “
          <article-title>Test case design by means of the CTE XL”</article-title>
          ,
          <source>In Proc. of the 8th European International Conf. on Software Testing, Analysis &amp; Review (EuroSTAR</source>
          <year>2000</year>
          ),
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Gregg</surname>
            <given-names>Rothermel</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roland H. Untch</surname>
          </string-name>
          , Chengyun Chu and Mary Jean Harrold, “
          <article-title>Prioritizing Test Cases for Regression Testing”</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Gregg</surname>
            <given-names>Rothermel</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Untch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Chu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Harrold</surname>
          </string-name>
          , “
          <article-title>Test case prioritization: An empirical study”</article-title>
          ,
          <source>In Proceedings of the IEEE International Conference on Software Maintenance</source>
          , pages
          <fpage>179</fpage>
          -
          <lpage>188</lpage>
          , Oxford, England, UK,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Gregg</surname>
            <given-names>Rothermel</given-names>
          </string-name>
          , Mary Jean Harrold,
          <article-title>Jeffery Ostrin and Christie Hong, “An Empirical Study of the Effects of Minimization on the Fault Detection Capabilities of Test Suites”</article-title>
          ,
          <source>In Proceedings of IEEE International Test Conference on Software Maintenance (ITCSM'98)</source>
          , Washington D.C., pp.
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Gregg</surname>
            <given-names>Rothermel</given-names>
          </string-name>
          , Mary Jean Harrold,
          <article-title>Jeffery von Ronne and Christie Hong, “Empirical Studies of Test-Suite Reduction”</article-title>
          ,
          <source>In Journal of Software Testing, Verification, and Reliability</source>
          , Vol.
          <volume>12</volume>
          , No.
          <volume>4</volume>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Gregg</given-names>
            <surname>Rothermel</surname>
          </string-name>
          and Mary Jean Harrold, “A Safe,
          <article-title>Efficient Regression Test Selection Technique”</article-title>
          ,
          <source>ACM Transactions on Softw. Eng. And Methodology</source>
          ,
          <volume>6</volume>
          (
          <issue>2</issue>
          ):
          <fpage>173</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Gregg</given-names>
            <surname>Rothermel</surname>
          </string-name>
          and Mary Jean Harrold, “
          <article-title>Analyzing Regression Test Selection Techniques”</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>22</volume>
          (
          <issue>8</issue>
          ):
          <fpage>529</fpage>
          -
          <lpage>551</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Jirapun</surname>
            <given-names>Daengdej</given-names>
          </string-name>
          ,
          <source>Ph.D. Thesis</source>
          , “
          <article-title>Adaptable Case Base Reasoning Techniques for Dealing with Highly Noise Cases</article-title>
          ” The University of New England, Australia,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Jun</given-names>
            <surname>Zhu</surname>
          </string-name>
          and
          <string-name>
            <given-names>Quiang</given-names>
            <surname>Yang</surname>
          </string-name>
          . “
          <string-name>
            <surname>Remembering To Add</surname>
          </string-name>
          Competence-preserving
          <source>Case Addition Policies for Case Base Maintenance.” In Proceedings of the 16th International Joint Conference in Artificial Intelligence</source>
          ,
          <fpage>234</fpage>
          -
          <lpage>241</lpage>
          . Morgan-Kaufmann,
          <year>1999</year>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Mary</given-names>
            <surname>Jean</surname>
          </string-name>
          <string-name>
            <surname>Harrold</surname>
          </string-name>
          ,
          <article-title>Rajiv Gupta and Mary Lou Soffa, “A Methodology for Controlling the Size of A Test Suite”</article-title>
          ,
          <source>ACM Transactions on Software Engineering and Methodology</source>
          ,
          <volume>2</volume>
          (
          <issue>3</issue>
          ):
          <fpage>270</fpage>
          -
          <lpage>285</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Nicha</given-names>
            <surname>Kosindrdecha</surname>
          </string-name>
          and Jirapun Daengdej, “
          <article-title>A Deletion Algorithm for Case-Based Maintenance Based on Accuracy and Competence”</article-title>
          , Assumption University, Thailand,
          <year>2003</year>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>Nicha</given-names>
            <surname>Kosindrdecha</surname>
          </string-name>
          and Siripong Roongruangsuwan, “
          <article-title>Reducing Test Case Created by Path Oriented Test Case Generation”</article-title>
          ,
          <source>AIAA 2007 Conference and Exhibition</source>
          , Rohnert Park, California, USA,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21] NIST, “
          <article-title>The economic impacts of inadequate infrastructure for software testing</article-title>
          ”,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <article-title>Saif-ur-Rebman Khan</article-title>
          and Aamer Nadeem, “
          <source>TestFilter: A Statement-Coverage Based Test Case Reduction Technique”</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Sara</surname>
            <given-names>Sprenkle</given-names>
          </string-name>
          ,
          <article-title>Sreedevi Sampath and Amie Souter, “An Empirical Comparison of Test Suite Reduction Techniques for User-session-based Testing of Web Applications”</article-title>
          ,
          <source>Journal of Software. Testing, Verification, and Reliability</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ),
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Scott</given-names>
            <surname>McMaster</surname>
          </string-name>
          and
          <string-name>
            <given-names>Atif</given-names>
            <surname>Memon</surname>
          </string-name>
          , “
          <article-title>Call Stack Coverage for Test Suite Reduction”</article-title>
          ,
          <source>Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05)</source>
          , pages
          <fpage>539</fpage>
          -
          <lpage>548</lpage>
          , Budapest, Hungary,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Scott</given-names>
            <surname>McMaster</surname>
          </string-name>
          and
          <string-name>
            <given-names>Atif</given-names>
            <surname>Memon</surname>
          </string-name>
          , “
          <article-title>Call Stack Coverage for GUI Test-Suite Reduction”</article-title>
          ,
          <source>Proceedings of the 17th IEEE International Symposium on Software Reliability Engineering (ISSRE</source>
          <year>2006</year>
          ), NC, USA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Scott</given-names>
            <surname>McMaster</surname>
          </string-name>
          and
          <string-name>
            <given-names>Atif</given-names>
            <surname>Memon</surname>
          </string-name>
          , “
          <article-title>Fault Detection Probability Analysis for Coverage-Based Test Suite Reduction”</article-title>
          , IEEE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Sreedevi</surname>
            <given-names>Sampath</given-names>
          </string-name>
          , Sara Sprenkle, Emily Gibson and Lori Pollock, “
          <article-title>Web Application Testing with Customized Test Requirements - An Experimental Comparison Study”</article-title>
          ,
          <source>17th International Symposium on Software Reliability Engineering (ISSRE'06)</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>Siripong</given-names>
            <surname>Roongruangsuwan</surname>
          </string-name>
          and Jirapun Daengdej, “
          <article-title>Techniques for improving case-based maintenance”</article-title>
          , Assumption University, Thailand,
          <year>2003</year>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>Siripong</given-names>
            <surname>Roongruangsuwan</surname>
          </string-name>
          and Jirapun Daengdej,
          <source>“Test Case Reduction”</source>
          ,
          <source>Technical Report 25521</source>
          . Assumption University, Thailand,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>S.</given-names>
            <surname>Elbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Malishevsky</surname>
          </string-name>
          , and G. Rothermel, “
          <article-title>Test Case Prioritization: A Family of Empirical Studies”</article-title>
          ,
          <source>IEEE Trans. on Software Engineering</source>
          , vol.
          <volume>28</volume>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>S.</given-names>
            <surname>Elbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Malishevsky</surname>
          </string-name>
          and G. Rothermel, “
          <article-title>Prioritizing Test Cases for Regression Testing”</article-title>
          ,
          <source>In Proceedings of the International Symposium on Software Testing and Analysis</source>
          , pages
          <fpage>102</fpage>
          -
          <lpage>112</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>S.</given-names>
            <surname>Elbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kallakuri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Malishevsky</surname>
          </string-name>
          , G. Rothermel, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kanduri</surname>
          </string-name>
          , “
          <article-title>Understanding the effects of changes on the cost-effectiveness of regression testing techniques”</article-title>
          ,
          <source>Journal of Software Testing, Verification, and Reliability</source>
          ,
          <volume>13</volume>
          (
          <issue>2</issue>
          ):
          <fpage>65</fpage>
          -
          <lpage>83</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>Todd</surname>
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Graves</surname>
          </string-name>
          , Mary Jean Harrold,
          <string-name>
            <surname>Jung-Min</surname>
            <given-names>Kim</given-names>
          </string-name>
          ,
          <source>Adam Porter and Gregg Rothermel, “An Empirical Study of Regression Test Selection Techniques”</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>W. Eric</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Horgan</surname>
          </string-name>
          , Saul London and Hira Agrawal, “
          <article-title>A Study of Effective Regression Testing in Practice”</article-title>
          ,
          <source>8th IEEE International Symposium on Software Reliability Engineering (ISSRE'97)</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>W.</given-names>
            <surname>Eric</surname>
          </string-name>
          <string-name>
            <given-names>Wong</given-names>
            ,
            <surname>Joseph R. Horgan</surname>
          </string-name>
          , Saul London and Aditya P. Mathur, “
          <article-title>Effect of Test Set Minimization on the Fault Detection Effectiveness of the All-Uses Criterion”</article-title>
          ,
          <source>In Proceedings of the 17th International Conference on Software Engineering</source>
          , pages
          <fpage>41</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <surname>Xiaofang</surname>
            <given-names>Zhang</given-names>
          </string-name>
          , Baowen Xu,
          <article-title>Changhai Nie and Liang Shi, “An Approach for Optimizing Test Suite Based on Testing Requirement Reduction”</article-title>
          ,
          <source>Journal of Software (in Chinese)</source>
          ,
          <volume>18</volume>
          (
          <issue>4</issue>
          ):
          <fpage>821</fpage>
          -
          <lpage>831</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <surname>Xiaofang</surname>
            <given-names>Zhang</given-names>
          </string-name>
          , Baowen Xu,
          <source>Changhai Nie and Liang Shi, “Test Suite Optimization Based on Testing Requirements Reduction”</source>
          ,
          <source>International Journal of Electronics &amp; Computer Science</source>
          ,
          <volume>7</volume>
          (
          <issue>1</issue>
          ):
          <fpage>9</fpage>
          -
          <lpage>15</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <surname>Xue-ying</surname>
            <given-names>MA</given-names>
          </string-name>
          ,
          <article-title>Bin-kui Sheng, Zhen-feng HE</article-title>
          and
          <string-name>
            <surname>Cheng-qing</surname>
            <given-names>YE</given-names>
          </string-name>
          , “
          <article-title>A Genetic Algorithm for Test-Suite Reduction”</article-title>
          , IEEE, China,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <surname>Yanbing</surname>
            <given-names>Yu</given-names>
          </string-name>
          ,
          <article-title>James A. Jones and Mary Jean Harrold, “An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization”</article-title>
          ,
          <source>Proceedings of ICSE'08</source>
          ,
          <string-name>
            <surname>Germany</surname>
          </string-name>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>