论文部分内容阅读
蜕变测试充分挖掘成功测试用例所包含的信息并加以应用,有效地解决了软件测试的Oracle问题。影响蜕变测试效果的两大关键因素是原始测试用例的生成和蜕变关系的选择/生成,本文从程序输入域的等价类划分出发,提出了基于等价类划分的测试用例生成准则(Equivalence-Class Coverage for Every Metamorphic Relation, ECCEM),该准则分别从等价类和蜕变关系的组合覆盖角度入手,使得原始测试用例的选取具有一定的目的性。为确保划分的等价类的覆盖度完整,本文还提出了一种基于程序执行路径的裁剪规则(Class Path Clipping, CPC),该裁剪准则可以检测出输入域划分的等价类种类是否完整。为了检验基于ECCEM准则生成的测试用例的效果,本文中运用了一种基于测试用例使用率和变异检测能力的新的度量标准,以求全面综合的观察蜕变测试效果。ECCEM准则的可满足性算法使得蜕变测试的效果有所提升,但生成的原始测试用例数无法得到规范,因此文中提出了两种基于ECCEM准则的迭代蜕变测试算法:ECCEM可满足性单点迭代算法ECSIST和ECCEM可满足性多点迭代算法ECMIST,它们可以有效的缩减生成的测试用例的数目,提高测试用例的使用率,原始测试用例的生成不再具有盲目性。最后本文基于复合函数的原理,利用简单蜕变关系构造复合蜕变关系,旨在确保蜕变关系的能力的同时简化复杂蜕变关系的生成,提高测试用例的变异检测能力,从而提升蜕变测试的效果。