私は商用とオープンソースの静的コード解析ツール(SCAT)を数年前に比較しました。 Klocworkはその一つでした。短い話をするために、Java環境では商用ツールが価格を正当化するために必要な(追加の)価値を提供していなかったという結果が得られました。発見されたバグの数は、これらのツールよりもはるかに優れていました。カバレッジだけが他のツールのどれも見つけられなかったいくつかのバグを見つけ、最も低い数字を持っていた。FPR。他の側面では、カバーバディはfindbugsが見つけた多くのバグを検出しませんでした - 私たちのために、すべてのツールは関係する金額を正当化しませんでした。そして正しく設定されていれば、findbugsは非常に低いFPRも提供します。最近のバージョンでは、findbugをソリューションに統合する可能性が含まれていました。 Mhhmmmなぜ彼らはそれをしましたか? :-)
ただし、シナリオがあります。 (例えばC、C++、C#...のような)他のプログラミング言語を含むコードベースや、それらのツールによって提供されるいくつかの追加機能が必要な場合、商用ツールに変換する。しかし、すべてのソリューションをテストできるので、あなた自身の心をつくることができます。自分のウェブページにアクセスして試用版をダウンロード/リクエストしてみてください。
コマーシャル:
- Coverity
- Klocwork
- Parasoft
- Cast
は、私は次のツールをチェックアウトオープンソース:
私たちは何をしましたか? findbugs、pmd、checkstyle、coberturaなどの多くのツールを組み合わせた無料のsonar serverをインストールしました。これにより、商用ツールよりも多くの面で優れたソリューションが得られました。私が商用ルートに行く必要があるならば、おそらくカバー率を詳しく見ていきます(そしてCASTをもう一度見ないでください)。
パフォーマンスに関するご質問については、[更新] - FindBugsのは、(問題が発生した場合、その後findbugs mailing listに投稿して、彼らはあなたを助ける)の問題もなく巨大なコードベースをスキャンすることができます。私は再びfindbugsも最も速いツールの一つだったことを覚えています。例えば、Coverityは2時間近くかかっていましたが、findbugは10分ほどで完了しました。他のツールは、それらの数字の間にあります。
CおよびC++コードのスキャンに関しては、Splintとcppcheckを参照してください。また、そのトピックについて議論している他のhelpfulスレッドもあります。しかし、findbugsはJavaのためだけであり、商用ツールには利点があるかもしれないプログラミング言語間の問題を検出したいからです。 findbugsは無料ですから、コードベースで実行して、自分のために何が起こるかを見てください。あなたのプロジェクトはそれだけで恩恵を受けることができます!次に見つかったバグを修正し、その後商用ツールのいくつかを試してみてください。見つけたバグの量と支払う価格によって、あなた自身の結論を引き出します。例を挙げてみましょう:ツールの1つに「コード行数」/ 10で割ったものがあります。しかし、それは面白いmaster thesisこのトピックを議論発見[UPDATE II]
;-)あなたのケースでは、あなたが割引を受けることかもしれません。主要な部分はfindbugについてですが、klockworkとcoverityについても言及しています。
あまりにも広すぎると投票してください。 –