単体テストを多く、結合テストを中くらい、E2E は主要な流れだけ、という自動テストの量の配分の目安。
テストピラミッドは、テストの種類ごとの「量の配分」の目安です。下ほど速く安く安定しているので数を多く、上ほど遅く壊れやすいので数を絞ります。
| 層 | 何を確かめるか | 速さ・安定 | 量の目安 |
|---|---|---|---|
| 単体テスト | 関数・クラス1つの動き | 数ミリ秒。とても安定 | 最も多い |
| 結合(API・コンポーネント)テスト | DB や他の部品とつないだ動き、API の入出力 | 数十ミリ秒〜数秒 | 中くらい |
| E2E テスト | ブラウザやアプリで利用者の操作を通しで | 数秒〜数分。不安定になりやすい | 主要な流れだけ |
| 手動・探索的テスト | 見た目・使いやすさ・想定外の使い方 | 人の時間がかかる | 自動化できない部分に集中 |
上が太い「アイスクリームコーン型」(E2E と手動ばかり)になると、テストが遅く、壊れやすく、直すのが大変になります。E2E で見つけた不具合は「下の層で見つけられなかったか」を考えます。
面接ではこう答える
テストピラミッドは、自動テストの種類ごとの量の配分の目安です。下の単体テストは速く安定しているので数を多く、真ん中の結合テストは中くらい、上の E2E テストは遅く壊れやすいので主要な流れだけに絞ります。逆に E2E と手動ばかりのアイスクリームコーン型になると、テストが遅く壊れやすくなります。E2E で見つかった不具合は、下の層で見つけられなかったかを考えます。
QAとの関わり自動化の戦略を立てるとき、開発者とテストの分担を決めるときの共通の言葉です。