当前位置: 首页 > 面试题库 >

三种代码覆盖率分析方法之间有何区别?

漆雕欣德
2023-03-14
问题内容

该声纳页面基本上列出了不同代码覆盖率分析工具采用的各种方法:

  1. 源代码工具 (由Clover使用)
  2. 离线字节码检测 (由Cobertura使用)
  3. 动态字节码检测 (由Jacoco使用)

这三种方法是什么,哪一种是最有效的?为什么?如果对效率问题的回答是“取决于”,那么请解释为什么?


问题答案:

源代码检测包括在编译之前向源代码添加指令。这些指令用于跟踪已执行代码的哪些部分。

离线字节码检测包括将这些相同的指令添加到字节码中,但是在编译后直接将它们添加到字节码中。

动态字节码检测包括将相同的指令添加到字节码中,但是在运行时由JVM加载字节码时会动态添加这些指令。

该页面对这些方法进行了比较。它可能是有偏见的,因为它是Clover文档的一部分。

根据您对“效率”的定义,选择最喜欢的一种。我认为您不会有太大的不同。他们都完成了工作,无论使用哪种方法,总体情况都是一样的。



 类似资料:
  •   计算机科学中所说的代码覆盖率是一种用于衡量特定测试套件对程序源代码测试程度的指标。拥有高代码覆盖率的程序相较于低代码低概率的程序而言测试的更加彻底、包含软件 bug 的可能性更低。     --Wikipedia 在本章中,你将学到 PHPUnit 中与代码覆盖率相关的一切功能。通过这部分功能,能够了解在测试运行过程中执行了生产代码的哪些部分。它使用了 PHP_CodeCoverage 组件,

  • 问题内容: 我有一个Jenkins项目,对我的NodeJS项目进行SonarQube分析。我添加了对项目的依赖。在Jenkins构建配置中,首先运行一个shell脚本: 这将安装依赖项,运行测试并生成代码覆盖率报告,并生成cobertura-coverage.xml文件。 在shell脚本之后,我运行具有以下属性的代码覆盖: Jenkins作业通过SonarQube仪表板成功运行,该仪表板描述了项

  • Jenkins作业成功地运行了一个SonarQube仪表板,它描述了项目的各种内容,如代码行、技术债务、问题等等。但是单元测试的代码覆盖率并没有显示在SonarQube仪表板上。我确保仪表板有单元测试小部件。 我验证了工作区确实有文件。还检查了构建控制台日志,没有发现bug。我之前也尝试过使用LCOV格式推送代码覆盖率: 即使在Jenkins工作区中生成了覆盖率报告,该报告也不会发布到SonarQ

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 索纳库贝:8.2。0.32929 声纳扫描仪:3.0。3.778 雅科科:0.8。4 jdk:1.8 mvn:3.6。三, 你想达到什么目标 我试图通过使用sonar scanner实现代码覆盖率,但在sonarqube仪表板中获得代码覆盖率0。 到目前为止,您是如何实现这一目标的 我使用https://github.com/SonarSource/sonar-scanning-examples/

  • 在我们的代码中,有很多这样的日志片段: 有没有可能配置SonarQube,使这样的代码块不包含在代码覆盖率分析中?编写测试来覆盖这样的调试语句似乎没有多大意义... 我发现了如何: < li >从覆盖率分析中忽略整个文件 < li >忽略代码块中的问题 但是我没有找到仅从覆盖率分析中排除代码块的方法。