[Java] coverageの信頼性

※当サイトでは広告を掲載しています

Javaで開発を行うプロジェクトに参加しているわけですが、単体試験のときにcoverageを取るように客先から指定があったらしいので、取っています。

coverageというのは、各メソッド内のソースの何パーセントくらいが実際に処理されているか、をクラスごとに集計して一覧表にしたり、グラフ化したり、実際のソースのどの部分が処理されていなかったか、を出してくれるものだとか。

なので、実際にプログラムされた中で、無駄な部分などが一目でわかるようになるわけです。

でも、このcoverageも、常に信頼できる結果を残してくれるわけではないようで。

ソースに対して、処理を行った部分の集計は「行数」で管理しているため、途中でバグを見つけてプログラムを修正し、行が追加・削除されてしまうともうお手上げ。全てがずれてしまい、coverageの信頼性はそこでゼロになってしまうとのことです。

とは言え、修正したソースの履歴さえきちんと管理できていれば、少なくとも「無駄のないプログラム」を作ることは可能なので、そういう意味では有用かも。

ただし、「coverageでチェックしたから100%安心」とは言い切れないと思うので、あくまで補助的に使うのがいいのかな。coverageの結果が100%になれば、少なくとも「プログラムが動く上で、無駄なソースはない」と言い切れるし。

コメント

タイトルとURLをコピーしました