静的解析は、置くだけでは効かない。効くかどうかは開発者に信頼されるかで決まる。


目次

  1. 誤検出は開発者の反応で測る
  2. 見せる範囲を絞る
  3. 直し方まで示し、直せるものは機械が直す
  4. 開発者がすでにいる場所に出す

誤検出は開発者の反応で測る

指摘を見ても開発者が何もしないなら、それは実質的な誤検出

  • 誤検出の少ない解析だけを出し、信号の乏しいものは外す
  • 結果ごとに「役に立たない」と返せる仕組みで測り続ける
  • 解析の無効化機能をなくしたら、すぐ苦情が来た

見せる範囲を絞る

編集されたファイルや行の、新しく出た警告だけを示す

  • 巨大なコードベースの全体結果は、動かすのも読むのも無理

直し方まで示し、直せるものは機械が直す

指摘は理解でき、すぐ直せるものにする

  • 可能なら修正案を添え、自動で直せるものは自動で直す
  • スタイルの問題に人間のレビュアーの時間を使わない

開発者がすでにいる場所に出す

結果は普段の開発の流れの中で出す

  • レビュー画面に出す(Google では Tricorder が集約、§20.3)
  • コンパイラのチェックは警告でなくエラーにする
  • エディタ内なら1秒未満、理想は100ミリ秒未満

関連