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

变异测试是一种差错驱动的动态测试方法,通过设计变异算子改变被测程序并生成变异体,评估测试用例集的充分性。本文介绍了变异测试的原理,包括熟练程序员假设和耦合效应假设,并探讨了其应用现状与挑战。
摘要由CSDN通过智能技术生成

引言

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

定义

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

原理

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

c9ff2589ad3e

变异测试流程图

除了可用于测试用例集的充分性评估,变异测试也可以通过采用变异缺陷来模拟被测软件的真实缺陷,从而对研究人员提出的测试方法的有效性进行辅助评估。根据Andrews等的《Is mutation an appropriate tool for testing experiments?》的研究表明变异算子生成的变异缺陷与真实缺陷在有效性评估中效果相似。这就是为什么说变异测试是基于缺陷的、差错驱动的测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值