同値分割法とは
ブラックボックスで使用されるテスト技法の一つで
出力結果が同じ結果となる値の集合(同値パーティション)を区分してテストを実行すること
例:
入力値が0~100→OKと出力する
負の値 or 100より大きい場合NGと出力する
この時、0~100の値を有効同値パーティション、無効になるものを無効同値パーティションという。
入力値を同値パーティションに分けることで、テストする値を絞りこむことができる
同値クラスとは
「その範囲はどの値でも同等に処理されることが合理的に予想される」集まり
もっと具体的に
例えばペット用室温計を例に考えてみる
チワワ飼育用の室温系があるとする
室温系は現在の室温表示蘭と、チワワにとって適温かどうかを表示するメッセージ欄がある。
室温に応じて以下のようにメッセージが表示されるとする
NO | 室温 | 表示メッセージ |
---|---|---|
1 | 24.0℃未満 | 寒い |
2 | 24.0℃以上26.0℃未満 | 快適 |
3 | 26.0℃以上 | 寒い |
これを同値分割法を用いて表示メッセージのテストケースを作成する場合、いかのようになる
NO | テストデータ | 期待結果(表示メッセージ) | テストデータを選んだ理由 |
---|---|---|---|
1 | 20.0℃ | 寒い | "寒い"の代表値 |
2 | 23.9℃ | 寒い | "寒い"の境界値(上限) |
3 | 24.0℃ | 快適 | "快適"の境界値(下限) |
4 | 25.0℃ | 快適 | "快適"の代表値 |
5 | 25.9℃ | 快適 | "快適"の代表値(上限) |
6 | 26.0℃ | 暑い | "暑い"の代表値(下限 |
7 | 30.0℃ | 暑い | "暑い"の代表値 |
テストケース作成までの流れ
- まずは、同値分割法でざっくりと作成
- 次に、境界値分析にも着目したテストケースを作成
- 最後に、テストケースをマージする
→同期分割法では境界値分析と一緒に用いられることが多いため、境界値にも着目したテストケースとなる
「同値クラス」はJSTQB-Foundation Levelシラバス(Version 2018.J03)で「同値パーティション」と表記されています。