Start with the definitions:
• C1 is finer than C2 if
– " T1ÎC1 $T2ÎC2 Ù T2 Í T1
– For every test set satisfying C1 there is a smaller (subset) test set satisfying C2
• C1 is more reliable than C2 if
– whenever P is incorrect, there is no test set T2 in C2 that causes P to fail but some T1 in C1 does not.
– ($ d,r | S (r, d) Ù Ø(P(r, d))) Ù ($ T1ÎC1 | "t=(r,d) ÎT1 | S (r,d) ® P(r,d)) ® Ø$T2ÎC2 | "t=(r,d) ÎT2 | S (r,d) ® P(r,d)
– (If P is incorrect and some test set in T1 fails to catch the error, then no test set in T2 can catch the error.)
Prove that finer does not imply more reliable.
Assume that we have two criteria, C1 and C2, and that C1 is finer than C2. What we must find is an example where C1 is not more reliable than C2. C1 is not more reliable than C2 if T2 in C2 exposes an error and T1 does not.
Let C1 be a criterion with a test set T1={1, 3, 7, 9, 11}. Let C2 be some criterion with two test sets, {1,3,7,9} and (1,3,5,7,9).
C1 is finer than C2 because there exists a test set in C2 that is a subset of the test set in C1.
Suppose I have a program P that exhibits an error given the input 5.
C1 is not more reliable than C2. No test set in C1 exposes the error in P, but some test set in C2 does.
Notice that C2 is not consistent. Notice that C1 is not complete.