テストの品質
シンプルな内容ですが、テスト戦略を立てたり、テストケースを作成したりするときのポイントがまとまっています。
JUnitの開発者であり、TDDを提唱したKent Beck氏の以下の内容が分かりやすい。
1)分離していること (他のテストが存在していようといまいと、その結果に影響を受けないこと)
http://www.infoq.com/jp/news/2008/10/qualities_good_test
2)自動化されていること
3)速く書けること
4)速く実行できること
5)一意であること (他のテストによって提供されたり、他のテストとの相関関係があったりすることなく、確実なものであること)
ただ、Kent Beck氏の原文にも書かれているのですが、これらのことを実現するには、テストスキルよりも設計スキルが重要。
テストケースを作成するタイミングで考えるのではなく、設計時にテストのことも考慮しておくかがカギ。
特に、自動化なんて、予め考えておかないと、コストがかかり過ぎて実現できなくなります。
「テスト戦略」というと大げさな感じがしますが、どのようにテストをするかを設計の段階から考えておくことで、
テストがしやすくなる
→ 品質が向上する
→ テスト工数が低減する
と繋げることが可能になります。