静态代码分析工具 -

时间:2017-11-29 22:11:51

标签: static-analysis findbugs cat.net

您有多少人在开发过程中使用静态代码分析工具,您使用该工具时遇到的误报量是多少?这是一项研究。

5 个答案:

答案 0 :(得分:2)

您可以尝试CppDepend,它使用CQLinq代码查询语言来定义规则。 您可以自定义规则以使其适应您的需求并删除误报检测。

答案 1 :(得分:1)

严肃的研究不仅可以比较假阳性率与真阳性率(精确度),还可以比较假阴性率,工具未报告的问题(召回)。我期望你发现,误报率较低的工具会产生更多的误报。

找出假阴性并非易事。有测试套件(如https://www.nist.gov/publications/juliet-11-cc-and-java-test-suite),但这是合成代码,而不是具有多层间接和复杂逻辑流的生产级代码。

祝你好运!

答案 2 :(得分:1)

作为一个非常粗略的经验法则,我估计一个好的商业级静态分析工具将有20%的真正误报,并且会发现大约20%的真正错误。在实践中更有意义的是,报告的缺陷中有更高比例被错误地归类为误报,这通常是因为开发人员正确或错误地认为该错误不太可能发生。 (FindBugs对此有一个“非常无害”的分类。)在Dobb博士的文章http://pobox.com/~flash/Deploying_Static_Analysis.pdf中进行讨论和参考。

答案 3 :(得分:0)

我使用Coverity已经2年了。到目前为止,没有任何误报。

之前我使用的是Code Sonar。我偶尔会得到误报。

答案 4 :(得分:0)

我逐步添加规则(通过项目特定的配置),因此很少有误报(或者我知道如何处理的已知的误报)。 如果你只是采用标准的FingBugs规则,你就会有太多的误报,这就是人们通常会停止使用它的原因。 除此之外,我添加了FindBugs contrib规则。

对于JavaScript我使用jsHint。

误报取决于积极的规则......我担心由于这个事实你的研究会很困难。