内容简介:在测试代码时,仅为每种方法编写一个或两个对某个指定方法有多个调用路径,这些执行路径的数量称为当开发人员知道与某个指定方法相关的圈复杂度度量时,他们将知道要创建多少个不同的单元测试以彻底测试代码。此外,高圈复杂度指标是团队领导和敏捷教练的有用指标。它可以标记开发人员正在努力实现的故事或功能。由于任何方法的圈复杂度度量均接近10,因此警钟应响起。
在测试代码时,仅为每种方法编写一个或两个 单元测试是 不够的。编写单元测试时,目标不是测试每个方法,而是测试方法可能执行的每条指令。并且由于方法在复杂性方面可能有很大差异,因此对于开发人员来说,编写单元测试非常重要。
对某个指定方法有多个调用路径,这些执行路径的数量称为 McCabe圈复杂度 ,每个了解单元测试价值的组织应该将 Java 圈复杂度 工具 集成到他们的 Maven构建 和 CI 管道中。
当开发人员知道与某个指定方法相关的圈复杂度度量时,他们将知道要创建多少个不同的单元测试以彻底测试代码。此外,高圈复杂度指标是团队领导和敏捷教练的有用指标。它可以标记开发人员正在努力实现的故事或功能。由于任何方法的圈复杂度度量均接近10,因此警钟应响起。
那么,在整个 软件开发生命周期中 使用哪种最佳的圈复杂度工具呢?对于任何使用Eclipse的开发人员,Eclipse Metrics插件都是必备的。
并非每个人都会在本地计算机上安装Eclipse,因此团队中的每个人都不会有机会直接在源代码上运行圈复杂度指标检查。幸运的是,有一些Java圈复杂度工具可以直接配置到 Maven构建中, 或者成为CI管道测试阶段的一部分。
JaCoCo Jenkins plugin 检查在构建作业的测试阶段运行各种JUnit测试结果并生成代码覆盖率报告。JaCoCo Jenkins管道插件的另一个优点是它可以配置阈值。因此,如果任何方法的圈复杂度度量超过15,则插件将无法构建。如果在测试期间未涵盖路径的百分比(通过圈复杂度度量建立),JaCoCo Jenkins插件也可以强制构建失败。因此,它不仅提供了完整的报告,还可以确保未经测试的代码永远不会投入生产。
SonarQube 在七个独立的质量轴上生成度量标准,其中一个是代码覆盖率。这包括圈复杂度报告。SonarQube是开源的, 易于安装 ,可以通过 Git钩子 或 Jenkins构建作业 轻松集成。作为DevOps构建过程的一部分,没有充分的理由不从SonarQube生成高质量的代码度量标准。
如果您不是Eclipse开发人员,那么您就不会使用Jenkins并且手头没有SonarQube。不过,你很幸运,因为有一个简单,平等的圈复杂度工具,任何人都可以使用。我在说你的手指。
通过添加循环次数和条件数量然后计算总和来得出循环复杂度,当然,如果您需要计算 代码库 中的每个方法,它可能不是一种有效的方法。但是在代码审查或下午的结对编程中 - 实际上任何时候代码中都会出现相当大的方法 - 可能需要快速的圈复杂度计算。
以上所述就是小编给大家介绍的《四个必不可少的Java圈复杂度测试工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 时间复杂度与空间复杂度分析
- 复杂度分析的套路及常见的复杂度
- 聊聊算法的时间复杂度与空间复杂度
- 算法与数据结构(一):时间复杂度与空间复杂度
- 数据结构与算法系列(一):时间复杂度和空间复杂度
- 时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。