四个必不可少的Java圈复杂度测试工具

栏目: Java · 发布时间: 6年前

内容简介:在测试代​​码时,仅为每种方法编写一个或两个对某个指定方法有多个调用路径,这些执行路径的数量称为当开发人员知道与某个指定方法相关的圈复杂度度量时,他们将知道要创建多少个不同的单元测试以彻底测试代码。此外,高圈复杂度指标是团队领导和敏捷教练的有用指标。它可以标记开发人员正在努力实现的故事或功能。由于任何方法的圈复杂度度量均接近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圈复杂度测试工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

Peter Norvig、Stuart Russell / 姜哲 / 人民邮电出版社 / 2004-6 / 85.00元

《人工智能:一种现代方法》(第2版中文版)以详尽和丰富的资料,从理性智能体的角度,全面阐述了人工智能领域的核心内容,并深入介绍了各个主要的研究方向,是一本难得的综合性教材。全书分为八大部分:第一部分“人工智能” ,第二部分“问题求解” ,第三部分“ 知识与推理” ,第四部分“规划” ,第五部分“不确定知识与推理” ,第六部分“学习” ,第七部分“通讯、感知与行动” ,第八部分“ 结论” 。一起来看看 《人工智能》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具