テストケースのカバレッジ
お隣のチームがカバレッジの話で盛り上がってたようなのだが、カバレッジってどこまで有効な指標なのだろうか?
ぼくのイメージでは、
- コードが網羅的に記述されている。
- 全ての組み合わせが網羅されている。
- 関数が状態を持たない。
と言う場合には、カバレッジを取ることは意味があると思う。
コードがゴールデンとみなせる場合には、カバレッジを取ることでテストケースが十分か測定できる。すなわち、カバレッジを測定しても、現在存在するコード以上のことはわからない。
しかし、得てしてコードに不備があることが多い。すなわち、条件文の分岐数が十分でない、とか、ある論理値の組み合わせの時はすり抜けてしまう、とか。この時には、カバレッジを取ってもしょうがない。
逆に、必要なコードが抜けてたとしても、現状のコードをテストするパターンがあれば、カバレッジ100%を達成することは可能なのだ。
そう言う意味で、コードの完全性に対してのカバレッジを測定する方法って、ないものだろうか? もしくは、テストケースが十分たりている、と言う指標のようなもの。