metamorphic testing 蜕变测试介绍

版权声明:如需转载或引用,请注明出处。 https://blog.csdn.net/weixin_39278265/article/details/85372884

前言

可能会用到蜕变测试(metamorphic testing),所以这里就先记录一下吧。

此外,我认为自己的介绍是不完整的, 不全面的,有时候,我写博客只是为了粗略地记录一下自己需要记录的东西,加上写博客本身是一件耗费时间的工作,所以很难写的非常专业或者详细具体。

但是我写文章一直追求的都是:条理清晰,内容详尽。所以,尽量往这方面努力。

而且,以后应该不断扩充。不断修改自己的文章。

写作时间:2018年12月30日10:01:34

蜕变测试(metamorphic testing)

1 蜕变测试的一个例子

[1] 蜕变测试 https://baike.baidu.com/item/蜕变测试/22723379?fr=aladdin

在这里插入图片描述

百度还是可以的,我感觉这里就已经介绍的很清楚了。

不过这样看来,蜕变测试虽然可以解决oracle problem,但是本身也是需要程序员去理解这个程序是干什么的,也需要指定一些相应的规约。

2 研究论文

[2] 董国伟, 徐宝文, 陈林,等. 蜕变测试技术综述[J]. 计算机科学与探索, 2009, 3(2):130-143.

这篇文章应该是比较详细的综述了。

文中的一些重要内容记录一下:

  • 软件测试是一种重要的、不可缺少的软件质量保证技术,用于发现和纠正软件中存在的缺陷和错误,但
    在很多情况下待测程序的预期输出难以确定。蜕变测试技术通过检查程序的多个执行结果之间的关系来测试
    程序,可以有效地解决上述问题。

这里就说出了蜕变测试:原来是用来检查程序的多个执行结果之间的关系来测试程序,有效解决待测程序的预期输出难以确定(从而难以测试)的问题。

2.1 蜕变测试定义

在这里插入图片描述

蜕变测试可以帮助解决oracle problem。

在想是谁提出的,感觉这个人一定非常强。

2.2 蜕变测试发展

在这里插入图片描述

1)蜕变测试通常和基于路径的分析技术结合进行;
2)还可以和全局符号执行结合,好有意思。

在这里插入图片描述

有一些局限性。
1)缺少实用的蜕变关系构造方法。

2.3 蜕变测试的数学定义

在这里插入图片描述

1)蜕变测试是澳大利亚的斯威本科大学提出来的。
2)蜕变测试需要

  • 程序执行结果之间应当满足的关系属于程序的功能属性,可以根据程序的规约推导出来。假如函数式程序P用来计算函数f,那么f显然是P必需遵守的规约,判定程序正确性的关系可以从中推导出来。

意思就是:程序必须遵守的规约(功能属性),从这个规约出发,可以进行蜕变测试

2.4 蜕变测试流程图

在这里插入图片描述

总之蜕变测试感觉和MR(蜕变关系)很相关。

总结

先写到这里吧。
2019年1月1日16:21:45

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/85372884