Metamorphic Testing:A Review of Challenges and Opportunities
来源:ACM
蜕变测试
软件测试所面临的两个基础性问题:oracle问题和可靠的测试集问题。
oracle[测试结果参照物]:在测试时确定与实际结果进行比较的预期结果的源。它可能包括现有系统(作基准)、用户手册、或个人的专业知识等,但不是代码。
解决可靠的测试集的策略:
- random testing;
- coverage testing;
- search-based testing;
- symbolic execution.
解决oracle问题目前有的策略:
- assertion checking
- N-version programming
当oracle问题也发生的时候,有关解决可靠测试集问题的策略限制了适用性和有效性。
MT(Metamorphic Testing)可以用来产生测试用例和测试结果的验证。因此可以同时解决上述问题。
有几个术语了解一下:
- MRs(Metamorphic Relations):目标函数或者算法与多个输入和他们所期望的输出之间的关系。
- source inputs:我翻译为源输入
- source test cases:源测试用例
- follow-up test cases:基于MR产生的新的测试输入作为后续测试用例集
MT根据相应的MR验证源和后续测试用例及其输出。
一些定义:
MR定义:
f为目标函数,(x