2017-11-29 24 views
0

開発中に静的コード解析ツールを使用している人の多くは、使用するツールで経験する誤検出率はどのくらいですか?これは研究のためのものです。静的コード解析ツール -

+1

研究に成功するためには、最終的にはあなたの努力を増やす必要があります、私は恐れています。 –

+0

EFLコアライブラリの例によるPVS-Studio Analyzerの特性、偽陽性の10〜15% - 012v、12630/ – AndreyKarpov

+0

学期が終わる。 @ThomasJensenの提案に感謝 –

答えて

0

私はCoverityを2年間使用しています。これまでのところ偽陽性は認められなかった。

以前はコードソナーを使用しました。私はしばらくの間、偽陽性を覚えています。

+1

偽陽性を見たことがないなら、より積極的でチェッカーをオンにする必要があります。 –

2

試してみることができます。CppDependは、CQLinqコード照会言語を使用してルールを定義します。 ルールを簡単にカスタマイズして、必要に応じてルールを変更し、偽陽性の検出を削除することができます。

1

深刻な研究では、真陽性率(精度)だけでなく、ツールによって報告されない偽陰性率(リコール)も比較します。私が期待することは、誤検出の少ないツールは、より多くの偽陰性を持つということです。

偽陰性を見つけることは些細なことではありません。テストスイート(https://www.nist.gov/publications/juliet-11-cc-and-java-test-suiteのような)がありますが、これは合成コードであり、複数レベルの間接化と複雑なロジックの流れがある生産レベルコードではありません。

幸運を祈る!

0

私はルールをプロジェクト固有の設定を介して徐々に追加していますので、偽陽性(または対処方法がわかっている既知のもの)はほとんどありません。 標準のFingBugsルールを採用するだけでは、誤検知が多すぎるため、一般的にFingBugsの使用が中止されます。 これに加えてFindBugs contribルールを追加しました。

JavaScriptの場合はjsHintを使用します。

偽陽性はアクティブなルールに依存しています...私はあなたの研究がこの事実のためにかなり困難になることを恐れています。

1

非常におおまかなルールとして、商用レベルの優れた静的解析ツールでは、20%の本物の誤検出があり、本物のバグの約20%が見つかります。実際に関連するのは、報告された欠陥の割合がはるかに高いことが間違って陽性に分類されることです。開発者が間違っていると誤解していることがよくあります。 (FindBugsには「ほとんど無害」の分類があります。)Dr Dobbの記事http://pobox.com/~flash/Deploying_Static_Analysis.pdfの説明と参照。

関連する問題