pit和systick_PIT和TestNG突变测试简介

PIT是一个用于Java的突变测试系统,它通过修改字节码进行测试有效性验证。文章介绍了如何使用PITest-maven插件进行基于TestNG的测试,并指出即使拥有100%行覆盖率,PIT仍能发现未被充分测试的边界条件。
摘要由CSDN通过智能技术生成

pit和systick

变异测试是一种技术,它可以发现测试未涵盖代码的哪些部分。 它类似于代码覆盖范围 ,但变异测试不限于在测试期间执行给定行的事实。 这个想法是修改生产代码(引入突变),这应该改变其行为(产生不同的结果)并导致单元测试失败。 缺少故障可能表明给定零件没有被测试所覆盖。 突变测试的想法已经很老了 ,但是并不受欢迎。 尽管我在测试方面有相当的经验,但我最近发现它是在审查有关测试的新书的Beta版中看到的

PIT是“用于Java的基于快速字节码的突变测试系统,可以测试单元测试的有效性”。 这是一个非常年轻的项目,但很有希望。 它提供了一组变异运算符 ,这些变异运算符可以修改条件语句,数学运算,返回值和方法调用。

从最近发布的版本0.25开始,PIT(以实验方式)支持基于TestNG的测试(基于JUnit的测试除外)。 要从Maven使用它,需要将pitest-maven插件添加到pom.xml:

<plugin>
    <plugin>
    <groupid>org.pitest</groupid>
    <artifactid>pitest-maven</artifactid>
    <version>0.25</version>
</plugin>
</plugin>

在许多情况下,这就足够了。 默认情况下,inScopeClasses(用于运行的可变类和测试)和targetClasses(仅用于变异的候选对象)默认使用项目groupId,通常可以省略。 插件配置中可以配置几个选项 。 “ mvn org.pitest:pitest-maven:mutationCoverage”执行修改后的测试并生成突变报告,默认情况下将其保存在target / pit-reports / yyMMddHHmm目录中。

指定类别的样本报告(单击放大)显示行覆盖率和突变覆盖率。 尽管100%的行覆盖率(背景为浅绿色的行),PIT发现测试数据集无法正确覆盖边界条件。

PIT报告样本

参考:来自Solid Soft博客的JCG合作伙伴 Marcin Zajaczkowski的PIT和TestNG突变测试简介


翻译自: https://www.javacodegeeks.com/2012/04/introduction-to-mutation-testing-with.html

pit和systick

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值