同値分割法(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 エラーが表示される。

同値分割法の注意点

テストが有効にならない場合がある

同値分割法は、入力値を等価と見なすことができる場合に、用いることができるテスト技法です。
数値のような連続した入力値の中に、特別な扱いをするものが存在する場合には、十分なテストが実施できていないことになります。
果たしてテストが有効かどうか、システムの仕様を十分に考察して、検討する必要があります。


境界値のバグを検出できない

各同値クラスでは、例えば各同値クラスから中間の値を用いてテストした場合、境界値のバグを見逃す可能性があります。
これについては、境界値分析などの別のテスト手法を併用する必要があります。


関連ページ