同値分割法(Equivalence Partitioning Testing)について
同値分割法とは
同値分割法とは
同値分割法とは、入力データを同じ特性を持つグループに分割し、各グループ内から代表的な入力データを選択してテストする技法です。
同値分割法は、ブラックボックステスト技法の一つであり、最小限かつ効果的なテストケースを作成できます。
Equivalenceは「同値、等価」という意味で、Partitioningは「分割」という意味です。
同値クラスとは
同値クラスとは、ある入力データと同じ特性を持つグループのことです。
入力データが有効になるものを「有効同値クラス」、拒否されるデータを「無効同値クラス」として分類します。
同値クラスは、「同値パーティション」と呼ぶこともあります。
同値分割法の根拠
同値分割法は、「その範囲はどの値でも同等に処理されることが合理的に予想される」という考えに基づいています。
つまり、同じ結果となる入力値を等価と見なすことができる場合に、効果が発揮できるテスト技法です。
同値分割法の実施例
前提条件
同値分割法の例として、学校や資格試験などでおなじみのペーパーテストを挙げてみます。
仕様は以下の通りです。
- 点数が60点以上の場合には「合格」とする。
- 点数が60点未満の場合には「不合格」とする。
- 0から100までの整数を有効な値として扱う。(無効な値の場合はエラー表示)
1.同値クラスを分類する
入力データを同じ特性を持つグループに分けることを「同値クラスを作る」といいます。
ここでは、「合格という有効同値クラス」と、「不合格という有効同値クラス」と、それ以外の「無効同値クラス」に分類します。
2.代表値を決定する
代表値は、各同値クラスからテスト用の値をランダムに選択します。
代表値を選ぶ上でのルールは「各同値クラスから代表値を最低1つ選ぶ」ということのみです。
3.テスト条件を決定する
代表値を基にしてテストケースを作成します。
# | 入力データ | 期待値 |
---|---|---|
Case 1 | -10 | エラーが表示される。 |
Case 2 | 30 | 不合格と表示される。 |
Case 3 | 80 | 合格と表示される。 |
Case 4 | 120 | エラーが表示される。 |
以上で、テストケースが作成されたので、テスト実施を準備します。
同値分割法の注意点
テストが有効にならない場合がある
同値分割法は、入力値を等価と見なすことができる場合に、用いることができるテスト技法です。
そのため、数値のような連続した入力値の中に特別な扱いをするものが存在するシステムの場合には、十分なテストの効果が見込めないことになります。
この点は、テスト設計プロセスにおいて、同値分割法を用いたいテストが有効かどうか、システムの仕様を十分に考察する必要があります。
境界値のバグを検出できない
同値分割法は、境界値のバグを検出することには有効ではないテスト技法です。
例えば、各同値クラスの中間値(平均値)を代表値として設定したテストの場合、境界値を判別する処理に対してのテストは実施できていません。
つまり、一般的に不具合が発生しやすいといわれる境界に関係する処理に対して有効なテストではないということです。
通常このようなケースに対しては、境界値分析などの別のテスト手法を併用する手段を採用します。