数字の魔力<カバレッジ率>

カバレッジ率とは、プログラムに対してテストをして、テストによってどれだけのコードを網羅したか?という割合の値です。要するに、「どれだけテストを実施したのか」という目安になる値です。

カバレッジにもいくつか種類があるのですが、「どれだけテストをしたのか」を示すことから、これが高ければ高いほど良く、品質が上がっているように思えます。このカバレッジ率はしばしば品質保障の代名詞にもなっているようです。しかし、カバレッジ率をあげれば本当に品質が上がるのでしょうか?


カバレッジ率は「どれだけテストを実施したのか」という目安です。
しかし、実施したテストが意味のあるテストかどうかは、カバレッジ率だけでは測れません。つまり、意味のある(妥当な)テストをしていて、かつカバレッジ率が高いときに品質が上がっているといえるのです。


つまり、数字だけでは品質は測れないのです。


★ここから愚痴★

しーかーしー、プロジェクトマネージャ(もしくはもっと上)はこの数字をすごい気にするのです。上の人は数字が大切なのだそうです。そんな(?)政治的理由によって、「XX%達成しろ」という命令が降りてくるのです。

”意味のあるテスト”でカバレッジ率を上げるためには、それなりの工数が必要なのですが、現状は機能の作りこみの時間すらほとんど無く、ソースコードDRなんて行う余裕が無い状況なのです。
なのに、なぜかカバレッジ率を上げる事の方が優先度が高いのです。

そのため、機能を作りこむ時間を確保するために、カバレッジ率を上げるためだけのテストを行っています。いかにカバレッジ率を増やして時間を短縮するかに力を入れているので、到底”意味のあるテスト”は行えていません。

そんな状況でカバレッジ率XX%を達成したとしても、何の意味もありません。
意味の無いテストをやるより、他にやらなければいけないことが沢山あるはずなのになぁ・・・
意味の無い仕事ほど苦痛なものはありません。
モチベーション下がりまくりです。

しかし、政治的理由には、誰も太刀打ちできないのでした。
せめてもうちょっと何とかならないものかなぁ・・・