私は、テストで重要なのはカバレッジでなく、 「こうあるべき」と定義したAssertionであると思っています。 さらに言うと、データ/状態/操作の組み合わせパターンを変えて、 さまざまなAssertionのパターンを定義できる*1人が テストのスキルを持っていると言えるのではないでしょうか。 JUnitを利用して単体テストを行う時に「実装したソースコードを元にテストクラスを記述すること」は 非常に時間がかかってしまうものです。 実装によっては、そのメソッドが「何をすることを期待しているのか」 定義することが複雑になる為です。 大半の現場では、Assertionが定義しづらく、カバレッジ率のみで 「テストを実施している気になっている」ことが多いのが大半でしょう。 テストしてる感も実感でき、カバレッジ率を出すだけにならないテストクラスにする為には、 実装する前に意識することがいくつかあります。