An analysis of the coupling effect I: single test data
The focus in mutation testing is on the elimination of first-order mutants. It is widely believed that there is a coupling effect between first-order and higher-order mutants such that a test set that kills the former would be expected to kill the latter too; it follows that, if the belief is correct, there is no need whatsoever to bother with higher-order mutants. It turns out, in practice, that most higher-order mutants do get killed by such a test set, though a few somehow manage to survive. This is the first of two papers dealing with the coupling effect from a theoretical standpoint. The overall results indicate that the hypothesis of a coupling effect is largely valid, provided the program is not too large; only a tiny proportion of higher-order mutants is expected to survive a test set that kills all first-order mutants. The basis of the approach is that programs can be modelled as compositions of finite functions, the domain of which is assumed to be large. The problem is a complex one, so the present paper only considers the case where there is just one test data,, the case where there are more than one test data is left to a second paper. The aim is not only to show that the coupling effect actually exists, but also to gain some understanding of the various factors underlying it. (C) 2003 Elsevier B.V. All rights reserved.
coupling effect single-fault (multi-fault) alternate proper test set survival ratio expected number of survivors function degeneracy fault size