<!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>Code Coverage Analysis of Combinatorial Testing</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Eun-Hye Choi⇤</institution>
          ,
          <addr-line>Osamu Mizuno</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Kyoto Institute of Technology</institution>
          ,
          <addr-line>Kyoto</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>43</fpage>
      <lpage>49</lpage>
      <abstract>
        <p>-Combinatorial t-way testing with small t is known as testing would be of big interest to practitioners who consider an ecient black-box testing technique to detect parameter inter- applying t-way testing to their software testing. action failures. So far, several empirical studies have reported the Note that t-way testing is a black-box testing and thus is fee↵ewctivsteundeisessohfavte-wianyvetsetsitginatgedonthfaeulet↵edcteitveecntieosns aobfilitti-ews.aHyotwesetvinegr, dicult to achieve 100% code coverage and its code coverage on code coverage, which is one of the most important coverage depends on the system under test (SUT) model, e. g. parameters criteria widely used for software testing. This paper presents a and their values, designed for t-way testing. Therefore, in order quantitative analysis to evaluate the code-coverage e↵ectiveness to evaluate the code coverage e↵ectiveness of t-way testing, of t-way testing. Using three open source utility programs, we we compare code coverage obtained by t-way testing with that wco. mr. pt.acroedte-wcaoyvetreasgtienagnwditthestexshuaituestsiivzees(.all combination) testing by exhaustive testing, similarly to [10]. In order to quantitatively analyze the code coverage e↵ec-</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The System Under Test (SUT) for combinatorial testing
is modeled from parameters, their associated values from
finite sets, and constraints between parameter-values. For
instance, the SUT model shown in Table I, has three parameters
(p1, p2, p3); the first two parameters have two possible values
and the other has three possibilities. Constraints among
parameter-values exist when some parameter-value
combinations cannot occur. The example SUT has a constraint such
that p2 , on if p3 = 1, i. e., the combination of p2 = on and
p3 = 1 is not allowed.</p>
      <p>More formally, a model of an SUT is defined as follows:
Definition 1 (SUT model). An SUT model is a triple hP, V, i,
where
• P is a finite set of parameters p1, . . . , p|P|,
• V is a family that assigns a finite value domain Vi for
each parameter pi (1  i  | P|), and
• is a constraint on parameter-value combinations.</p>
      <p>A test case is a value assignment for the parameters that
satisfies the SUT constraint. For example, a 3-tuple (p1 =on,
p2 =on, p3 =1) is a test case for our example SUT model. We
call a sequence of test cases a test suite.</p>
      <p>An exhaustive test suite (i. e. all combination test suite) is
a sequence of all possible test cases, i. e., a test suite that
covers all parameter-value combinations satisfying the SUT
constraint. In general, exhaustive testing is impractical since it
stipulates to test all possible test cases and thus its size (the
number of test cases) increases exponentially with the number
of parameters.</p>
      <p>Combinatorial t-way testing (e. g., pairwise, when t = 2)
alternatively stipulates to test all t-way parameter-value
combinations satisfying the SUT constraint at least once. We call t
an interaction strength. An exhaustive test suite corresponds
to a t-way test suite with t = |P|.</p>
      <p>Definition 2 (t-way test suite). Let hP, V, i be an SUT model.
We say that a tuple of t (1  t  | P|) parameter-values is
possible i↵ it does not contradict the SUT constraint . A
t-way test suite for the SUT model is a test suite that covers
all possible t-tuples of parameter-values in the SUT model.
Example 1. Consider the SUT model in Table I and t = 2.
There exist 15 possible t-tuples (pairs) of parameter-values, as
shown in Table II. The test suites T1 in Table III is a 2-way
(pairwise) test suite since it covers all the possible
parametervalue pairs in Table II. T2 in Table IV is a 3-way test suite
and corresponds to the exhaustive test suite since the number
of parameters in the example model is three .</p>
      <p>
        Many algorithms to eciently construct t-way test suites
have been proposed so far. Approaches to generate t-way
test suites for SUT models with constraints include greedy
algorithms (e. g., AETG [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], PICT [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], and ACTS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]), heuristic search (e. g., CASA [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], HHSA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and
TCA [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]), and SAT-based approaches (e. g., Calot [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]).
B. Related Work: E↵ectiveness evaluation of t-way testing
      </p>
      <p>
        The e↵ectiveness of t-way testing with small interaction
strength t on fault detection have been reported by several
empirical studies so far [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], but the code coverage of
t-way testing has not been studied well. Table V summarizes
the e↵ectiveness metrics studied in related work.
      </p>
      <p>
        Kuhn et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] investigated parameter interactions inducing
actual failures of four systems; a software for medical devices,
a browser, a server, and a database system. As a result, 29–68%
of the faults involved a single parameter; 70–97% (89–99%)
of the faults involved up to two (three) parameter interactions;
96–100% of the faults involved up to four and five parameter
interactions; no fault involved more than six parameters. From
the result, the authors concluded that most failures are triggered
by parameter interactions with small t (at most four to six)
and thus t-way testing with 4  t  6 could provide the fault
detection ability of “pseudo-exhaustive” testing.
      </p>
      <p>
        Zhang et al. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] also explored that failures of actual
commercial MP3 players are triggered by t-way parameter
interactions with at most t = 4.
      </p>
      <p>
        Petke et al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] more thoroughly studied the eciency of
early fault detection by t-way testing with 2  t  6. They
used six projects, flex, make, grep, gzip, nanoxml, and siena,
from the Software artifact Infrastructure Repository (SIR) and
showed the number of faults detected after 25%, 50%, 70%,
and 100% of test cases are executed.
      </p>
      <p>
        Henard et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] used five projects, grep, sed, flex, make,
and gzip, also from SIR and compared the number of faults
detected by test suite prioritization with t-way coverage (2 
t  4) and other black-box and white-box prioritization.
      </p>
      <p>
        Choi et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] used three projects, flex, grep, and make,
from SIR and investigated a correlation of the fault detection
effectiveness with two evaluation metrics, called weight coverage
and KL divergence, for prioritized t (= 2)-way testing.
      </p>
      <p>
        To our knowledge, the only work by Giannakopoulou et
al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] reported code coverage of t-way testing. Their target
system is a component of the Tactical Separation Assisted
Flight Environment (TSAFE) of the Next Generation Air
Transportation System (NextGen) by the NASA Ames Research
Center. In their work, t (= 3)-way testing and their
modelchecker (JPF [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]) based exhaustive testing are compared
w. r. t. code coverage; line coverage, branch coverage, loop
coverage, and strict condition coverage, which are computed
using CodeCover [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
      <p>Giannakopoulou et al. reported that for two program
modules, the di↵erences of code coverage by 3-way testing and
exhaustive testing are 0–2% for the four coverage metrics they
used, while the numbers of test cases are 6,047 for 3-way
testing but 9.9 ⇥ 106 for exhaustive testing. In this paper, we
more thoroughly analyze the code coverage e↵ectiveness of
t-way testing with 1  t  4 using three open source utility
programs.
Proj.
flex
grep
make</p>
      <p>Proj.
flex
grep
make</p>
      <p>0.7968
0.7789
0.8312
represents an assignment of a value to a parameter and for
each j there are h j clauses that have l j literals. For the example
SUT model in Figure 1, the size of parameter-values is 3; 2231
and the size of constraints is 2; 21.</p>
      <p>
        2) Test Suites: We use t-way test suites with 1  t  4 that
are generated by ACTS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and PICT [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] for our
constructed SUT models with constraints. The tools ACTS and
PICT are state-of-the-art open source t-way test generation
tools developed by NIST (National Institute of Standards and
Technology) and Microsoft, respectively. For comparison, we
also use exhaustive test suites each of which obtains all possible
test cases. The exhaustive test suite for the test plan of each
project is included in SIR.
      </p>
      <p>
        3) Evaluation Metrics: To evaluate code coverage of each
test suite, we analyze the following two kinds of code coverage,
which are computed using gcov [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]:
• Line coverage: the percentage of program lines executed.
• Branch coverage: the percentage of branches of conditional
statements executed.
gcov is a source code analysis tool, which is a standard utility
delivered with the GNU C/C++ Compiler and reports how
many lines and branches are executed.
      </p>
    </sec>
    <sec id="sec-2">
      <title>IV. Results</title>
      <p>Table VIII shows the size, i. e. the number of test cases,
and the code coverage (line coverage and branch coverage) of
the exhaustive test suite for each project, while Table IX and
Table X show those of the subject t-way test suites (1  t  4)
generated by ACTS and PICT. Table IX shows the sizes of the
subject t-way test suites with the ratio of them over the sizes of
exhaustive test suites. Table X summarizes line coverage and
branch coverage of the subject t-way test suites for each project.
1.00
0.99</p>
      <p>In Table VIII and Table X, we show the average, minimum,
and maximum values of code coverage for versions of each
project.</p>
      <p>For example, for project flex, the sizes of 2-way test suites
(52 by ACTS and 51 by PICT) are less than 10% of the size
of the exhaustive test suite (525) from Table VIII and Table IX.
On the other hand, for flex, line coverage and branch coverage
of 2-way test suites (the exhaustive test suite) are on average
0.7927 (0.7968) and 0.8522 (0.8544) from Table VIII and
Table X.</p>
      <p>A. RQ1: t-way testing vs. exhaustive testing</p>
      <p>To compare the code coverage between t-way testing and
exhaustive testing, we investigate the following metric</p>
      <p>RCov(Tt, EX) = Cov(Tt) / Cov(EX),
which denotes the ratio of code coverage of t-way test suite
Tt over that of exhaustive test suite EX.</p>
      <p>Table XI summarizes the values of RCov(Tt, EX) with 1  t 
4 for line coverage and branch coverage for each project and</p>
      <p>Proj.
(hinges), and highest/lowest values within 1.5 ⇥
the
inter• How high code coverage can t-way testing achieve
compared to exhaustive testing?
coverage of exhaustive testing.</p>
      <p>• Can t-way testing obtain higher code coverage earlier
compared to exhaustive testing?</p>
      <p>Figure 3 shows example line coverage growths and branch
coverage growths of t-way test suites (1  t  4) and the
exhaustive test suites for one version (v1) of project grep. (The
coverage growths represent the typical cases of our experiment
results.) We can see that t-way testing with smaller t obtains
From Table XI and Figure 2, we can see that t-way testing
higher code coverage earlier compared to exhaustive testing
with even small t can achieve high values of RCov(Tt, EX),
i. e. high ratios of code coverage over the code coverage of
exhaustive testing.
and t-way testing with larger t.</p>
      <p>For the example case in Figure 3, to obtain 48% line coverage
(46% branch coverage), 1-way, 2-way, 3-way, and 4-way testing
In the result of our case study, 1-way (2-way) testing covers
respectively require 35, 42, 56, and 56 (36, 47, 71, and 71) test
avg. 97.82% (99.77%) of line coverage of exhaustive testing and
cases, while exhaustive testing requires 219 (265) test cases.
1.3
1.2
Fig. 4. Ratios of code coverage of t-way testing (1  t  4) over that of
exhaustive testing with the same sizes for all versions of projects.
• How large t is necessary for t-way testing to achieve the
code coverage close to that by exhaustive testing?
Surprisingly, as the result of our case study, all t-way test
suites with 1  t  4 obtain more than 95% of code coverage
of exhaustive test suites. Especially, for project grep, 4-way
test suites obtain the same line coverage and branch coverage
with the exhaustive test suite. As described in Table XI, in
30 cases of all 34 cases, 2-way, 3-way, and 4-way test suites
achieve more than 99.5% of line coverage of exhaustive test
suites. For branch coverage, in all cases, 4-way test suites
achieve more than 99.5% of coverage of exhaustive test suites.</p>
      <p>From the results, t-way testing with small t (1  t 
4) can eciently obtain code coverage close to that by
exhaustive testing while requiring smaller test cases.
B. RQ2: t-way testing vs. exhaustive testing in the same sizes</p>
      <p>To compare the code coverage between t-way testing and
exhaustive testing with the same sizes, we investigate the
following metric</p>
      <p>RCov(Tt, EX⇤) = Cov(Tt) / Cov(EX⇤),
which denotes the ratio of code coverage of t-way test suite Tt
over that of a subset, hereafter denoted by EX⇤ , of exhaustive
test suite EX whose size is same with Tt. In our experiments,
we constructed EX⇤ 100 times by randomly selecting |Tt| test
cases from exhaustive test suite EX and use the average value
of the code coverage for the 100 EX⇤.</p>
      <p>Table XII summarizes the values of RCov(Tt, EX⇤ ) with 1 
t  4 for line coverage and branch coverage for each project
and all projects. In the table, we also show the numbers of
cases where RCov(Tt, EX⇤ ) 105%, i. e. t-way testing achieves
more than 105% of the coverage obtained by exhaustive testing
with the same size, over the numbers of all cases for projects.
Figure 4 presents the box plots for the results of RCov(Tt, EX⇤ )
for all projects.
• With the same number of test cases, how di↵erent are
t-way testing and exhaustive testing on code coverage?
From Table XII and Figure 4, we can see that t-way test
suites with 1  t  4 achieve higher line coverage and branch
coverage compared to exhaustive test suites in the same sizes.
Especially, t-way testing with smaller t obtains higher values
of RCov(Tt, EX⇤ ), i. e. higher ratios of code coverage over that
of exhaustive testing in the same size.</p>
      <p>As described in Table XII, for all cases, 1-way and 2-way
testing achieve more than 105% of code coverage of exhaustive
testing with the same size. For 3-way and 4-way testing, the
numbers of cases that achieve more than 105% of line (branch)
coverage of exhaustive testing with the same sizes are 24 and
20 (24 and 16) cases among all 34 cases.</p>
      <p>From the results, t-way testing with smaller t can obtain
higher code coverage compared to exhaustive testing with
the same number of test cases.</p>
    </sec>
    <sec id="sec-3">
      <title>V. Conclusion</title>
      <p>This paper analyzes the code coverage e↵ectiveness of
combinatorial t-way testing with small t. As a result of our
empirical evaluation using a collection of open source utility
programs, t-way testing with small t (1  t  4) eciently
covers more than 95% of code coverage achieved by exhaustive
testing, while requiring much smaller test cases. In addition,
comparing in the same test suite sizes, t-way testing with
smaller t obtains higher ratio of code coverage over that by
exhaustive testing.</p>
      <p>In this paper, we evaluate two kinds of widely used code
coverage metrics, line coverage and branch coverage. Further
work includes evaluating other metrics such as loop coverage,
condition coverage, etc. Another further work is to investigate
both the code coverage e↵ectiveness and the fault detection
e↵ectiveness of t-way testing and analyze the relation between
them on real software projects.</p>
    </sec>
    <sec id="sec-4">
      <title>Acknowledgments</title>
      <p>The authors would like to thank anonymous referees for
their helpful comments and suggestions to improve this paper.
This work was partly supported by JSPS KAKENHI Grant
Number 16K12415.</p>
      <p>Avg. of RCov(Tt, EX⇤)
(R⇤ = Cov(Tt)/Cov(EX⇤))</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>International</given-names>
            <surname>Standardization</surname>
          </string-name>
          <string-name>
            <surname>Organization</surname>
          </string-name>
          , ISO26262: Road vehicles - Functional safety,
          <year>November 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K. Z.</given-names>
            <surname>Bell</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Vouk</surname>
          </string-name>
          .
          <article-title>On e↵ectiveness of pairwise methodology for testing network-centric software</article-title>
          .
          <source>In Proc. of International Conference on Information and Communication Technology</source>
          , pages
          <fpage>221</fpage>
          -
          <lpage>235</lpage>
          . IEEE,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Borazjany</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kacker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          .
          <article-title>Combinatorial testing of ACTS: A case study</article-title>
          .
          <source>In Proc. of the 5th International Conference on Software Testing, Verification and Validation (ICST)</source>
          , pages
          <fpage>591</fpage>
          -
          <lpage>600</lpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Choi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kawabata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Mizuno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Artho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kitamura</surname>
          </string-name>
          .
          <article-title>Test e↵ectiveness evaluation of prioritized combinatorial testing: a case study</article-title>
          .
          <source>In Proc. of the International Conference on Software Quality, Reliability &amp; Security (QRS)</source>
          , pages
          <fpage>61</fpage>
          -
          <lpage>68</lpage>
          . IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Dwyer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Shi</surname>
          </string-name>
          .
          <article-title>Constructing interaction test suites for highly-configurable systems in the presence of constraints: A greedy approach</article-title>
          .
          <source>IEEE Trans. Software Eng.</source>
          ,
          <volume>34</volume>
          (
          <issue>5</issue>
          ):
          <fpage>633</fpage>
          -
          <lpage>650</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Czerwonka</surname>
          </string-name>
          .
          <article-title>Pairwise testing in the real world: Practical extensions to test-case senarios</article-title>
          .
          <source>In Proc. of the 24th Pacific Northwest Software Quality Conference</source>
          , pages
          <fpage>419</fpage>
          -
          <lpage>430</lpage>
          . Citeseer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>H.</given-names>
            <surname>Do</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Elbaum</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Rothermel</surname>
          </string-name>
          .
          <article-title>Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact</article-title>
          .
          <source>Empirical Software Engineering</source>
          ,
          <volume>10</volume>
          (
          <issue>4</issue>
          ):
          <fpage>405</fpage>
          -
          <lpage>435</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G. B.</given-names>
            <surname>Finelli</surname>
          </string-name>
          .
          <article-title>NASA software failure characterization experiments</article-title>
          .
          <source>Reliability Engineering &amp; System Safety</source>
          ,
          <volume>32</volume>
          (
          <issue>1</issue>
          ):
          <fpage>155</fpage>
          -
          <lpage>169</lpage>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B. J.</given-names>
            <surname>Garvin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Cohen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Dwyer</surname>
          </string-name>
          .
          <article-title>Evaluating improvements to a meta-heuristic search for constrained interaction testing</article-title>
          .
          <source>Empirical Software Engineering</source>
          ,
          <volume>16</volume>
          (
          <issue>1</issue>
          ):
          <fpage>61</fpage>
          -
          <lpage>102</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Giannakopoulou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Bushnell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Erzberger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Heere</surname>
          </string-name>
          .
          <article-title>Formal testing for separation assurance</article-title>
          .
          <source>Annals of Mathematics and Artificial Intelligence</source>
          ,
          <volume>63</volume>
          (
          <issue>1</issue>
          ):
          <fpage>5</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Henard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Papadakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y. Le</given-names>
            <surname>Traon</surname>
          </string-name>
          .
          <article-title>Comparing white-box and black-box test prioritization</article-title>
          .
          <source>In Proc. of the 38th International Conference on Software Engineering (ICSE)</source>
          , pages
          <fpage>523</fpage>
          -
          <lpage>534</lpage>
          . ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Petke</surname>
          </string-name>
          .
          <article-title>Learning combinatorial interaction testing strategies using hyperheuristic search</article-title>
          .
          <source>In Proc. of the 37th International Conference on Software Engineering (ICSE)</source>
          , pages
          <fpage>540</fpage>
          -
          <lpage>550</lpage>
          . IEEE/ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Kacker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Lawrence</surname>
          </string-name>
          .
          <article-title>Combinatorial testing for software: An adaptation of design of experiments</article-title>
          .
          <source>Measurement</source>
          ,
          <volume>46</volume>
          (
          <issue>9</issue>
          ):
          <fpage>3745</fpage>
          -
          <lpage>3752</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kitamura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yamada</surname>
          </string-name>
          , G. Hatayama,
          <string-name>
            <given-names>C.</given-names>
            <surname>Artho</surname>
          </string-name>
          , E. Choi, N. T. B.
          <string-name>
            <surname>Do</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Oiwa</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sakuragi</surname>
          </string-name>
          .
          <article-title>Combinatorial testing for tree-structured test models with constraints</article-title>
          .
          <source>In Proc. of the International Conference on Software Quality, Reliability &amp; Security (QRS)</source>
          , pages
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Kacker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lei</surname>
          </string-name>
          .
          <article-title>Introduction to combinatorial testing</article-title>
          . CRC Press,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Wallace</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Gallo</surname>
          </string-name>
          .
          <article-title>Software fault interactions and implications for software testing</article-title>
          .
          <source>IEEE Trans. Software Eng.</source>
          ,
          <volume>30</volume>
          (
          <issue>6</issue>
          ):
          <fpage>418</fpage>
          -
          <lpage>421</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Luo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hao</surname>
          </string-name>
          , and
          <string-name>
            <surname>L. Zhang. TCA:</surname>
          </string-name>
          <article-title>An ecient two-mode meta-heuristic algorithm for combinatorial test generation</article-title>
          .
          <source>In Proc. of the 30th International Conference on Automated Software Engineering (ASE)</source>
          , pages
          <fpage>494</fpage>
          -
          <lpage>505</lpage>
          . ACM/IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Maughan</surname>
          </string-name>
          .
          <article-title>Test case generation using combinatorial based coverage for rich web applications</article-title>
          .
          <source>PhD Thesis</source>
          . Utah State University,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Montanez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brady</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Rivello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Reyes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. K.</given-names>
            <surname>Powers</surname>
          </string-name>
          .
          <article-title>An application of combinatorial methods to conformance testing for document object model events</article-title>
          .
          <source>NISTIR-7773</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>C.</given-names>
            <surname>Nie</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Leung</surname>
          </string-name>
          .
          <article-title>A survey of combinatorial testing</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>43</volume>
          (
          <issue>2</issue>
          ):
          <fpage>11</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T. J.</given-names>
            <surname>Ostrand</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Balcer</surname>
          </string-name>
          .
          <article-title>The category-partition method for specifying and generating functional tests</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>31</volume>
          (
          <issue>6</issue>
          ):
          <fpage>676</fpage>
          -
          <lpage>686</lpage>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J.</given-names>
            <surname>Petke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yoo</surname>
          </string-name>
          .
          <article-title>Practical combinatorial interaction testing: Empirical findings on eciency and early fault detection</article-title>
          .
          <source>IEEE Trans. Software Eng.</source>
          ,
          <volume>41</volume>
          (
          <issue>9</issue>
          ):
          <fpage>901</fpage>
          -
          <lpage>924</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Yamada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Artho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kitamura</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Choi</surname>
          </string-name>
          .
          <article-title>Greedy combinatorial test case generation using unsatisfiable cores</article-title>
          .
          <source>In Proc. of the 31st International Conference on Automated Software Engineering (ASE)</source>
          , pages
          <fpage>614</fpage>
          -
          <lpage>624</lpage>
          . IEEE/ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Yamada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kitamura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Artho</surname>
          </string-name>
          , E. Choi,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Oiwa</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Optimization of combinatorial testing by incremental SAT solving</article-title>
          .
          <source>In Proc. of the 8th International Conference on Software Testing, Verification and Validation (ICST)</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , X. Liu, and
          <string-name>
            <surname>J. Zhang.</surname>
          </string-name>
          <article-title>Combinatorial testing on id3v2 tags of mp3 files</article-title>
          .
          <source>In Proc. of the 5th International Conference on Software Testing, Verification and Validation (ICST)</source>
          , pages
          <fpage>587</fpage>
          -
          <lpage>590</lpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>ACTS</surname>
          </string-name>
          , Available: http://csrc.nist.gov/groups/SNS/acts/.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <fpage>cloc</fpage>
          - Count Lines of Code, Available: http://cloc.sourceforge.net.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <article-title>CodeCover - an open-source glass-box testing tool</article-title>
          , Available: http://codecover.org.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29] gcov
          <article-title>- a test coverage program</article-title>
          , Available: http://gcc.gnu.org/onlinedocs/gcc/Gcov.html.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>JavaPathfinder</surname>
          </string-name>
          , Available: http://babelfish.arc.nasa.gov/trac/jpf.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>Pairwise</given-names>
            <surname>Independent Combinatorial Tool</surname>
          </string-name>
          , Available: http://github.com/Microsoft/pict.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Software-artifact Infrastructure</surname>
            <given-names>Repository</given-names>
          </string-name>
          , Available: http://sir.unl.edu/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>