软件突变测试的原理,变异测试小记

引言

测试用例设计是软件测试中的核心问题。在实践的过程中,一般采用业务流程覆盖、数据流覆盖、语句覆盖等作为测试充分性准则进行测试用例的设计。而变异测试则提供了基于缺陷的对测试充分性进行度量的角度,针对测试用例集的充分性进行评估和改进。

定义

根据《中国软件测试标准规范》(以下简称规范)的定义,变异测试(在规范中称为程序变异,以下二者互用)是一种差错驱动测试,是为了查出被测软件在做过其他测试后还剩余一些的小差错。本方法一般用变异测试工具动态进行,属于动态测试。下面就变异测试的原理来阐明其定义。

原理

首先,具体来说,测试人员首先根据被测程序特征设计变异算子(mutation operator),变异算子一般在符合语法前提下仅对被测程序作微小改动。然后对被测程序应用变异算子可生成大量变异体(mutant),在识别出等价变异体(equivalent mutant)后,若已有测试用例不能杀除所有非等价变异体,则需要额外设计新的测试用例,并添加到测试用例集中,以提高测试充分性。流程如下图:

变异测试过程

目前,可以应用在java上的工具有:MuJava、MuClipse(均是学术研究的原型工具,尚未发现可用于企业生产开发的工具)。但在这段时间的使用中由于缺少extendedOJ.jar未能成功运行。而参考官方文档说明,其使用也十分不友好。变异测试从理论到实际应用,还有一段路。(当然,也可能无路可走。)

研究框架

抛开企业的生产开发,变异测试的研究方面如下图所示:

c9ff2589ad3e

变异测试研究框架

小结

变异测试作为一种面向软件缺陷的测试技术,目前得到了学术研究人员的关注,也取得了大量研究成果。作为一名测试人员,期待其未来的生产应用。

关于变异测试更详细的介绍可以参考:

[1]陈 翔,顾 庆;变异测试:原理、优化和应用;计算机科学与探索,2012-06

[2]ncsu: MuClipse: Mutation Testing for Eclipse ,www.csc.ncsu.edu

相关资源:宏达婚庆行业管理系统破解版_婚庆管理系统-管理软件其他资源-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月16日
下一篇 2021年6月16日

相关推荐