【ISTQB /JSTQB FL 4.0解説】同値分割法(Equivalence Partitioning)の考え方と問題例を徹底解説!

JSTQB Fundation Level 4.0

ISTQB Foundation 4.0 第4章「テスト分析と設計(Test Analysis and Design)」の中で重要なテーマのひとつが、**ブラックボックステスト技法(Black-box Test Techniques)**です。

今回はその中でも、最も基本かつ頻出な「同値分割法(Equivalence Partitioning:EP)」を解説します。


🔍 同値分割法(Equivalence Partitioning)とは?

**同値分割法(EP)**とは、入力データをいくつかの「グループ(パーティション)」に分け、その中の1つを代表としてテストする手法です。

定義:

入力値を“同じように振る舞う”範囲(クラス)に分け、各クラスから1つのテストケースを選ぶことで、最小限のテストで最大の網羅性を得る。


✅ 簡単な例で理解しよう

例:「マネージャー以上が休暇申請を承認できる」

  • マネージャー未満(エンジニア、リードなど) → 承認できない

  • マネージャー以上(マネージャー、部長、VPなど) → 承認できる

ここで、全員を1人ずつテストする必要はありません。

それぞれのグループ(パーティション)を代表する1人を選べば十分です。

つまり:

  • 承認できないグループ → 1テストケース

  • 承認できるグループ → 1テストケース

    合計 2つのテストケース で全体の動作を確認できます。


⚠️ 同値分割法の注意点

ただし、すべてのパーティションが完全に同じ動作をするとは限りません。

たとえば、部長とVPでシステム設定が異なる場合、1つのテストだけでは不十分になる可能性もあります。

同値分割法は「効率化のための近似手法」であるという点を理解しておきましょう。


🧮 同値分割法の実践例①:数値入力

例題:

「整数フィールドには、1〜15の値(1と15を含む)を入力できる」

この条件を基にパーティションを作成します。

区間

分類

値 < 1

無効(Invalid)

0

1〜15

有効(Valid)

10

値 > 15

無効(Invalid)

16

👉 3つのパーティションに分かれます。

したがって、最小3つのテストケースで十分です。

ポイント:

「未満」「以下」「以上」などの比較演算子の扱いに注意!

例:<1<=1 では含まれる値が異なります。


🧩 同値分割法の実践例②:選択肢問題の理解

問題:

「整数フィールドは1〜15(1と15を含む)。

どの選択肢が“有効な同値クラスの組み合わせ”か?」

正しい組み合わせは次の通り:

区間

意味

値 < 1

無効

1〜15

有効

値 > 15

無効

選択肢A:「<1」「1〜15」「>15」 → ✅ 正解

選択肢B:「負の数」「1〜15」「15より大きい」 → ❌(0が抜けている)


💰 同値分割法の実践例③:給与と課税スラブ

シナリオ:

システムが給与に応じて税額を計算する。

  • 〜4,000:課税なし

  • 次の1,500(4,001〜5,500):10%

  • 次の28,000(5,501〜33,500):22%

  • 33,501以上:40%

これを同値分割表にまとめると次のようになります。

区間

税率

パーティション

0〜4,000

0%

有効(1)

4,001〜5,500

10%

有効(2)

5,501〜33,500

22%

有効(3)

33,501以上

40%

有効(4)

問題例:「どのグループの値が同じ同値クラスに属するか?」

選択肢D(例:5,800、28,000、32,000)はすべて**第3クラス(22%)**に属し、正解となります。


🧠 まとめ:同値分割法のポイント整理

観点

内容

目的

テストケース数を最小化しつつ最大の網羅性を確保

基準

入力値が「同じ結果をもたらす範囲」ごとに分割

作り方

有効値・無効値を含めて3区間に分けるのが基本

注意点

「未満」「以上」などの境界条件を誤らない

活用場面

数値入力、範囲指定、条件分岐などの検証に有効

🏁 まとめ

同値分割法は、ISTQB Foundation試験のブラックボックス技法で最もよく出題されるトピックです。

試験では、「最小のテストケース数」や「有効/無効なパーティションの組み合わせ」が問われます。

理解のポイントは「範囲を正しく分け、1つずつ代表を取る」こと。

しっかり練習すれば、他のテスト設計技法(境界値分析や状態遷移など)にも応用できます!

コメント

タイトルとURLをコピーしました