テストのピラミッドを3分で理解する

IT関連知識

「テストのピラミッド」とはMike Cohnの「Succeeding with Agile」という本で最初に提唱されたモデルです。

テストレベルごとに、どれくらいテストに力量注ぐべきか?的なことをピラミッド(三角形)に沿って提唱されてます。

下記の図の通り、ユニットテストは高速で実行できる為、ユニットテストをたくさん実行した方が費用対効果は高く、

ピラミッドの上に行くに従って、テストの実行時間もかかるし、テストの実行は少なくしたほうがいいよ。ということを表してます。

要は

  • UIテストよりユニットテストを優先する
  • ユニットテストでカバーできないテストは結合テストでカバーする
  • UIテストは極力最小限にする

というようにしましょう。というモデルになります。

具体的には

ユニットテストは「壊れる可能性があるものは全てテストする」という考え方で、

結合テストは「ユニットテストでカバーしきれなかった部分と大まかなつながりをテストする」という考え方で

UIテストは「エンドツーエンドでシステムを確認すること、そしてUIとの接続をテストする」という考え方で

テストを行うと良いかと思います。

ちなみに

UIテストが多く、ユニットテストが少ない状態のことを

「逆ピラミッド」または「アイスクリームコーン」の状態。と言ったりするようです。