覆盖率测试工具(coverage tool)

简介:
java:
  Emma:优点:1 开源软件;2 支持ANT TASK;Emma 是开源的,同时它对应用程序执行速度的影响非常小。
  缺点:1 ANT TASK的参数指定较弱,coverage参数需要追加配置文件。
  EMMA是一个免费且开源的Java代码覆盖率 测试工具,100%纯Java编写,不依赖与任何第三方库。和其他代码覆盖率测试工具不同,EMMA支持大型项目的团队开发,每个开发人员都可以从中受益。
  EMMA通过对Class文件进行增强以测试覆盖率,它提供了Offline和Fly两种模式,在Fly模式下,EMMA不改动编译后的Class文件,仅仅在Class文件被ClassLoader装载时才进行增强。【AOP技术】
  EMMA支持对类,方法,代码行和基本的分支语句的覆盖率测试,并提供了多种格式的报告,包括纯文本,HTML和XML,所有的报告都可以进行详细设置以获得定制报告。
  使用EMMA时,不需要获得源代码就可进行覆盖率测试,此外,EMMA还支持对整个jar文件测试。
  EMMA默认提供了对Ant的集成,通过扩展EMMA还可以提供对Maven和Eclipse的支持。
   EclEmma:
  EclEmma的出现弥补了 Emma 用户一个大的遗憾 ---- 缺乏图形界面以及对集成开发环境的支持。将 Eclipse 和 Emma 这两个在各自领域最为优秀的工具结合起来,这就是 EclEmma 为我们提供的。接下来,我们就要在后续章节中和读者朋友一起看看 EclEmma 为开发人员提供了什么。
   Cobertura:
  优点:1 开源软件;2 支持MARVEN
  缺点:1 可定制参数太少,UTF-8编码文件,直接挂掉,从文件的输出上来看,还是以xml,html生成为主。
  http://www.ibm.com/developerworks/cn/java/j-lo-eclemma/index.html 使用 EclEmma 进行覆盖测试
  2007 年 5 月 10 日;级别: 初级 ;甘 志 (ganzhi@cn.ibm.com), 软件工程师,  IBM 中国 软件开发中心实验室
  覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了 单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少 测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。本文将介绍一个优秀的开源 软件测试工具 EclEmma,它能够对由 Java 语言编写的程序进行覆盖测试,从而对程序运行的结果生成详尽的覆盖测试报告。
========================
linux+ c/c++ +gcc:
gcov/lcov:
http://ggcov.sourceforge.net
http://blog.csdn.net/livelylittlefish/article/details/6321861
http://blog.csdn.net/livelylittlefish/article/details/6321887

  1. gcov是什么?
  Gcov is GCC Coverage
  是一个测试代码覆盖率的工具
  是一个命令行方式的控制台程序
  伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖和分支覆盖测试;
  与程序概要分析工具(profiling tool,例如gprof)一起工作,可以估计程序中哪一段代码最耗时;
  注:程序概要分析工具是分析代码性能的工具。
  2. gcov能做什么?
  gcov可以统计
  每一行代码的执行频率
  实际上哪些代码确实被执行了
  每一段代码(section code)的耗时(执行时间)
  因此,gcov可以帮你优化代码,当然这个优化动作还是应该有开发者完成。
   1. Lcov是什么?
  是GCOV图形化的前端工具
  是Linux Test Project维护的开放源代码工具,最初被设计用来支持Linux内核覆盖率的度量
  基于Html输出,并生成一棵完整的HTML树
  输出包括概述、覆盖率百分比、图表,能快速浏览覆盖率数据
  支持大项目,提供三个级别的视图:目录视图、文件视图、源码视图
  ========================
  Python代码覆盖工具coverage.py介绍(http://nedbatchelder.com/code/coverage/)
  http://magustest.com/blog/whiteboxtesting/python-coverage-py/
  ========================
  JavaScript:
  JavaScript测试覆盖率检测工具JSCoverage
  ========================
  PHP:
  PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。
  单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。
  这个工具也可以被Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试,最后它还可以和Selenium整合来完成大型的自动化集成测试。
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
2月前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
70 1
|
3月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
110 6
|
2月前
|
设计模式 关系型数据库 测试技术
进阶技巧:提高单元测试覆盖率与代码质量
【10月更文挑战第14天】随着软件复杂性的不断增加,确保代码质量的重要性日益凸显。单元测试作为软件开发过程中的一个重要环节,对于提高代码质量、减少bug以及加快开发速度都有着不可替代的作用。本文将探讨如何优化单元测试以达到更高的测试覆盖率,并确保代码质量。我们将从编写有效的测试用例策略入手,讨论如何避免常见的测试陷阱,使用mocking工具模拟依赖项,以及如何重构难以测试的代码。
67 4
|
5月前
|
测试技术
单元测试策略问题之行覆盖率和分支覆盖率之间的问题如何解决
单元测试策略问题之行覆盖率和分支覆盖率之间的问题如何解决
176 7
|
4月前
|
Java 测试技术 API
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
|
5月前
|
测试技术 开发者
单元测试问题之为什么单测覆盖率高的项目模块更易于迭代演进
单元测试问题之为什么单测覆盖率高的项目模块更易于迭代演进
|
5月前
|
测试技术
codereview开发问题之CodeReview关注代码的测试覆盖率问题如何解决
codereview开发问题之CodeReview关注代码的测试覆盖率问题如何解决
|
5月前
|
Java 测试技术 Maven
在Java项目中集成单元测试与覆盖率工具
在Java项目中集成单元测试与覆盖率工具
|
Java 测试技术 Maven
Spring Boot 中的测试覆盖率是什么,如何使用
Spring Boot 中的测试覆盖率是什么,如何使用
|
Java 测试技术 Maven
SpringCloud项目编译打包执行单元测试(修复单元测试数量为0)-流水线sonarqube扫描jacoco插件展示覆盖率
SpringCloud项目编译打包执行单元测试(修复单元测试数量为0)-流水线sonarqube扫描jacoco插件展示覆盖率