■ 同値分割法とは?
ブラックボックステストで使用されるテスト設計技法の一つで、
テスト対象の入力値や出力値を、
性質や挙動が同じだとみなせる範囲(同値クラス)に分割し、
各クラスから代表的な値を選んでテストを行う方法です
この技法は、テストケースを効率的に設計し、網羅性を高めるために使用されます
・特徴
-> 効率的なテスト
同じクラス内の値は同じ処理が行われると仮定される為、
全ての値をテストする必要がなくクラスごとに代表値を1つ選べば十分です
-> 網羅性の向上:
異なる同値クラスをカバーすることで、全体的なテストの網羅性を高められます
・同値クラスの種類
-> 有効同値クラス:正常動作を期待する入力値の範囲
[例] 入力が1~100の範囲の場合、「1~100」が有効同値クラス
-> 無効同値クラス:異常動作を誘発する入力値の範囲
[例] 入力が1~100の場合、「0以下」や「101以上」が無効同値クラス
【例】
ショッピングサイトにて、商品の購入数量に制限を設けている場合:
仕様:
・購入数量は「1~100」の範囲内で入力可能
・購入数量が「1~100」の場合は、カートに追加が可能
・購入数量が「0以下」または「101以上」の場合はエラーメッセージを表示
・利点/欠点
■ 利点
・テストケースの効率化:代表値を選ぶことで、テストケースの数を削減できる
・網羅性の向上:有効・無効クラスを網羅的にテストすることが可能
・重要なケースを見落とすリスクが減る
・設計の明確化:1.仕様を整理しやすく、2.仕様の不明点も発見しやすい
■ 仕様を整理しやすい:
・システムの仕様をもとに、
入力データの有効(期待される動作)/無効(エラー処理対象)範囲を明確に定義できる
・入力値を整理する過程で、
どの条件がカバーされていないかや、同じ条件が重複しているかを発見しやすくなる
・各同値クラスから代表値を1つ選べばよい為、テストケースが無駄なく効果的に設計可能
■ 仕様の不明点を発見しやすい
・"有効範囲と無効範囲の境界が明確でない"場合、
どの値が有効なのか仕様書に書かれていないケースが発見できる
(境界条件の曖昧さの発見)
例:「1~100の数値が有効」と記載されているが、境界値である0や101の扱いが不明確
・無効な入力に対するエラーメッセージや処理が記載されていない場合が発見できる
(例外条件の不足の発見)
■ 欠点
・境界値に弱い:境界付近のテストが不足しやすい
・分割の難しさ:正しい同値クラスの分割が難しい場合がある
・網羅性の限界:クラス内の特殊ケースを見逃す可能性がある
※他の技法(例:境界値分析)と併用すると効果が高まります
・まとめ
同値分割法は、テストの効率性、網羅性、設計の明確化など多くのメリットを持ち、
特に仕様が明確で入力範囲が広い場合に効果を発揮します
他の技法(境界値分析など)と組み合わせて活用することで、
より高品質なテスト設計が可能となります
「■ テスト技法:境界値分割」へ続く
https://qiita.com/aokimakiko/items/12da8b3ecf64415c7046