In previously reported research we designed and analyzed algorithms that improved upon the run time complexity of all known weak and strong mutation analysis methods at the expense of increased space complexity. Here we describe a new serial strong mutation algorithm whose running time is on the average much faster than the previous ones and that uses significantly less space than them also. Its space requirement is approximately the same as that of Mothra, a well-known and readily available implemented system. Moreover, while this algorithm can serve as basis for a new mutation system, it is designed to be consistent with the Mothra architecture, in the sense that, by replacing certain modules of that system with new ones, a much faster system will result. Such a Mothra-based implementation of the new work is in progress.
Like the previous algorithms, this one, which we call Lazy Mutant Analysis or LMA, tries to determine whether a mutant is strongly killed by a given test only if it is already known that it is weakly killed by that test. Unlike those algorithms, LMA avoids executing many mutants by dynamically discovering classes of mutants that have the “same” behavior, and executing representatives of those classes. The overhead it incurs is small in proportion to the time saved, and the algorithm has a very natural parallel implementation.
In comparison to the fastest known algorithms for strong mutation analysis, in the best case, LMA can improve the speed by a factor proportional to the average number of mutants per program statement. In the worst case, there is no improvement in the running time, but such a case is hard to construct. This work enables us to apply mutation analysis to significantly larger programs than is currently possible.
[1]
K. N. King,et al.
A fortran language system for mutation‐based software testing
,
1991,
Softw. Pract. Exp..
[2]
A. Jefferson Offutt,et al.
Mutation analysis using mutant schemata
,
1993,
ISSTA '93.
[3]
Richard J. Lipton,et al.
Hints on Test Data Selection: Help for the Practicing Programmer
,
1978,
Computer.
[4]
Vernon Rego,et al.
High Performance Software Testing on SIMD Machines
,
1991,
IEEE Trans. Software Eng..
[5]
V.N. Fleyshgakker,et al.
HiTest: an architecture for highly parallel software
,
1992,
CompEuro 1992 Proceedings Computer Systems and Software Engineering.
[6]
Vladimir N. Fleyshgakker,et al.
Improved serial algorithms for mutation analysis
,
1993,
ISSTA '93.
[7]
A.P. Mathur.
Performance, effectiveness, and reliability issues in software testing
,
1991,
[1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.
[8]
R.A. DeMillo,et al.
An extended overview of the Mothra software testing environment
,
1988,
[1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.
[9]
Vernon Rego,et al.
Exploiting Parallelism Across Program Execution: A Unification Technique and Its Analysis
,
1990,
IEEE Trans. Parallel Distributed Syst..
[10]
Byoungju Choi,et al.
PMothra: scheduling mutants for execution on a hypercube
,
1989,
TAV3.