变异测试(Mutation Testing)(有时也叫做“变异分析”)是一种在细节方面改进程序源代码的软件测试方法。这些所谓的变异,是基于良好定义的变异操作,这些操作或者是模拟典型应用错误(例如:使用错误的操作符或者变量名字),或者是强制产生有效地测试(例如使得每个表达式都等于0)。目的是帮助测试者发现有效地测试,或者定位测试数据的弱点,或者是在执行中很少(或从不)使用的代码的弱点。首次在1970s提出,变异测试最初是为了定位揭示测试单元的弱点。这个理论是:如果一个变异被引入,同时出现的行为(通常是输出)不受影响的情况下,那么这说明了:变异代码从没有被执行过(产生了过剩代码)或者测试单元无法定位错误。为了使之适用于所有情况,必须引入大量的变异,导致这个程序的极大量的副本被编译和执行。变异测试的花费问题,阻碍了它作为一种软件测试方法的实际应用。