Java代码质量工具–概述

本文介绍了多个用于提升Java代码质量的工具,如CodePro Analytix、PMD、FindBugs、Cobertura等,涵盖了代码分析、测试覆盖率、死代码检测、依赖关系分析等方面。此外,还提及了Sonar、JDepend等用于持续质量控制和软件包依赖性的工具。
摘要由CSDN通过智能技术生成
最近,我有机会在本地IT社区聚会上介绍了该主题。 这是基本演示:

Java代码质量工具

以及更有意义的思维导图:

但是,我认为我需要更深入地探讨这一主题。 这篇博客文章应该像是在此方向上进行进一步调查的起点。

1. CodePro Analytix
这是提高软件质量的出色​​工具(Eclipse插件)。 它具有下一个关键功能:代码分析,JUnit测试生成,JUnit测试编辑器,类似代码分析,度量,代码覆盖率和依赖性分析。 2. PMD 它扫描Java源代码并查找潜在的问题:可能的错误,死代码,次优代码,表达式过于复杂和重复代码。 3. FindBugs 它查找Java程序中的错误。 它可以检测各种常见的编码错误,包括线程同步问题,滥用API方法等。 4.科贝图拉 这是一个免费的Java工具,可以计算测试访问的代码的百分比。 它可以用来识别Java程序的哪些部分缺少测试覆盖范围。 它基于jcoverage。 5.艾玛 它是基于字节码检测的快速Java代码覆盖工具。 它与现有工具的不同之处在于,它可以对大型企业软件项目进行覆盖范围分析,同时强调快速的个人开发。 6. Checkstyle 它是一种开发工具,可帮助程序员编写遵守编码标准的Java代码。 7. JBoss Tattletale JBoss Tattletale是一个工具,可以帮助您大致了解您正在从事的项目或您所依赖的产品。 该工具将递归扫描目录中的JAR文件,并生成链接和格式化HTML报告。 8. UCDetector UCDetector(必需代码检测器)是一个开源eclipse插件工具,用于查找不必要的(死)java代码。 它还尝试使代码最终,受保护或私有。 UCDetector还发现类之间的循环依赖关系。 9.声纳 Sonar是用于Java应用程序的连续质量控制工具。 其生活的基本目的是加入您现有的持续集成工具,以将所有开发项目置于质量控制之下。 10. XRadar XRadar是一个开放的,可扩展的代码报告工具,该工具可以生成有关系统当前状态和开发情况HTML / SVG报告。 使用DependencyFinder,JDepend,PMD,PMD-CPD,JavaNCSS,Cobertura,Checkstyle,XSource,JUnit,Java2HTML,ant和maven。 11. QALab QALab合并来自Checkstyle,PMD,FindBugs和Simian的数据,并将其显示在一个合并的视图中。 QALab跟踪随时间变化的情况,从而使您可以查看随时间变化的趋势。 您可以告诉天气违反次数增加或减少的情况-在每个文件或整个项目中。 它还绘制了该数据的图表。 QALab可以插入Maven或ant。 12. Clirr Clirr是用于检查Java库与旧版本的二进制和源兼容性的工具。 基本上,您给它提供了两组jar文件,Clirr会转储出公共api中的更改列表。 可以将Clirr Ant任务配置为在检测到不兼容的api更改时中断构建。 在连续集成过程中,Clirr可以自动防止意外引入二进制或源兼容性问题。 13. JDiff JDiff是一个Javadoc doclet,当比较两个API时,它会生成所有以任何方式删除,添加或更改的所有程序包,类,构造函数,方法和字段(包括其文档)HTML报告。 这对于准确描述产品的两个版本之间发生了什么变化非常有用。 仅比较每个版本的API(应用程序编程接口)。 它不比较源代码在执行时的功能。 14.吉林特 它通过执行数据流分析和构建锁图来检查您的Java代码并查找错误,不一致和同步问题。 15. JDepend JDepend遍历Java类文件目录,并为每个Java包生成设计质量指标。 JDepend允许您根据其可扩展性,可重用性和可维护性自动衡量设计的质量,以有效地管理和控制软件包的依赖性。 16. cloc cloc计算许多编程语言中源代码的空行,注释行和物理行。 17. Dependometer Dependometer对软件系统中的物理依赖关系进行静态分析。 Dependometer根据逻辑体系结构验证依赖关系,这些逻辑体系结构将系统分为类,包,子系统,垂直切片和层,并检测这些结构元素之间的循环。 此外,它在不同的抽象层上计算许多质量指标,并报告违反所配置阈值的情况。 18. Hammurapi Hammurapi是一个开放源代码检查工具。 它的发行版中包含100多个检查员,他们检查代码的不同方面:符合EJB规范,线程问题,编码标准等等。 19. JavaNCSS JavaNCSS是一个简单的命令行实用程序,它测量Java编程语言的两个标准源代码指标。 针对每个类和/或每个功能,全局收集度量。 20. DCD DCD在Java应用程序中找到无效代码。 21.甲级 Classycle的分析器分析Java应用程序或库中的静态类和包依赖性。 这对于查找类或包之间的循环依赖关系特别有用。 Classycle与JDepend相似,后者也进行依赖关系分析,但仅在程序包级别。 22. ckjm 程序ckjm通过处理已编译的Java文件的字节码来计算Chidamber和Kemerer的面向对象的度量。 该程序为每个班级计算Chidamber和Kemerer提出的以下六个指标。 23. Jameleon Jameleon是一个自动化测试框架,技术用户和非技术用户都可以轻松使用。 Jameleon背后的主要概念之一是创建一组代表应用程序不同屏幕的关键字或标签。 可以使用Java定义自动执行每个特定屏幕所需的所有逻辑,并将其映射到这些关键字。 然后,可以使用不同的数据集来组织关键字以形成测试脚本,而无需深入了解应用程序的工作方式。 然后,将测试脚本用于自动化测试并生成手动测试用例文档。 24. DoctorJ DoctorJ在以下功能区域中分析Java代码:文档验证,统计信息生成和语法分析。 25.麦克 Macker是Java开发人员的构建时体系结构规则检查实用程序。 它旨在对程序员始终梦dream以求的项目的构架理想进行建模,然后打破-这有助于保持代码的清洁和一致。 您可以定制规则文件以适合特定项目的结构,或者为代码编写一些通用的“良好实践”规则。 Macker不会试图将别人的规矩推到您的喉咙上。 它非常灵活,并且编写规则文件是每个唯一项目的开发过程的一部分。 26.鱿鱼 Squale是一个质量分析平台,可以分析多语言软件应用程序,以清晰,全面地显示其质量:高级经理的高级要素和开发团队的实用指标。 27. SourceMonitor 免费软件程序SourceMonitor可让您查看软件源代码的内部,以查明您拥有多少代码并确定模块的相对复杂性。 例如,您可以使用SourceMonitor来识别最有可能包含缺陷的代码,因此需要进行正式审查。 28. Panopticon Panopticode项目提供了一组开源工具,用于收集,关联和显示代码指标。 29. Eclipse Metrics插件 提供用于Eclipse平台的指标计算和依赖性分析器插件。 用平均值和标准偏差测量各种指标,并检测包装和类型相关性中的周期并对其进行图形化。 30. QJ-Pro QJ-Pro是针对软件开发人员的全面软件检查工具。 开发人员可以在编写程序时自动检查其Java源代码并提高Java编程技能。 QJ-Pro提供了描述性Java模式,解释了易于出错的代码构造并为其提供了解决方案。 31.轮回 Byecycle是Eclipse的自动安排依赖性分析插件。 它的目标是使您在看到错误的代码时感到恶心,并在看到良好的代码时感到高兴。 32.科夸 Coqua测量5种不同的Java代码质量指标,为管理人员提供概述和历史记录,并为开发人员提供从代码到细节的详细视图。 可以为每个团队定义指标。 是大中型和/或海上项目的理想选择。 33.依赖查找器 从大多数Java编译器生成的Java类文件中提取依赖关系和OO度量。 34.Jalopy Jalopy是一种易于配置的源代码格式化程序,可以检测和修复Java代码中可能出现的许多代码约定缺陷。 Jalopy更像是代码修复程序,而不是代码检查程序。 Jalopy插件适用于大多数IDE,并且在大多数情况下,它们可以与IDE无缝衔接。 35. JarAnalyzer JarAnalyzer是用于.jar文件的依赖项管理工具。 JarAnalyzer将分析给定目录中的所有.jar,并确定每个之间的依赖关系。 输出格式包括xml(包含用于将其转换为html的样式表)和GraphViz DOT,使您可以生成直观的组件图,以显示.jar文件之间的关系。 xml输出包括重要的设计指标,例如传入和传出耦合,抽象性,不稳定性和距离。 还有一个可用的Ant任务,允许您将JarAnalyzer包含在构建脚本中。 36.冷凝器 冷凝器是用于查找和删除重复的Java代码的工具。 与仅查找重复代码的工具不同,Condenser的目的是在安全的地方自动删除重复的代码。 37.救济 Relief对Java项目提供了新的外观。 依靠我们通过检查真实对象的形状,大小或在空间中的相对位置来处理真实对象的能力,它对Java包,类型和字段及其关系提供了“物理”视图,从而使它们更易于处理。 让我们快速讨论一下我们如何解释物理属性以及它如何帮助我们掌握项目特征。 38.股份公司 JCSC是一种功能强大的工具,可以根据高度定义的编码标准和潜在的不良代码来检查源代码。 该标准涵盖了类,接口,字段,参数等的命名约定。 还可以定义类型(类/接口)的结构布局。 就像在方法之前或之后以及以什么顺序放置字段一样。 可以通过可见性或类型(实例,类,常量)定义顺序。 方法同样适用。 这些规则中的每一个都是高度可定制的。 通过定义在代码中的空白处以及何时使用花括号,可以增强可读性。 正确的JavaDoc的存在可以被强制执行,并且可以达到各种级别。 除此之外,它还会发现代码中的弱点-潜在的错误-例如空的catch / finally块,无默认切换,抛出“ Exception”类型,慢速代码。 39.汤匙 Spoon是一个完全支持Java 5的Java程序处理器。它提供了完整且细粒度的Java元模型,可以在其中读取和修改任何程序元素(类,方法,字段,语句,表达式等)。 通过使用纯Java模板引擎,可以将Spoon用于验证目的,以确保您的程序遵守某些编程约定或准则,或者用于程序转换。 40. Lint4j Lint4j(“ Lint for Java”)是静态Java源代码和字节码分析器,它检测锁定和线程问题,性能和可伸缩性问题,并通过执行类型,数据流和锁定图分析来检查复杂的合同,例如Java序列化。 41. Crap4j Crap4j是CRAP(变更风险分析和预测)软件度量标准的Java实现,这是一种轻度冒犯的度量标准名称,有助于保护您免受真正冒犯的代码的侵害。 42.路径查找器 Java PathFinder(JPF)是用于验证可执行Java字节码程序的系统。 它的基本形式是一个Java虚拟机(JVM),用作显式状态软件模型检查器,系统地探索程序的所有潜在执行路径,以发现违反诸如死锁或未处理异常之类的属性的情况。 与传统的调试器不同,JPF报告导致缺陷的整个执行路径。 JPF特别适合在多线程程序中发现难以测试的并发缺陷 43.烟灰 Soot可以用作优化或检查类文件的独立工具,也可以用作在Java字节码上开发优化或转换的框架。 44. ESC / Java2 Java版本2的扩展静态检查器(ESC / Java2)是一种编程工具,它通过对程序代码及其形式注释进行静态分析,尝试在带有JML注释的Java程序中查找常见的运行时错误。 用户可以通过用特殊格式的注释(称为pragmas)注释程序来控制ESC / Java2执行的检查的数量和种类。

该列表包括开源和免费工具。 我故意排除了商业工具。 我确定还有更多工具。 如果您知道其中一些未在此处列出的信息,请在此帖子中添加评论。

别忘了分享!

参考: Java代码质量工具-我们的JCG合作伙伴 Orest Ivasiv的概述 ,摘自Knowledge Is Everything博客。


翻译自: https://www.javacodegeeks.com/2012/10/java-code-quality-tools-overview.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值