テストの品質


InfoQ : 良いテストの品質とは何か?


シンプルな内容ですが、テスト戦略を立てたり、テストケースを作成したりするときのポイントがまとまっています。


JUnitの開発者であり、TDDを提唱したKent Beck氏の以下の内容が分かりやすい。

1)分離していること (他のテストが存在していようといまいと、その結果に影響を受けないこと)
2)自動化されていること
3)速く書けること
4)速く実行できること
5)一意であること (他のテストによって提供されたり、他のテストとの相関関係があったりすることなく、確実なものであること)

http://www.infoq.com/jp/news/2008/10/qualities_good_test


ただ、Kent Beck氏の原文にも書かれているのですが、これらのことを実現するには、テストスキルよりも設計スキルが重要。


テストケースを作成するタイミングで考えるのではなく、設計時にテストのことも考慮しておくかがカギ。
特に、自動化なんて、予め考えておかないと、コストがかかり過ぎて実現できなくなります。


「テスト戦略」というと大げさな感じがしますが、どのようにテストをするかを設計の段階から考えておくことで、


テストがしやすくなる
 → 品質が向上する
 → テスト工数が低減する


と繋げることが可能になります。