在软件测试过程中,如果测试用例的预期输出无法给出或难以生成,测试结果的正确性就很难判断。蜕变测试就是用来解决这个问题的,它根据待测软件的性质,通过输入输出之间的关系应该满足的性质来判断测试结果的正确性。因此蜕变测试又被称为是基于性质的测试。
蜕变关系是蜕变测试中的核心概念和机制,它将软件系统的属性通过多组相关输入输出之间的关系描述出来。蜕变测试过程,首先使用一组测试用例来测试被测软件,然后根据蜕变关系,从前面那组测试用例出发,生成新的测试用例,并用它们再对软件系统进行测试。这里,起初给定的测试用例称为原始测试用例,根据蜕变关系中的输入生成的测试用例,称之为衍生测试用例。
蜕变测试自1998年被提出来以来,一直备受关注并在近十年得到了蓬勃的发展。蜕变测试首先是通过展示其能够生成新的测试用例的能力被大众所了解,后来又因其缓解谕示(oracle)问题的能力而闻名。但软件的各种性质的获得对测试人员的要求比较高,根据软件性质设计具体的测试用例也不便于自动化。