「テストのピラミッド」とはMike Cohnの「Succeeding with Agile」という本で最初に提唱されたモデルです。
テストレベルごとに、どれくらいテストに力量注ぐべきか?的なことをピラミッド(三角形)に沿って提唱されてます。
下記の図の通り、ユニットテストは高速で実行できる為、ユニットテストをたくさん実行した方が費用対効果は高く、
ピラミッドの上に行くに従って、テストの実行時間もかかるし、テストの実行は少なくしたほうがいいよ。ということを表してます。
要は
- UIテストよりユニットテストを優先する
- ユニットテストでカバーできないテストは結合テストでカバーする
- UIテストは極力最小限にする
というようにしましょう。というモデルになります。
具体的には
ユニットテストは「壊れる可能性があるものは全てテストする」という考え方で、
結合テストは「ユニットテストでカバーしきれなかった部分と大まかなつながりをテストする」という考え方で
UIテストは「エンドツーエンドでシステムを確認すること、そしてUIとの接続をテストする」という考え方で
テストを行うと良いかと思います。
ちなみに
UIテストが多く、ユニットテストが少ない状態のことを
「逆ピラミッド」または「アイスクリームコーン」の状態。と言ったりするようです。