同値クラステスト

同値クラスとは「内部的に同じ値として扱う範囲」であり、同値クラステストはプログラマが自然と行っているテスト手法の1つです。
例えば、整数を1つ引数に取り20未満である場合にtrueを返す関数があったとします。この関数をテストする為の妥当な入力値として、私たちは10と30のようにtrueを返す値1つと、falseを返す値1つの2つを選択するでしょう。人によっては5と20を選択するかもしれません。しかし、0と10の選択ではあまり効果的ではないと”なんとなくは”理解できます。この”なんとなく”は同値クラスという技法として説明できます。
同値クラスとは、その関数で内部的に同じ値として扱う範囲です。したがって、この関数では20未満の整数という範囲と20以上の整数という範囲の2つしか存在しません。同値クラスの範囲内ではどの値を選択したとしても、同様に扱われる前提となっているため、5と20、10と30といった組み合わせは適切なテストの入力値として選択されているのです。一方、0と10は同じ同値クラスの範囲なのでテストケースとしては1つです。
”念のために”同値クラスの範囲で複数の値をテストすることもできます。しかし、幾らテストケースを増やしたとしても同値クラスの中で選択されている以上、大きな効果を持つことは期待できないでしょう。一方、同値クラスを意識し、適切に選択することにより最小限のテストケースで最大限の効果を得ることができます。
同値クラステストは、ごく自然に行っているテスト技法ですが、テストの入力値を選択する場合に最も基本的な選択方法です。

はじめて学ぶソフトウェアのテスト技法

はじめて学ぶソフトウェアのテスト技法