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

展开内容

类似软件

  • Highlight(代码高亮显示)

    9.1/8.46M

    代码高亮显示工具

    查看
  • redmine(web项目管理软件)

    9.0/4.61M

    一套跨平台的项目管理系统

    查看
  • Apkdb反编译工具

    9.5/65.68M

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

    查看
  • zookeeperr(分布式应用程序协调服务)

    9.0/22.38M

    zookeeper是一个开源的分布式应用程序协调服务,是Google的chubby一个开源的实现,是Hadoop和Hbase的重要组成部件。除了能够为用户的分布式应用提供一致性的服务,还能够进行配置维护、域名服务、分布式同步等等功能,对于开发人员来说,这款软件是一个非常高效可靠的

    查看

网友评论

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

同类排行

  • Apache Tomcat

    9.1/11.92M

    Apache Tomcat作为使用频率最高的tomcat版本之一,许多开发者都坚持在使用tomcat版本进行编程开发使用。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、S

    查看
  • Docker Desktop for Windows官方版

    8.9/499.59M

    一个开源的应用容器引擎

    查看
  • 易用API伴侣

    9.0/7.14M

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

    查看
  • CiteSpace官方版

    8.9/103.62M

    CiteSpace官方版是一款和Java相关的可视化文献分析软件,它能够显示一个学科或知识域在一定时期发展的趋势与动向,形成若干研究前沿领域的演进历程!并且,citespace能很好的帮助大家从众多的数据中如何找到自己所需要的,从而解决哪些文献是具有开创性和标志性的问题,有

    查看
  • composer(PHP依赖管理工具)

    9.0/1.18M

    使用PHP进行开发需要许多工具来帮助用户来进行管理代码,这款composer就是一款非常不错的全球知名的PHP依赖管理工具,是许多网页开发用户需要用到的管理工具。软件允许用户申明项目所以来的代码库,然后他就会在你的项目中帮助你安装他们,比如一些框架,像是laravel这一类的PH

    查看
  • hudson war(持续集成工具)

    9.0/29.82M

    hudson电脑版是一款非常做持续集成必不可少的工具,是现在著名的Jenkins的前身,主要用来让我们的用户持续、自动的构建项目还能够构建自动化测试项目,软件基于java开发,能够用于监控程序的重复工作,同时hudson电脑版也是一款开源软件项目,能够为用户提供一个开放易用的软件

    查看
  • Pestudio(编程辅助软件)

    9.1/1.1M

    Pestudio官方版是一款绿色小巧、功能强大、使用方便的编程辅助应用程序代码验证工具。其主要功能是帮助用户一键获取并验证应用程序的相关信息,如:是否具备64位处理能力、是否过时、是否存在潜在安全风险、验证应用所需使用的.Net信息、验证MD5等等!

    查看
  • Flash Programmer(芯片烧录软件)

    10.0/50.38M

    Flash Programmer是一款用于编程和烧录微控制器芯片(如Arduino板上的ATmega系列芯片)的软件。它可以在Windows操作系统上运行,支持多种编程语言和多种芯片型号,具有简单易用、功能强大等特点。

    查看
  • c32asm(反编汇工具)

    9.5/1.26M

    c32asm中文版是一款强大且小巧的反汇编工具,具有反汇编模式和十六进制编辑模式。其提供hex文件编辑功能,还能够直接修改软件的内部代码,实现各种反编译效果。

    查看
  • Egret Conversion(Egret项目转换工具)

    9.0/12.21M

    Egret Conversion电脑版是一款能够快速的将用户现有的Flash项目转换成Egret HTML5项目的强大工具。软件由著名的引擎开发公司白鹭时代推出,是非常强大的一款国产工具,界面友好易用,无需其他辅助工具,功能强大可扩展,支持AS3等各种复杂的语法特性,涵盖了大部分

    查看
  • android ndk开发工具(Native Development Kit)

    9.0/628.62M

    android ndk开发工具又叫:ndk、Native Development Kit。是一款专门为安卓系统设计的安卓开发环境。主要作用是为用户开发安卓原生应用起到提供框架的作用。

    查看
  • memcached 64 windows

    9.0/372K

    memcached是一个高性能的分布式内存缓存系统,用于动态web应用,主要的作用则是帮助开发人员减轻数据库负载,让一些独立开发人员能够使用低配置环境也能够开发一些动态web应用,通过在内存中缓存数据和对象,开发人员的应用就会减少读取数据库的次数,从而提高动态、数据库驱动网站的速

    查看
  • jquery api中文文档

    9.1/10.32M

    jquery api是一个专门对jQuery进行说明帮助的文档。也就是我们常常用到的“使用说明书”了。那么jquery是什么?首先jQuery里面的文档非常的丰富,主要是因为其轻量级的特性,所以里面的代码内容并不是很复杂,随着新版本的发布,很快就被翻译成了多国语言。

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

    9.0/756.21M

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

    查看
  • OpenCV跨平台视觉库

    9.0/91.06M

    OpenCV是一款就BSD许可的开源发行的跨平台计算机视觉库,能够运行在各种用户熟悉的平台上,比如Linux、windows、Android、mac等等,因为其属于轻量级且高效的缘故,再加上有C函数和少量C++构成,软件同时提供了Python、Ruby、MATLAB等语言的接口,

    查看