Keynote Programs Determined by Mutation-Adequate tests
This talk explores the motivation behind mutation as a “data coverage” idea parallel to the usual control-flow-coverage testing. In this view, to kill arithmetic-expression mutants requires a spread of test data, and that data then “covers” the expression. This idea originated about 1970 in partial-recursive function theory, in a study of execution traces that determine the function a program computes. By extension, the mutation-adequate test set determines the only possible program with those traces.
The theoretical ideas led to a mutation system built on a compiler base (1975–1976). Compiled code was executed down to the point of mutation, then mutant expressions were interpretively executed to detect failures of either weak or strong mutation coverage. The system also accepted oracle data to certify test results.