PIT和TestNG突变测试简介

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统架构的演变 -----自 罗文浩

转自&#xff1a;https://my.oschina.net/lwhmdj0823/blog/617713版权声明&#xff1a;罗文浩所有摘要: 一个成熟的大型网站&#xff08;如淘宝、京东等&#xff09;的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#x…

前端请求接口post_前端如何优雅地模拟接口请求?(给你的代码加点小意外)

前言&#xff1a;作为一名前端开发程序猿&#xff0c;每天都被产品经理催着开发&#xff0c;项目一启动&#xff0c;产品就过来了。嘘寒问暖&#xff1a;大胸弟&#xff0c;你啥时开始做啊&#xff1f;一般我们都会直接告诉TA&#xff0c;你先找接口解决数据问题。而我们也会经…

java mongodb 返回所有field_JAVA高级之反射

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;今天跟大家分享JAVA高级之反射的知识。一、什么是反射反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所以属性和方法&#xff1b;对于…

Linux入门笔记——cal、date、free、clear、history、man、whatis、uname

1、cal 显示日历2、date 显示系统当前的日期和时间3、df查看磁盘剩余空间的数量&#xff0c;常用参数 -h &#xff08;human&#xff09;人性化显示内容4、free显示空闲内存的数量&#xff0c;常用参数 -h &#xff08;human&#xff09;人性化显示内容5、clear清除控制终端显示…

Ueditor的配置及使用

Ueditor官网&#xff1a;http://ueditor.baidu.com/website/ &#xff08;项目需要JSP版本&#xff1a;UTF-8版&#xff09; 1.配置 <script type"text/javascript" charset"utf-8">window.UEDITOR_HOME_URL "${ctx}/assets/plugins/uedi…

努比亚z17s刷原生安卓_电脑运行手机APP,不会没关系,我推荐你使用显卡服务器运行安卓模拟器...

很多人都想用电脑端运行手机APP&#xff0c;但是又不知道怎么操作。纵横170yun小编推荐大家使用显卡服务器&#xff0c;在显卡服务器上运行安卓模拟器。让你轻轻松松在电脑端运行手机APP&#xff0c;甚至还可以多开噢 。如果你的电脑没有显卡&#xff0c;也没有关系&#xff0c…

Linux入门笔记——文件操作命令1

pwd Print name of current working directory&#xff08;打印出当前工作目录名&#xff09; cd Change directory&#xff08;更改目录&#xff09;例子&#xff1a;cd 更改工作目录到你的家目录&#xff08;和cd ~命令的运行结果是等同的 &#xff09;cd - 更…

使用JacpFX和JavaFX2构建富客户端

创建快速且可扩展的桌面客户端始终是一个挑战&#xff0c;特别是在处理大量数据和长时间运行的任务时。 尽管Eclipse RCP和Netbeans RCP是已建立的平台&#xff0c;但其想法是建立一个轻量级的框架来异步处理组件&#xff0c;类似于Web组件。 开发人员在线程主题上的工作应较少…

lob移表空间 oracle_Oracle数据库(1)Oracle体系结构概述(一)

Oracle数据库的体系结构主要包括&#xff1a;物理存储结构、逻辑存储结构、内存结构和实例进程结构。了解了Oracle的体系结构&#xff0c;就可以对Oracle数据库有一个整体认识&#xff0c;这样有利于后续Oracle的学习。下面我们分别来了解逻辑存储结构、物理存储结构、内存结构…

java 对象的上转型对象(父类)

Example5_10.java class 类人猿 {void crySpeak(String s) {System.out.println(s); } } class People extends 类人猿 {void computer(int a,int b) { int ca*b;System.out.println(c); }void crySpeak(String s) {System.out.println("***"s"***"); }…

手机mstsc远程工具_远程桌面连接,只需3步,轻松远程操控电脑!

远程桌面的好处远程桌面有很多好处的1.对于运维技术人员来说&#xff0c;可以随时随地管理远程主机&#xff0c;查看系统信息和硬件信息等系统性能诊断&#xff0c;远程应用管理内存、CPU等敏感信息报警提醒&#xff0c;对远程主机的一切尽收眼2.对于客户服务来说&#xff0c;可…

qbytearry有数据上限吗_金仕达大数据开发岗位面试题

金仕达-上海(1)自我介绍(2)在离线数仓&#xff0c;实时数仓中担任的角色是什么&#xff0c;介绍项目&#xff1f;数据量有多大&#xff1f;(3)实时的指标和离线指标怎么消除掉&#xff1f;有没有必要一致&#xff1f;(4)Flink上有多少个指标&#xff0c;一个指标一个jar包吗&am…

BZOJ 1012 单调队列+二分

思路&#xff1a; 维护一个单减的序列 序号是单增的 每回二分查找第一个比询问的大的值 我手懒 用得lower_bound //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; #define int long long int m,mod,top,jy,ans,tot; char ch[3]; st…

Linux入门笔记——cat、sort、uniq、wc、head、tail、tee

cat &#xff0d; 连接文件 cat 命令读取一个或多个文件&#xff0c;然后复制它们到标准输出。你可以使用 cat 来显示 文件而没有分页cat 经常被用来显示简短的文本文件。案例 意义 cat ls-output.txt 读取文件标准输出 cat movie.mpeg.0* > movie.mpeg 连接文件&#x…

fir.im Log Guru 正式开源,快速找到 iOS 应用无法安装的原因

很开心的宣布 Log Guru 正式开源&#xff01; Log Guru&#xff0c;是 fir.im 开发团队创造的小轮子&#xff0c;用在 Mac 电脑上的日志获取&#xff0c;Github 地址&#xff1a;FIRHQ/LogGuru. Log Guru 使用方法 当有测试者反馈应用装不上的时候&#xff0c;将其测试设备连接…

python求解三元一次方程_北师大版八上数学5.2 求解二元一次方程组 知识点微课精讲...

知识点总结代入消元法代入消元法的实质是将二元一次方程组中的某一个方程进行未知数的分离&#xff0c;即将该方程进行变换&#xff0c;完整分离出一个独立的未知数&#xff0c;而这个未知数将用含有另一个未知数的式子来表示。设某二元一次方程组为&#xff1a;将第(1)式进行变…

Java 7:完整的invokedynamic示例

我当前的Java 7系列中的另一个博客条目。 这次&#xff0c;它处理的是invokedynamic&#xff0c;这是JVM上用于方法调用的新字节码指令。 invokedynamic指令允许在呼叫站点和呼叫接收者之间进行动态链接。 这意味着您可以将正在执行方法调用的类链接到在运行时正在接收调用的类…

VC6兼容性及打开文件崩溃问题解决

VC6虽然老&#xff0c;但是一些工程还非得用它打开&#xff0c;没办法…… 今天偶然用到&#xff0c;因为新装了系统&#xff0c;之前的问题又要重新解决一遍 在这记录下解决过程&#xff0c;方便以后查阅&#xff1a; 一.兼容问题&#xff1a; XP以上windows系统打开VC6时可能…

Linux入门笔记——echo

echo Display a line of text(显示一行文本)这个命令的作用相当简单明了。传递到 echo 命令的任一个参数都会在&#xff08;屏幕上&#xff09;显示出来。 小插曲&#xff1a; 每当你输入一个命令&#xff0c;然后按下 enter 键后&#xff0c;bash 会在执行你的命令之前对输入 …

dataframe 空值替换为0_Python数据分析:Pandas之DataFrame

内容目录 DataFrame简介DataFrame创建方式DataFrame索引和切片DataFrame属性DataFrame级联与合并DataFrame基本操作DataFrame分组聚合操作DataFrame数据透视与交叉表1 DataFrame简介 我们在上次课中讲到了Pandas的Series结构,还没看的点这里 ailsa:python数据分析:Pandas之S…