Metamorphic TestingA Review of Challenges and Opportunities翻译总结

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 1 ,…,x n )输入序列。对应输出(f(x 1 ),…f(x n ))。

源输入集与后续测试集定义:

MG定义:

MT步骤:

MT的优势:

  • 概念简单(这个优势我有点不太懂…)
  • 直接实现
  • 对于给定的MRs的可用性易于自动化
  • 低代价

通常对于MT的一些误解:

  • 不是所有的必须属性都是MRs
  • 并非所有MR都分为仅输入和仅输出子关系
  • 并非所有的MR都是相等关系
  • 无论是否有oracle测试,MT都可以应用

在测试领域的MT:

  1. MT是一种缓和oracle问题的方法
  2. MT作为一个新的策略用于生成测试用例

MT其他的扩展应用:

  1. 证明MRs
  2. 验证(Verification)、确认(Validation)以及质量评价的框架。验证和确认这两个词值得细细揣摩哈,验证是指通过提供客观证据对规定要求已得到满足的认证。确认是指满足预期用途。
  3. 整合其他技术

更多的研究方向:

  • MT的理论方向
  • 教育以及训练(这个没太理解,原文中是Teaching and Training)
  • 覆盖率和可信度的新指标
  • 用户终端(End-user)测试
  • 众包测试
  • 大数据

测试大数据分析软件

  • 敏捷开发

    例如 数据库的敏捷测试

有什么错误希望大家批评指正哈,啊啊啊,这篇文献短短续续看了好久,写的太好了!

猜你喜欢

转载自blog.csdn.net/nicezheng_1995/article/details/80952621
今日推荐