m14, m15, m16, m17, m18, m19, m21, m22,
m23, m24, m25, m26, m27, m28, m44, m45,
m46, m48, m49, m50, m51, m52, m53, m54,
m55, m56, m57, m58, m59, m60, m61, m62,
m63, m83, m88, m89, m90, m92, m93.
The remaining 46 mutants are semantically equiva-
lent to the pre-restriction of jTerminal to T. The first
order of business is to partition these 48 mutants into
equivalence classes modulo semantic equivalence;
we find that these 48 mutants are partitioned into 31
equivalence classes, and we select a member from
each class; we let µ be the set of selected mutants:
µ =
m1, m2, m7, m11, m13, m15, m19, m21, m22,
m23, m24, m25, m27, m28, m44, m45, m46, m48,
m49, m50, m51, m52, m53, m55, m56, m57, m60,
m63, m92, m93
.
We resolve to draw the subsumption graphs of
these mutants according to the three definitions:
• Basic/ True Subsumption:
/
0 ⊂ δ
B
( jTerminal, M) ⊆ δ
B
( jTerminal, M
′
).
• Strict Subsumption:
/
0 ⊂ δ
S
( jTerminal, M) ⊆ δ
S
( jTerminal, M
′
).
• Loose Subsumption:
/
0 ⊂ δ
L
( jTerminal, M) ⊆ δ
L
( jTerminal, M
′
).
To this effect, we must compute the differ-
entiator sets δ
B
( jTerminal, M), δ
S
( jTerminal, M),
δ
L
( jTerminal, M) for all 31 mutants selected above,
with respect to jTerminal. For the sake of illustration,
we show in Table 1 the output file of the base program
jTerminal, as well as that of mutant M22; the number
at the start of each line identifies the input. Using this
table, we can derive the differentiator set of M22 with
respect to jTerminal; this is shown in Table 2, under
all. three interpretations (basic, strict, loose) of dif-
ferentiator sets; these sets can be inferred from the
definitions, by analyzing the output files of the base
program and the mutant. The first observation that we
can make about these output files is that divergence,
far from being an exceptional circumstance, is in fact
a very frequent occurrence; notwithstanding the two
instances of divergence that we have triggered on pur-
pose at lines 9 and 10, mutant M22 fails to converge
for several other inputs, which are part of the original
benchmark test suite.
Note that this experiment is artificial in the sense
that whereas the strict and loose definitions of differ-
entiator sets can be applied to the same combination
of program and test suite, the basic definition can only
be applied when we know, or assume, that the base
program and all the mutants converge for all the ele-
ments of the test suite. In the case of jTerminal and its
mutants, this assumption does not hold, as virtually
all of them fail to converge on at least some elements
of T. We obviate this difficulty by considering that
divergence is itself an execution outcome, but this is
merely a convenient assumption for the sake of the
experiment.
By computing the basic, strict and loose differen-
tiator sets of all the mutants with respect to jTermi-
nal and comparing them for inclusion, we derive the
subsumption relations between the mutants, which we
can represent by graphs; these graphs are given in, re-
spectively, Figures 6, 7 and 8. Nodes in these graphs
represent mutants and arrows represent subsumption
relations: whenever there is an arrow from mutant M
to mutant M
′
, it means that M subsumes M
′
(hence
M
′
can be eliminated from the mutant set without
affecting its effectiveness). When two mutants sub-
sumes each other (for example M27 and M28 in 7),
this means that though these mutants are distinct from
each other (they compute functions functions), they
have the same differentiator set with respect to jTer-
minal.
From these graphs, we derive minimal mutant sets
by selecting the maximal nodes in the subsumption
ordering. Once we have the minimal mutant sets, we
derive minimal test suites that kill all the mutants in
these sets. We verify, in each case, that the test suites
that kills all the mutants of the minimal mutant sets
actually kill all the 48 non-equivalent mutants derived
in our experiment; this comes as no surprise, since
this precisely the rationale for deleting subsumed mu-
tants.
For strict subsumption, for example, we find the
following minimal mutant set:
m22, m23, m27, m28, m44, m45, m48, m50,
m51, m54, m56, m61, m83, m92, m93
.
Using this mutant set, we derive minimal test suites
that kill all these mutants; we find 6 minimal test
suites, of size 7:
Suite 1:
{
t7,t16,t18,t20,t21,t22,t25
}
Suite 2:
{
t7,t16,t18,t20,t21,t22,t26
}
Suite 3:
{
t16,t18,t20,t21,t22,t23,t25
}
Suite 4:
{
t16,t18,t20,t21,t22,t25,t27
}
Suite 5:
{
t16,t18,t20,t21,t22,t23,t26
}
Suite 6:
{
t16,t18,t20,t21,t22,t26,t27
}
By virtue of subsumption, these test suites kill all 31
mutants selected above; by virtue of equivalence, they
necessarily kill all 48 killable mutants of jTerminal.
Using the basic interpretation of subsumption, we
find 96 minimal test suites, all of them of size 12; for
the loose interpretation of subsumption, we find 48
minimal test suites, all of them of size 11. Due to