GeekFactory

int128.hatenablog.com

カバレッジを出すメリットとデメリット

  • アカデミックな統計数値について、疑問を示す。例えば、カバレッジについては、試験を平たくやることにつながり、費用対効果を下げる結果になると指摘する。なので社内の標準開発環境からはカバレッジ測定ツールを提供しないで欲しいと提言した。
http://d.hatena.ne.jp/ikedatka/20080831/1220184983

私は、JUnitに対するカバレッジを出すことで、JUnitを推し進めるパワーが働くのではないかと期待します。私のまわりの現場では、JUnitを嫌う協力会社が多く、手作業で単体試験しているところが多いです。ステートメントのステップ実行で代替してるところもあります。

JUnitによるコストメリットは難しいですが、回帰試験の工数が減るのは明らか。パッケージであれば試験の自動化によるコストメリットを明確に示せるので、JUnitなりSeleniumを入れた方がいいのではと思います。

カバレッジを出すデメリットは、数値に踊らされることです。品質評価の根拠にカバレッジを出してしまうと、とんでもない目に遭います。私も痛い目に遭いました。カバレッジ100%のお達しが出てしまい、2倍近い試験工数をつぎ込むことになりました。

もっとも、メトリクスの研究をやってた立場でいうと、アカデミックな統計数値を出さないのは残念です。クラスサイズや複雑さは、危険なクラスを見つけ出す良い指標になります。カバレッジを含めた統計数値は、上司への説明ツールではなく、現場の危険因子を見つけ出すツールとして使うのが良い気がします。現場との信頼関係が品質を作ります。

タイトルがあまりに仕事のぐちっぽかったので変えました。