什么是突变测试?

最近,我反复提到“ 突变测试 ”一词。 因为可以说这种方法能够以超出代码覆盖范围的方式检测测试安全网的空白,所以我花了一些时间来追赶这个话题,然后尝试一下。 这篇文章总结了我的发现,作为对该主题的快速介绍。 什么是变异测试? 变异测试评估现有软件测试的质量。 想法是以较小的方式修改(变异)测试所覆盖的代码,并检查现有测试集是否将检测并拒绝更改[MUTTES]。 如果不符合,则意味着测试不...
摘要由CSDN通过智能技术生成

最近,我反复提到“ 突变测试 ”一词。 因为可以说这种方法能够以超出代码覆盖范围的方式检测测试安全网的空白,所以我花了一些时间来追赶这个话题,然后尝试一下。 这篇文章总结了我的发现,作为对该主题的快速介绍。

什么是变异测试?

变异测试评估现有软件测试的质量。 想法是以较小的方式修改(变异)测试所覆盖的代码,并检查现有测试集是否将检测并拒绝更改[MUTTES]。 如果不符合,则意味着测试不符合代码的复杂性,并且未测试其一个或多个方面。

在Java中,将变量视为与原始代码相比具有单个修改的附加类。 可能是如下所示的if子句中逻辑运算符的更改。

if( a && b ) {...} => if( a || b ) {...}

通过现有测试检测并拒绝这种修饰称为杀死突变体。 当然,有了完善的测试套件,没有任何类别的突变体能够生存。 但是创建所有可能的变体的成本很高,这就是为什么在现实世界中手动执行此方法不可行的原因。

幸运的是,有一些工具可以即时创建突变体,并针对每个突变体自动运行所有测试。 变异创建基于一组所谓的变异算子 ,这些变异算子可以揭示典型的编程错误。 在上面的示例中将采用的一个称为条件突变算子

使用JUnit进行测试

使用Junit书本测试 使用JUnit进行测试是Java开发人员可以学习的最有价值的技能之一。 无论您的背景是什么,无论您是只是想建立一个安全网以减少桌面应用程序的性能下降,还是要基于健壮且可重用的组件来提高服务器端的可靠性,都需要进行单元测试。

弗兰克(Frank)写了一本书,为使用JUnit进行测试的基本知识提供了深刻的切入点,并为您准备了与测试有关的日常工作挑战做好了准备。

学到更多…

它与代码覆盖率有何关系?

正如Martin Fowler所说的那

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值