【JSTQB試験対策】ブラックボックステスト技法① 『同値分割法』について、分かりやすく解説

同値分割法とは
JSTQB Foundation Level試験を目指して学習中の皆さん、こんにちは。今回は、ブラックボックステスト技法の中でも特に重要な「同値分割法」について詳しく解説していきます。
同値分割法は、テストケース設計の基本となる技法であり、効率的なテストの実現に欠かせません。適切に活用することで、限られたリソースの中で最大限の品質担保を実現できます。
同値分割法の定義
同値分割法とは、入力データを「同等に処理されると想定される値の集合(同値パーティション)」に分割し、各パーティションから代表値を選んでテストを実行する技法です。
例えば、年齢入力フィールドに1〜120の値を入力した場合は「有効」、それ以外の値を入力した場合は「エラー」となるシステムを考えてみましょう。この場合、すべての値(例えば1から120まで)を個別にテストするのではなく、「1〜120」という有効値のグループから代表値(例:60)を一つ選び、「0以下」「121以上」という無効値のグループからそれぞれ代表値(例:-1、150)を選んでテストします。
同値分割法の基本概念
同値パーティションとは
同値パーティション(同値クラスとも呼ばれます)とは、システムが同じように処理すると想定される入力値の集合のことです。
同値パーティションは以下の2種類に分類されます。
- 有効同値パーティション:システムが正常に受け入れる値の範囲
- 無効同値パーティション:システムが拒否する、またはエラーとして扱う値の範囲
■重要なポイント
各パーティション内のどの値を選んでも、システムの振る舞いは同じになると仮定します。そのため、各パーティションから1つずつ代表値を選ぶことで、効率的にテストが実施できます。

同値分割法の実践手順
実際にテストケースを作成する際の手順を見ていきましょう。
ステップ1:仕様の確認
まず、テスト対象の仕様を正確に理解します。入力値の範囲、有効な値、無効な値、システムの振る舞いなどを明確にします。
ステップ2:同値パーティションの識別
仕様に基づいて、入力値を有効同値パーティションと無効同値パーティションに分割します。この際、システムの振る舞いが変わる境界に注目することが重要です。
ステップ3:代表値の選択
各同値パーティションから、テストに使用する代表値を1つ以上選択します。代表値は、パーティション内の任意の値で構いませんが、典型的な値を選ぶことが一般的です。
ステップ4:テストケースの作成
選択した代表値を使って、テストケースを作成します。各テストケースには、入力値と期待される結果を明記します。
具体例で理解する同値分割法
例:年齢入力フィールドのテスト
「年齢を入力してください(1〜120)」という入力フィールドをテストする場合を考えてみましょう。
仕様:
- 有効な入力:1以上120以下の整数
- 無効な入力:0以下、または121以上の値
この仕様に基づいて同値パーティションを識別すると、以下のようになります。

このように、3つのパーティションから代表値を選ぶことで、効率的にテストケースを設計できます。
同値分割法のメリット
同値分割法を活用することで、以下のようなメリットが得られます。
1. テスト工数の大幅な削減
すべての入力値をテストするのではなく、代表値のみをテストするため、テストケース数を大幅に削減できます。例えば、1〜120の120個の値をすべてテストする代わりに、3つの代表値でカバーできます。
2. 体系的なテスト設計
入力値を論理的に分類することで、抜け漏れのないテスト設計が可能になります。どの範囲をテストしたか、どの範囲がまだテストされていないかが明確になります。
3. 欠陥検出の効率化
各パーティションの代表値でテストすることで、効率的に欠陥を検出できます。特定のパーティション内で欠陥が見つかれば、そのパーティション全体に問題がある可能性を示唆します。
4. メンテナンス性の向上
テストケースが体系的に整理されているため、仕様変更時の影響範囲が把握しやすく、テストケースの修正も容易になります。
同値分割法の注意点
同値分割法は非常に有用な技法ですが、以下の点に注意が必要です。
⚠️ 境界値の扱い
同値分割法では各パーティションから任意の代表値を選びますが、経験上、バグは境界付近で発生しやすい傾向があります。そのため、同値分割法と境界値分析を組み合わせて使用することが推奨されます。
⚠️ 同値性の仮定
同値分割法は「パーティション内のすべての値が同じように処理される」という仮定に基づいています。しかし、実際には仕様に記載されていない特別な処理や、実装上のバグにより、この仮定が成り立たない場合があります。
⚠️ 複数の入力条件の組み合わせ
複数の入力項目がある場合、それぞれを単独で同値分割するだけでは不十分な場合があります。入力項目間の組み合わせも考慮する必要があり、その際はデシジョンテーブルテストなどの技法と併用すると効果的です。
JSTQB試験での出題ポイント
JSTQB Foundation Level試験では、同値分割法に関する問題が頻出します。以下のポイントを押さえておきましょう。
- 📌 同値パーティションの正しい識別:仕様から有効・無効のパーティションを正確に特定できるか
- 📌 代表値の適切な選択:各パーティションから適切な代表値を選べるか
- 📌 テストケース数の計算:同値分割法により何個のテストケースが必要になるかを計算できるか
- 📌 他のテスト技法との違い:境界値分析などの他の技法との違いを理解しているか
まとめ
同値分割法は、ブラックボックステストにおける最も基本的で重要な技法の一つです。以下のポイントを再確認しましょう。
- 同値分割法は、入力データを同等に処理される値の集合(同値パーティション)に分割する技法
- 各パーティションから代表値を選ぶことで、テストケース数を削減できる
- 有効同値パーティションと無効同値パーティションの両方をテストすることが重要
- 境界値分析など他の技法と組み合わせることで、より効果的なテストが可能
テスト設計の際には、同値分割法の考え方を意識することで、効率的かつ効果的なテストケースを作成できます。実務でもJSTQB試験でも、この技法をしっかりと理解し、活用できるようにしておきましょう。
次回は、同値分割法と併用されることの多い「境界値分析」について詳しく解説していきます。
JSTQB(日本ソフトウェアテスト技術者資格)は、ソフトウェアテストの専門的な知識と技術を認定するための資格です。この資格は、ソフトウェアテストのプロフェッショナルとして必要なスキルを証明するものとして、業界で広く認知されています。
JSTQBは、国際的な基準であるISTQB(International Software Testing Qualifications Board)に基づいており、日本国内のソフトウェアテスト分野における実務能力を向上させるための指針となっています。
株式会社NSITでは、ソフトウェアテストに従事するエンジニアの約9割が、JSTQBの資格を取得しております。