単体テスト

ソフトウェア開発で単体テストってどこまでやればいいんだろう?
何を基準にテストはこれで十分です、ってみんないっているんだろう?
今のところだと、テスト項目数とバグ件数を取得して、開発したステップ数からテスト密度、バグ密度を算出し、プロジェクトで定めているある範囲(過去の実績値より決定したもの)におさまればOK、というやりかたですが。
カバレッジもC0 100%を目標(通らないところは論理的に説明できればOK)として取得しているが、カバレッジだけではテスト終了判断の基準にはなっていない。

でも、

  • テスト項目数のカウントの仕方が人によってばらばら
  • バグのカウントの仕方が人によってばらばら

という実態があると思うんだけど。
バグのカウントの仕方なんて、xUnitを使うようになってから0件です、と言ってくる人もいる(これはこれで言いすぎだと思うけど)。
昔ほど開発と単体テストが分かれてなくて、同時に行うスタイルに変わってきているのもあり、カウントの仕方が難しい面があるのではと思う。
なので、がんばって色々なデータを取ってはいるが本当に信頼できるのかあやしいと思ってしまう。
世の中の人はどうやっているのかな。