java - 商业 Java 静态分析工具与免费的相比如何?

标签 java open-source static-analysis commercial-application

我熟悉一些可用于 Java 的免费静态分析工具,例如 FindBugs 和 PMD。我想知道的是 Klocwork 和 Coverity 等商业产品如何与这些产品相抗衡。他们的优势和劣势是什么?

最佳答案

我们使用一套开源和商业静态分析工具。不同的工具会发现不同类型的错误,其中一些会针对较低的误报率进行调整,但可能会漏掉一些真正的问题。

根据我的经验,Findbugs 在发现真正问题方面做得很好,尤其是当您按照他们的团队建议关注正确性错误时。最近 Findbugs 的开发人员也添加了一些基本的安全漏洞检查。 Coverity 的误报率很低,尤其是在您不打开他们的实验检查器的情况下,Coverity Prevent 包含一个用于趋势/集群分析的良好跟踪数据库。我还不相信他们的线程检查器(静态或动态)工作 - 至少他们没有发现任何对我们感兴趣的东西。 Klocwork Developer for Java 返回更高的误报率,但我们发现它们具有这些工具中最强的安全检查。因此,这取决于您的优先级是质量检查(Findbugs、Coverity)还是安全漏洞分析(Klocwork 或 Fortify)。我们的一些开发人员还使用 PMD 来支持源代码审查,因为它有助于进行常规代码清理。

最近与 NIST 开展的一个名为“SATE:静态分析工具博览会”的项目审查了各种不同的工具及其基本方法。 https://samate.nist.gov/index.php/SATE.html以及其他对该项目的引用,例如 OWASP。 一般的发现是,不同的工具有不同的优势和劣势,所以如果你想彻底完成工作,请使用多个。

关于java - 商业 Java 静态分析工具与免费的相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/207652/

相关文章:

java - 如何修复Flink管道NoClassDefFoundError : "org/apache/hadoop/conf/Configuration"

java - Selenium - 存储的 session 数据

open-source - 您如何为开源项目提出新想法?

javascript - 什么时候需要在 TypeScript 中声明返回函数类型?

c++ - 在 C/C++ 代码中查找指针是否静态等同于停止问题?

java - Android:Eclipse 无法构建项目

java - 将请求范围的 bean 注入(inject) session 范围的 bean

open-source - 有没有好的开源地理解析器可用?

ssl - Mirth Open-Source 是否支持通过 https(使用 ssl)工作的 channel

c - 帮助您进行 C 开发的分析工具