コピペ時の変数書き換え忘れによるバグを検出するCodeSonarの論文.

コピペは便利な一方,コードクローンとして様々な問題を引き起こす. その中の一つに.コピペした後で変数を書き換える際に,いくつかの変数を書き換え忘れてバグが発生するという問題がある. そのようなバグを検出するツールとしてCodeSonarは提案された. CodeSonarの大きな特徴の一つが,このツールはOSSではなく商業用ツールである(= 責任をもって作られており,実際の現場で使うことを目的としている)という点である. このツールはfalse positiveを減らすことを目標として設計されている. なぜなら,現場で使う際には,誤検出も含むが大量の結果を検出できることより,検出量が少なくてもより精度が高いことが重要だかららしい.

CodeSonarは複数の検出方法をパイプで繋ぐように実行することでfalse positiveを減らしている. また,現場で使いやすいように既存のエディタに組み込む形で提供している. 結果では7/20で正しくバグを検出できた.

結果を見た感じ,さんざんfalse positiveを減らす話をしておいて,結局,結果の半分以上をfalse positiveが占めているのはいかがなものかとは感じた. もしかしたらOSSの似たようなツールの結果が実は散々なのかもしれない.