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

编程入门 行业动态 更新时间:2024-10-11 03:20:21
本文介绍了商业Java静态分析工具与免费工具相比如何?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I'm familiar with a handful of the free static analysis tools available for Java, such as FindBugs and PMD. What I'd like to know is how the commercial products such as Klocwork and Coverity stack up against these. What are their strengths and weaknesses?

推荐答案

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

We use a suite of open source and commercial static analysis tools. The different tools find different kinds of bugs and some are tuned for lower false positive rates, at the expense of possibly missing some real problems.

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

In my experience, Findbugs does a good job of finding real problems, especially if you focus on Correctness errors as their team suggests. Recently the developers of Findbugs have added some basic security vulnerability checks as well. Coverity has a low false positive rate especially if you don't turn on their experimental checkers, and Coverity Prevent includes a good tracking database for trend/cluster analysis. I am not convinced yet that their threading checkers (static or dynamic) work - at least they haven't found anything interesting for us. Klocwork Developer for Java returns higher false positives, but we find they have the strongest security checking of these tools. So it depends on whether your priority is quality checking (Findbugs, Coverity) or security vulnerability analysis (Klocwork, or Fortify). Some of our developers also use PMD to support source code reviews, as it helps with general code cleanup.

最近用NIST进行的一个名为SATE:Static Analysis Tool Exposition的项目审查了各种不同的工具及其基本方法。 samate.nist.gov/index.php/SATE.html 以及对该项目的其他参考,例如OWASP。 一般的发现是不同的工具有不同的优点和缺点,所以如果你想做一个彻底的工作,请使用多个工具。

A recent project conducted with NIST called "SATE: Static Analysis Tool Exposition" reviewed a wide variety of different tools and their underlying approaches. samate.nist.gov/index.php/SATE.html and other references to this project such as at OWASP. The general finding is that different tools have different strengths and weaknesses, so use more than one if you want to do a thorough job.

更多推荐

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

本文发布于:2023-11-23 06:32:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1620448.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工具   静态   商业   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!