LESSON 30分

テストの種類を知ろう

ストーリー

「テストをしてね」と言われたけど、テストってどんな種類があるの?

「テストにはいろいろな種類があるんだ。まずは全体像を把握しよう」

「全部覚えないといけないんですか?」

「全部を深く知る必要はないよ。でも種類を知っていれば、どのテストの話をしているか理解できるようになる」


テストの全体像

ソフトウェアテストは、テストする範囲によって種類が分かれます。

小さい範囲                           大きい範囲
←─────────────────────────────────────────→

[単体テスト] → [結合テスト] → [システムテスト] → [受入テスト]
  部品1つ      部品の組合せ    システム全体      顧客の確認

4つのテストレベル

1. 単体テスト(Unit Test)

1つの関数やクラスが正しく動くか確認するテストです。

javascript
// テスト対象の関数
function add(a, b) {
  return a + b;
}

// 単体テスト
test('1 + 2 は 3 になる', () => {
  expect(add(1, 2)).toBe(3);
});

test('0 + 0 は 0 になる', () => {
  expect(add(0, 0)).toBe(0);
});

test('-1 + 1 は 0 になる', () => {
  expect(add(-1, 1)).toBe(0);
});
項目内容
テスト範囲関数1つ、クラス1つ
実行速度非常に速い(数ミリ秒)
誰がやるか開発者
目的部品が正しく動くか確認

2. 結合テスト(Integration Test)

複数の部品を組み合わせたときに正しく動くか確認するテストです。

例: ユーザー登録機能のテスト

[入力フォーム] → [バリデーション] → [データベース保存] → [メール送信]

それぞれの部品は単体テストでOKでも、
組み合わせたときに問題が起きることがある
項目内容
テスト範囲複数のモジュールの連携
実行速度やや遅い(データベースやAPIとの通信が発生)
誰がやるか開発者
目的部品同士の連携が正しいか確認

3. システムテスト(System Test)

システム全体が仕様通りに動くか確認するテストです。

例: ECサイトのシステムテスト

テスト項目:
- 商品検索ができるか
- カートに商品を追加できるか
- 購入処理が完了するか
- 注文確認メールが届くか
- 管理画面で注文が確認できるか
項目内容
テスト範囲システム全体
実行速度遅い(システム全体を動かす)
誰がやるかテスト担当者(QA)
目的システム全体が仕様通りに動くか確認

4. 受入テスト(Acceptance Test)

顧客やユーザーの視点で、要件を満たしているか確認するテストです。

例: 受入条件に基づくテスト

受入条件: 「ユーザーはメールアドレスでログインできること」

テスト:
1. ログインページを開く
2. メールアドレスとパスワードを入力する
3. ログインボタンを押す
4. ダッシュボードが表示されることを確認する
項目内容
テスト範囲ビジネス要件
実行速度遅い(人間が操作する場合も)
誰がやるか顧客、プロダクトオーナー
目的ビジネス要件を満たしているか確認

テストの比較表

種類範囲速度コスト実行頻度
単体テスト速い毎コミット
結合テスト普通毎日〜毎週
システムテスト遅いリリース前
受入テスト全体遅いリリース前

テストピラミッド

理想的なテストの量は「ピラミッド型」です。

        /\
       /  \        受入テスト(少数)
      /    \
     /------\
    /        \     システムテスト(適度)
   /          \
  /------------\
 /              \   結合テスト(多め)
/________________\  単体テスト(最も多い)

下の層(単体テスト)を多く、上の層(受入テスト)を少なくするのが効率的です。


新人が関わるテスト

最初のうちは、すべてのテストに関わる必要はありません。

テスト新人の関わり方
単体テスト自分のコードにテストを書く
結合テストテスト手順書に従って実行する
システムテストテスト手順書に従って実行する
受入テスト見学・補助(理解を深める)

まとめ

ポイント内容
単体テスト1つの関数やクラスの動作確認
結合テスト複数の部品の連携確認
システムテストシステム全体の動作確認
受入テストビジネス要件の確認
テストピラミッド単体テストを多く、受入テストを少なく

チェックリスト

  • 4つのテストレベルをそれぞれ説明できる
  • テストピラミッドの考え方を理解した
  • 新人として最初に関わるテストがイメージできた

次のステップへ

テストの種類が理解できましたか?

次のセクションでは、テストケースの読み方を学びます。 テスト手順書を渡されたときに、何が書いてあるか理解できるようになりましょう。


推定読了時間: 30分