一人前エンジニア道場

テストと品質 / 約20分

結合テストとE2Eテスト

なぜこれを学ぶか

単体テストだけではアプリ全体が正しく動くかは分かりません。テストには役割の異なる複数の種類があり、バランス良く組み合わせる必要があります。

テストピラミッド という考え方があります。土台に 単体テスト(多数・高速・安価)、中間に 結合テスト(複数の部品の連携を確認)、頂点に E2Eテスト(画面操作を含めた一連の流れ全体を確認・少数・低速・高価)を積み上げるイメージです。

結合テスト は、単体では動く部品同士を組み合わせた時に正しく連携するかを確認します。例えばAPIとDBを実際に繋いで「注文を作成したら在庫が減るか」を確認するテストです。

E2E(End-to-End)テスト はブラウザを操作してユーザー視点で「ログイン→商品購入→注文完了」のような重要な導線を確認します。実行に時間がかかるため、重要な導線に絞る のが定石です。

「全部E2Eで書く」はアンチパターンです。実行に時間がかかりすぎて開発サイクルが遅くなり、失敗時にどこが壊れたのか特定しにくくなります。

重要ポイント

  • テストピラミッド: 単体(多)→結合→E2E(少)
  • 結合テストは部品同士の連携を確認する
  • E2Eは重要な導線に絞る(全部E2Eはアンチパターン)

理解度チェック

選ぶと即座に解説が表示されます。

E2Eテストばかり増やしていたら、テストの実行に30分以上かかるようになった。何が起きているか?

ヒントを見る

テストピラミッドの形を思い出しましょう。本来「少数」であるべき層が肥大化すると、ピラミッドの形はどうなるでしょうか。

スキルセルフチェック

このレッスンの内容をどの程度理解できましたか?