【てすとぴらみっど】
テストピラミッド とは?
最終更新:
💡 小さなテストで土台を作り、大きなテストでつながりを確かめる
自動テストを異なる粒度で組み合わせ、細かく速いテストを多く、広い範囲のテストを絞る考え方をピラミッドで示した指針。各層の呼び方や適切な割合は対象によって変わる。
📌 このページのポイント
テストピラミッドって何なの?
なんで下が一番多いの?
確認する範囲が小さいと、速く実行しやすく、失敗の原因も絞りやすいからだよ。ただし実行時間や安定性は実装次第で、「数千件が必ず数秒」とは決まっていないんだ。
じゃあE2Eテストだけたくさん書けば全部カバーできるんじゃないの?
小さな不具合を毎回システム全体で調べると、実行や原因調査・保守の負担が増えやすいよ。でもユニットテストだけでは接続の問題を見逃す。重要な利用経路をE2Eで確かめる役割も残るんだ。
理想的な比率ってどのくらいなの?
全プロジェクト共通の正解はないよ。件数だけで決めず、重要なリスクを検知できるか、実行時間や維持の負担はどうかを見て調整するんだ。
最近はピラミッド以外の考え方もあるって聞いたけど?
Kent C. Doddsのテスティングトロフィーは、JavaScriptアプリを念頭に結合テストを重視する指針だよ。静的検査も含む。対象と「結合テスト」の意味が違う場合もあるので、名前だけで優劣を決めないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「テストピラミッド」って出てきたら「細かいテストを土台に、広い範囲のテストも組み合わせる指針」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test Pyramid」 = テストのピラミッド
💬 Mike Cohnが広めたモデルだよ。元の層はUnit・Service・UI。現在は結合・E2Eなどの呼び方でも説明されるけれど、層の名前や割合を固定する規格ではないんだ。