0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バックエンド開発におけるテストの流れ ―単体テスト・結合テスト・E2Eテスト―

0
Last updated at Posted at 2026-03-14

テストの流れ

  1. 単体テスト(Unit Test)
    ├ サービス層テスト(Service Test)
    └ コントローラーテスト(Controller Test)
  2. 結合テスト(Integration Test)
  3. E2Eテスト(End-to-End Test)

テストピラミッドでは、下のレイヤーほどテスト数が多くなる構造が推奨されています。
一般的な目安として、

  • E2Eテスト:1割
  • 結合テスト:2割
  • 単体テスト:7割

程度のバランスになることが多いとされています。

E2Eテストは実行コストが高く不安定になりやすいため、できるだけ 下のレイヤー(単体テスト)で問題を検出する ことが望ましいとされています。

1. 単体テスト

単体テストでは、サービス層テストやコントローラーテストなど、アプリケーションを構成するクラス単位で動作を検証します。
ビジネスロジックやHTTP処理を個別に確認し、問題を早い段階で検出することが目的です。

サービス層テスト

サービス層テストでは、アプリケーションのビジネスロジックをテストします。
入力に対して正しい計算や処理結果が返るかを確認し、外部依存(Repositoryなど)はモックを使用して分離して検証することが一般的です。

コントローラーテスト

コントローラーテストでは、HTTPリクエストに対するレスポンスの挙動を確認します。
主にエンドポイントのマッピング、HTTPステータス、レスポンス形式(JSONなど)、バリデーションの動作を検証します。

2. 結合テスト

結合テストでは、複数のコンポーネントを組み合わせた動作を確認します。
例えば Controller・Service・Repository・DB などを実際に連携させ、アプリケーションの処理フローが正しく動くかを検証します。

3. E2Eテスト

E2E(End-to-End)テストでは、ユーザー操作を想定したシステム全体の動作を確認します。
フロントエンドとバックエンドを含めた実際のアプリケーション環境で、ブラウザ操作やAPIリクエストを通して処理が正しく完了するかを検証します。
例えば、ログインやデータ登録などの一連の操作を実行し、ユーザー視点でシステム全体が正常に動作するかを確認します。

まとめ

バックエンドのテストは、単体テスト・結合テスト・E2Eテストといったレイヤーごとに役割を分けて実施します。
テストピラミッドの考え方に基づき、単体テストを中心に多く書き、結合テストや E2Eテストは必要最小限にすることで、効率的に品質を担保できます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?