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つずつ代表を取る」こと。
しっかり練習すれば、他のテスト設計技法(境界値分析や状態遷移など)にも応用できます!



コメント