cobertura覆盖率测试工具

大小:4.19M 类别:
  • 编程其它

官方安全无插件纠错

  • 更新时间2023-08-10
  • 版本v2.1.1
  • 系统Pc
  • 语言简体中文
Cobertura是一种开源的代码覆盖率工具,用于衡量软件测试中代码的覆盖程度。它能够分析和报告测试套件对源代码的覆盖情况,帮助开发人员确定哪些部分的代码已经被测试覆盖,哪些部分还未经过充分的测试。 Cobertura工具使用Java字节码分析技术,能够跟踪代码执行过程中每个分支、条件和方法调用的覆盖情况。它通过在代码中插入特定的计数器和跟踪器来收集覆盖率信息,然后生成详细的报告,显示每个类、方法和代码行的覆盖率统计数据。 在测试过程中,Cobertura可以与各种测试框架(如JUnit、TestNG等)和构建工具(如Ant、Maven等)集成使用。它可以在编译期或运行期执行测试,并收集覆盖率数据。生成的报告通常以HTML格式呈现,提供了直观、易于理解的覆盖率统计和可视化展示。 通过使用cobertura覆盖率测试工具,开发人员可以评估测试套件的质量和完整性,找出代码中未被覆盖的部分,进而改进测试策略、增强测试用例的覆盖范围,提高软件质量和稳定性。此外,Cobertura还支持与持续集成工具集成,提供覆盖率报告的历史记录和趋势分析,帮助团队进行质量控制和性能优化。

什么是代码覆盖率?

代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行。

为什么要测量代码覆盖率?

众所周知,测试可以提高软件版本的质量和可预测性。但是,你知道你的单元测试甚至是你的功能测试实际测试代码的效果如何吗?是否还需要更多的测试?
这些是代码覆盖率可以试图回答的问题。总之,出于以下原因我们需要测量代码覆盖率:
● 了解我们的测试用例对源代码的测试效果
● 了解我们是否进行了足够的测试
● 在软件的整个生命周期内保持测试质量
注:代码覆盖率不是灵丹妙药,覆盖率测量不能替代良好的代码审查和优秀的编程实践。
通常,我们应该采用合理的覆盖目标,力求在代码覆盖率在所有模块中实现均匀覆盖,而不是只看最终数字的是否高到令人满意。
举例:假设代码覆盖率只在某一些模块代码覆盖率很高,但在一些关键模块并没有足够的测试用例覆盖,那样虽然代码覆盖率很高,但并不能说明产品质量就很高。

cobertura覆盖率测试工具功能

确认遗漏的测试
利用 Cobertura 报告,可以找出代码中未测试的部分并针对它们编写测试。例如,图 3 显示 Jaxen 需要进行一些测试,运用 name() 函数对文字节点、注释节点、处理指令节点、属性节点和名称空间节点进行测试。
(几乎)不留下任何未测试的代码
是否有一些可以测试但不应测试的内容?这取决于您问的是谁。在 JUnit FAQ 中,J. B. Rainsberger 写到“一般的看法是:如果 自身 不会出问题,那么它会因为太简单而不会出问题。第一个例子是 getX() 方法。假定 getX() 方法只提供某一实例变量的值。在这种情况下,除非编译器或者解释器出了问题,否则 getX() 是不会出问题的。因此,不用测试 getX(),测试它不会带来任何好处。对于 setX() 方法来说也是如此,不过,如果 setX() 方法确实要进行任何参数验证,或者说确实有副作用,那么还是有必要对其进行测试。”
阅读 Cobertura 输出
我们首先查看生成的 Cobertura 输出。图 1 显示了对 Jaxen 测试包运行 Cobertura 生成的报告。从该报告中,可以看到从很好(在 org.jaxen.expr.iter 包中几乎是 100%)到极差(在 org.jaxen.dom.html 中完全没有覆盖)的覆盖率结果。
Cobertura 通过被测试的行数和被测试的分支数来计算覆盖率。第一次测试时,两种测试方法之间的差别并不是很重要。Cobertura 还为类计算平均 McCabe 复杂度。
可以深入挖掘 HTML 报告,了解特定包或者类的覆盖率。图 2 显示了 org.jaxen.function 包的覆盖率统计。在这个包中,覆盖率的范围从 SumFunction 类的 100% 到 IdFunction 类的仅为 5%。
进一步深入到单独的类中,具体查看哪一行代码没有测试到。图 3 显示了 NameFunction 类中的部分覆盖率。最左边一栏显示行号。后一栏显示了执行测试时这一行被执行的次数。可以看出,第 112 行被执行了 100 次,第 114 行被执行了 28 次。用红色突出显示的那些行则根本没有测试到。这个报告表明,虽然从总体上说该方法被测试到了,但实际上还有许多分支没有测试到。

展开内容

类似软件

  • Infragistics Ultimate软件开发工具

    9.1/2.44G

    Infragistics Ultimate是由国外精心研发的一款非常专业,功能强大易用的web设计编程开发程序应用。也是一款面向所有UX设计师和开发人员基础设施UI控件和工具的最佳解决方案。

    查看
  • XmlToAccess官方版

    9.1/6.02M

    XmlToAccess官方版是一款小巧但实用的XML数据导入Access数据库工具。拥有向导和命令行两种操作模式,能够自动匹配表和字段,并且支持定时自动导入功能。向导模式更为简单易懂,命令行模式更为高效,能够快捷的将XML数据导入Access数据库。并且支持定时自动导入功能,轻松

    查看
  • ASP.NET Maker 2019

    9.1/41.97M

    ASP.NET Maker 2019是一款功能强大的ASP.NET自动化代码生成工具。它将生成一个列表页面,添加/copypage,查看页面,编辑页面,删除页面和搜索页面所有链接的upproperly。

    查看
  • junit4 jar包官方版

    9.0/1.6M

    junit4 jar包官方版是junit框架中的第四代,也是最新的一代,同样的也是有史以来最大改进的一代,其主要的目的就是利用java5的Annotation特性简化测试用例的编写,让用户能够快速的完成测试工作,多数的Java开发环境已经继承了我们的junit作为单元测试的工具,

    查看

网友评论

0人参与,0条评论
  • 评论需审核后才能显示

同类排行

  • zprotect(软件加壳工具)

    8.8/8.55M

    zprotect(软件加壳工具)是一款非常优秀的应用程序加壳软件能够轻松的保护用户的软件免受他人的恶意破解,拥有的多项革命性创新技术,将用户的软件保护的非常不错,减少因为盗版给用户带来众多经济损失,使许多独立开发人员保护自身利益的不二神器。

    查看
  • Electron(桌面开发工具)

    8.8/1.86G

    Electron是一款Github上的跨平台桌面应用开发工具,支持用户使用最新的Web技术进行桌面应用的开发工作,目前不仅大量的小公司在用,一些比较大的知名公司也在使用这款强大的开发工具。

    查看
  • Docker Desktop for Windows官方版

    8.9/499.59M

    一个开源的应用容器引擎

    查看
  • OpenGL ES 2.0库

    9.1/854K

    OpenGL ES 2.0是OpenGL三维图形API的子集,针对手机、PAD和游戏主机等嵌入式设备设计,而小编带来的OpenGL ES 2.0是其2.0版本,这一版本主要针对可编程管线硬件,参照OpenGL 2.0的规范定义的。

    查看
  • Subclipse(Eclipse SVN插件)

    9.1/2.96M

    Eclipse是一个非常优秀的开源IDE,目前支持C/C++、JAVA、JS、PHP等语言的程序编写,Subclipse是一个针对Eclipse打造的框架和插件服务,用于通过插件组件构建开发环境。

    查看
  • small basic官方版

    8.9/6.14M

    small basic官方版是一款微软推出的编程语言的最基本概念,对于初学者来说是最容易入手的编程语言,这款编程语言最早是针对儿童推出的免费编程语言,不想Scratch和Alice,这款工具本质上讲是一个简略版本的BASIC语言,该语言脱胎于传统的BASIC语言,但是却基于微软的

    查看
  • 易用API伴侣

    9.0/7.14M

    易用api伴侣最新版是一款全新的非常实用的帮助我们的用户进行易语言开发的工具,拥有超多的易语言编程实例和数据,以及一些函数的使用方法等等,能够让我们的用户用最简单的方式完成易语言的学习,如果用户想要更好的进行易语言的开发,那么这款软件必不可少。

    查看
  • YALMIP工具箱

    9.0/1.22M

    YALMIP官方版是一款用于求解线性规划、整数规划、非线性规划、混合规划的MATLAB工具箱,它允许用户以MATLAB语法的方式轻松构建和解决各种类型的优化问题,包括线性规划、整数规划、非线性规划和混合整数非线性规划等等!

    查看
  • Cmd Markdown编辑器

    9.1/20.72M

    Cmd Markdown是一款独特而强大的Markdown编辑工具。对于Markdown大家一定不陌生了,但是每种编辑器都有它的优缺点。但是这款工具可以说已经做到了尽善尽美了。

    查看
  • swix(SWF编辑器)

    9.1/625K

    swix是一款强大的SWF编辑工具,也是一款可调试、更新swf文件的XML编辑器。它可将SWF文件反编译为SWIX的XML格式,并支持全系列的Flash格式。swix 支持语法高亮,当用户代码输入错误的时候系统就会以很明显的色彩来通知用户。

    查看
  • wordpress(php网站构建器)

    9.1/34.87M

    wordpress是一款开源博客工具和CMS发布平台,主要用于创建和管理网站和博客,通过它用户们可灵活部署网站,加上其友好的界面和强大的功能扩展性,成为全球最受欢迎的网站构建工具之一!

    查看
  • Telerik Collection for .NET 2023(.Net开发插件)

    9.1/3.36G

    Telerik(.Net开发插件)是一款著名的.NET Web第三方控件,包含在线HTML编辑,文本输入,数据视图。Telerik 专注于微软.Net平台的表示层与内容管理控件,提供高度稳定性和丰富性能的组件产品DevCraft,并可应用在非常严格的环境中,创建数据丰富的Web应

    查看
  • sencha touch(移动Web应用开发框架)官方版

    8.9/55.38M

    sencha touch官方版是一款适用于最前沿的Touch Web的移动开发框架,该框架是沐浴前世界上第一个基于HTML5开发的Mobile App框架,框架基于javascript开发,所以如果用户是一位使用java进行Web应用开发的程序员,那么不费吹灰之力即可完全掌握用法

    查看
  • layui开源模块化前端UI框架

    8.9/359K

    layui框架是目前国内最优秀的一款经典模块化前段框架,也是一款带着浓烈情怀的国产前端UI框架,这款框架深受前段开发人员的青睐,追求极简,又不失丰盈的内在,是一款非常实用的轻量级前端开发框架。

    查看
  • 山外多功能调试助手

    9.0/17.95M

    山外多功能调试助手是一款功能齐全的调试软件,让我们的用户可以轻松简单的进行各种调试工作,用户打开摄像头助手调试时没有图像,每次打开摄像头都需要打开一大堆串口助手非常麻烦,现在有了这款山外多功能调试助手,你就可以轻松完成需要解决的调试问题。

    查看