首先,很吸引人的结论:实验结果表明,蜕变测试与特殊用例测试之间是互补的,而且就蜕变测试的源测试用例言,随机测试用例在测试能力和效率上优于特殊测试用例。并且,随机测试用例是不需要给出期望输出的!
具体过程是这样的:
1. 使用源测试用例来测试被测对象,如果某一个用例引起了异常,则结束测试,报告测试未通过。
2. 对于每一个蜕变关系(metamorphic relation)MR=(R, Rf)
a) 从源测试用例,根据关系R生成新的测试用例Xk
b) 用Xk测试被测对象
c) 如果被测对象异常退出,测试结束,报告测试未通过
d) 如果被测对象正常结束并输出Yk,使用关系Rf验证,如果Rf((X1, X2), ..., (Xk, Yk))不成立,则报告测试未通过
3. 如果没有错误报告,则认为测试通过
举个例子来说明一下使用随机测试用例进行蜕变测试的过程:
测试一个矩阵乘法的程序,输入矩阵A和B,输出AB的乘积C
给出随机的A和B,记录程序输出C
根据下表中的关系R生成A’和B’,根据关系Rf和C来验证输出C’
这样我们就可以使用随机测试用例来测试程序了,而不需要事先知道期望输出。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/