知識整理のために投稿しています。
本は 初めての自動テスト ~Webシステムのための自動テスト基礎~ (O'REILY)です。
先人の教訓
- 全ての自動テストが同等の力を持つわけではない
- テストを「書くことができる」状態が、「書くべき」だという理由にはならない
- スピードとフィードバックが重要
つまり、1つのテストが万能薬のように働くことはない!
→ うまく組み合わせて用いることが必要
テストのピラミッド
UIテスト
[利点]
- エンドツーエンドで動く
- ユーザと同じ対象を見る
[欠点]
- 高コストで遅い
統合テスト
[利点]
- WebサービスとAPIがテストできる
- つながりを見られる
[欠点]
- 詳細さに欠ける
ユニットテスト
[利点]
- 超高速
- 多目的に利用できる
[欠点]
- 結合部分の確認に弱い
自動テストの方針
- UIテストよりユニットテストを優先する
- ユニットテストで埋められない部分を統合テストでカバーする
- UIテストは限定的に使う
- 全てを自動化しようとせず、代わりに、過不足なく自動化すること
- 上位と下位のテストがかぶることもある
- ただしそれらはスコープが違う
- 協調して無意味な重複を避けていくことが大事
- 探索的テスト(手順化されてないテスト)も忘れないこと
