The deliberate addition of errors to a program. Normally the errors seeded are semantic rather than syntactic, and are usually selected and located in a way that is representative of the normal distribution of error type and positioning. For example, a variable name spelling could be altered, or a branching statement condition changed from “less than” to “less than or equal”. The program is then subjected to test and the errors revealed in the test are analyzed into seeded and nonseeded forms. A test or series of tests should successfully reveal all the seeded faults: the technique has been used as a means of checking the effectiveness (and efficiency) of various test strategies.
It is however difficult to be certain that the seeded errors are truly representative both of the occurrence and the effect of real errors. It is particularly difficult to seed nontrivial errors.