我想从使用或评估Coverity来静态分析Java代码的人那里获得评论。我知道它在C/C++世界里很流行,但是花这些钱在Java分析上值得吗?还是使用PMD、Findbugs和其他开源工具更好呢?
发布于 2008-10-31 22:17:23
如果您今天没有使用任何东西,我将从Findbugs和PMD开始。它们易于安装和使用。首先集中精力检查和修复Findbugs的正确性错误-他们建议从高严重性和中等严重性的正确性错误开始,因为检查器的误报率非常低,您将在时间上获得良好的回报。让开发人员使用PMD清理代码,并让Eclipse中的Findbugs插件审查新代码。渐进式的工作将使开发人员理解并接受这些工具的有用性。
Coverity的Java checkers与其C/C++ checkers相比仍然很弱。我们使用Findbugs,PMD,Coverity和Klocwork,因为它们都有不同的优势,而我们是偏执的。如果你不是偏执狂,你可以坚持使用开源工具,并获得很多价值。或者如果你需要安全检查:那么Klocwork,尤其是Fortify应该为你做更彻底的工作。
发布于 2008-10-07 03:41:12
我将插话给你一个相关的答案。我在Java和C代码中都使用了Klocwork。Klocwork是Coverity的有力竞争对手...在成本方面,它们大致相同(仔细看,Klocwork看起来更便宜,直到你真正买到你需要的东西),而在功能方面,它们来回争斗。
对于C/C++来说,这是很棒的。对于Java....嗯,它帮助发现了许多资源泄漏( #$@^#ing Java开发人员似乎忘记了像文件句柄这样的资源不是垃圾收集的),但它似乎没有发现许多“严重”的but。这可能是因为语言本身确实有助于防止一些更基本但很难发现的错误(数组溢出、指针损坏等)。
让Coverity运行一个演示,他们非常乐意这样做。看看他们能找到什么东西。
发布于 2009-03-30 18:12:50
我将在前面的答案中添加一个有限的自我,这在某种程度上受到了我所遵守的保密保密协议的限制。Coverity Prevent在发现开源C/C++代码中的bug方面有着令人印象深刻的公共记录,但他们的Java产品要新得多。(Coverity有一篇关于我前雇主的新闻稿,所以我可以说,它确实帮助我们发现并修复了C/C++代码中的许多bug,比我之前所有的bug搜寻职业生涯中发现的都多。)FindBugs在Java代码方面的工作令人印象深刻,而且价格也是无与伦比的。但重要的一点已经提出来了:在购买之前,在你的真实代码上尝试这两种方法。没有什么可以替代现实,静态分析中的传统智慧是,这些工具发现的内容几乎没有重叠。
https://stackoverflow.com/questions/173763
复制相似问题