首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您曾经比较过静态分析工具Klocwork和Findbug吗?

您曾经比较过静态分析工具Klocwork和Findbug吗?
EN

Stack Overflow用户
提问于 2013-08-19 01:08:19
回答 1查看 11.6K关注 0票数 12

我们正在使用Klocwork作为静态分析工具。

Klocwork是一种商业工具,有许多优点,但也有一些限制,如假阳性。

我想知道谁曾将Klocwork与其他开源工具(如Findbug)进行比较。

一般来说,商业工具比开源工具更可靠。

但是我认为Klocwork在特定的业务领域也有一些可靠的问题,比如android。

你能说Klocwork优于其他开源工具吗,特别是在假阳性和假阴性方面的Findbug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-20 08:11:54

几年前,我对商业和开源静态代码分析工具(SCAT)进行了比较。Klocwork就是其中之一。长话短说,结果是在java环境中,商业工具没有提供合理价格所需的(额外)价值。在发现的bug数量中,findbug比任何这些工具都要好得多。只有coverity发现了一些其他工具都没有发现并且FPR最低的bug。另一方面,coverity没有检测到很多错误,发现了bugs -所以对我们来说,所有的工具都没有证明所涉及的钱是合理的。如果配置正确,findbug还提供了非常低的FPR。在最近的版本中,coverity包含了将findbug集成到解决方案中的可能性。嗯,那他们为什么要这么做?

然而,也有一些场景,例如在使用其他编程语言或程序间语言扫描时(例如,您的代码库包含其他编程语言(如C、C++、C# .)或者您需要这些工具提供的一些附加功能--那么它就值得研究一下商业工具。但是你可以做出自己的决定,因为每个解决方案都可以被测试。访问他们的网页,下载/请求试用,并自己尝试(也许在此期间,事情发生了变化?)

我查看了以下工具:

商业:

  1. 覆盖度
  2. 克洛茨克
  3. Parasoft
  4. 投射

OpenSource:

  • 发现虫
  • PMD
  • 格子式 (虽然不是真正的SCAT,但更像是样式检查器)

最后我们做了什么?我们安装了免费的声纳服务器,它结合了许多工具,如findbug、pmd、校验样式、cobertura等等。这样我们就得到了一个免费的解决方案,在许多方面都比现有的商业工具更好。如果我需要走商业路线的话,我可能会仔细看看coverity (再也不看CAST了)。

关于性能问题的更新--findbug能够在没有问题的情况下扫描庞大的代码库(如果您遇到问题,然后将其发布到findbugs邮件列表上,它们将帮助您)。我记得那时候,findbug也是最快的工具之一。例如,Coverity需要近2小时才能完成,而findbug则在不到10分钟内完成。在这些数字之间的其他工具。

关于C和C++代码的扫描,您可以查看夹板卡普查克。还有其他一些有帮助线程正在讨论这个主题。但是,正如所提到的,因为findbug只用于java,并且您希望检测编程间语言问题,商业工具可能有一个优势。因此,既然findbug是免费的--只需在代码库上运行它,看看会发生什么--您的项目只能从中受益!然后修复发现的bug,然后用一些商业工具进行测试--取决于它们发现的bug数量和您将要付出的代价,得出自己的结论。举个例子:其中一个工具花费‘代码行’/divided 10 (以$为单位)。但在你的情况下,你可能会得到折扣;-)

UPDATE II发现了一个有趣的讨论这个主题的硕士论文。主要部分是关于findbug的,但它也提到了klockwork和coverity。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18305195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档