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 次。用红色突出显示的那些行则根本没有测试到。这个报告表明,虽然从总体上说该方法被测试到了,但实际上还有许多分支没有测试到。

展开内容

类似软件

  • Cmd Markdown编辑器

    9.1/20.72M

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

  • DialogBlocks(资源编辑器)

    9.1/7.49M

    DialogBlocks是由Anthemion推出的一款功能强大、操作简单实用性强并基于sizer的资源编辑器。DialogBlocks可以非常快速的生成对话框、向导以及框架。

  • 易语言编程助手正式版

    9.0/25.55M

    易语言大家都知道,是国产的一款能够使用中文进行开发的语言,这款易语言助手电脑版是一些使用易语言开发的用户制作的一款能够让我们的用户更好的进行易语言的学习和编程的软件,你可以通过这款助手查看各种代码,还有许多易语言开发者们自己通过时间为大家带来的例程。

  • 游戏引擎CryEngine 5.7

    9.0/81.67M

    CryEngine 5是一款强大的游戏引擎,能够为我们的用户带来非常棒的游戏制作体验,用户可以利用这款软件进行虚拟现实(VR)的游戏制作,也能够实现其他的游戏开发功能,用户可以选择付费使用,也可以选择免费使用,当然付费和不付费所获得的功能是不一样的,最主要的就是开发的游戏如果用于

网友评论

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

同类排行

  • Apkdb反编译工具

    9.5/65.68M

    Apkdb官方版是一款操作简单、界面简洁、十分实用的一款安卓apk反编译工具,除了能直接反编译修改apk文件以外,Apkdb还是个工具集合箱,内部集合了当今最强悍,最犀利的APK及Dex文件编译工具。

  • DeDeDark(Delphi反编译工具)

    9.3/5.34M

    DeDeDark(Delphi反编译工具)是一款十分实用的编程工具,它有着简体中文的操作界面,能够支持用户快速对delphi进行反编译处理,处理后,所有的目标dfm文件,可以进行编辑,但源代码还是会以asm形式显示。

  • Subclipse(Eclipse SVN插件)

    9.1/2.96M

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

  • JSONBuddy(JSON编辑器)

    9.1/26.38M

    JSONBuddy官方版是一款功能强大的JSON数据交换格式编辑器,JSONBuddy基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

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

    9.1/3.36G

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

  • Flash Programmer(芯片烧录软件)

    10.0/50.38M

    一款用于编程和烧录微控制器芯片(如Arduino板上的ATmega系列芯片)的软件。

  • hibernate jar包

    9.0/33.09M

    在开发Java程序时,用户会遇到许多仅凭Java不能够完成的开发工作,这个hibernate是非常不错的开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,能够将POJO和数据库表建立映射关系,是一个非常不错的全自动orm框架。

  • xmlwriter(xml编辑器)

    9.1/4.74M

    xmlwriter是一款专业的XML编辑工具,如果你是刚接触XML,或者不熟练,那么xmlwriter就非常的适合你哦,xmlwriter拥有一个直观的编辑界面,还具有书签功能,自动查找并替代。

  • visual paradigm(UML建模和CASE工具)

    9.0/756.21M

    visual paradigm电脑版是一款功能全面UML建模和CASE工具,软件包括设计共享、数据库设计和线框图等项目管理工具和模型,你可以对团队的能力进行预测,为开发人员提供了更快、更 好、花费更少的高质量程序开发方案,大大简化开发流程。

  • BowPad(代码文字编辑工具)

    9.0/2.41M

    非常独特的代码文字编辑器工具

  • Virtuous Ten Studio(apk反编译工具)

    9.0/23.75M

    Virtuous Ten Studio电脑版是一款来自国外的APK反编译软件,在学习安卓软件开发的时候,有的时候你会很好奇别人那些精美的动画和精致的布局都是怎么实现的,其实你可以通过Virtuous Ten Studio电脑版这种apk反编译工具去查看应用代码。

  • groovy语言

    9.0/48.49M

    groovy是一种基于JVM的开发语言,也是一种功能强大的可选类型和动态语言,具有静态类型和静态编译功能,适用于java品台,旨在通过简洁,熟悉且易于学习的语法提高开发人员的工作效率,该语言还结合了Python、Ruby和Smalltalk的许多强大的特性。

  • 白鹭游戏引擎Egret Engine

    9.0/22.04M

    完整的HTML5游戏开发的解决方案

  • signtool GUI(数字签名软件)

    9.0/1.97M

    signtool GUI中文版是一款强大的软件数字签名工具,文件签名是一件重复繁琐,有浪费时间,而微软的代码签名工具signcode又只能一次签一个文件完全没什么效果。

  • Caffe Windows

    9.1/9.31M

    Caffe全称Convolutional Architecture for Fast Feature Embedding,Caffe是一个开源的深度学习框架,由伯克利人工智能研究实验室(BAIR)开发。