[QA]同値分割


これはなに?

同値分割というテスト技法がどういうものなのか
また、どういう場面で使うべきものなのかを例を混ぜながら説明した記事になります

この記事に書かれていること

  • 同値分割とは?
  • 同値分割の使用場面と使用例

同値分割とは?

ソフトウェアテストのテストケースを設計する代表的なテクニックの1つ。システム機能における入力、出力関係の集合をいくつかの同値クラスに分け、各クラスから代表値を選んでテストデータとする方法をいう。 IT Media エンタープライズより引用

引用にもあるとおり、入力に対して同じ出力をするものをいくつかのグループに分けて、各グループごとに代表値を選んでテストする、というものです。

同値分割の使用場面と使用例

なんなのかは分かったけど、実際にどう言う場面で使われるの?と思った方に向けて書いています。

使用場面

同値クラスだった場合の処理が同じであり、どの値を入力しても共通の出力をする場合、同値分割を行います。

使用例

以下のような項目で割引額が正しく機能しているかを確認したいと仮定します。

  • 5,000円以上の購入で5%OFF
  • 10,000円以上の購入で10%OFF
購入金額 割引率
0~4,999円 割引なし
5,000~9,999円 5%OFF
10,000円~ 10%OFF

単純に考えると0~10,001円の購入を合計10,002回繰り返せば良いのですが、皆さんご存知のとおり、リリースまでにそんな時間はあるわけもないです。

そこで同値分割の出番です。

同値分割では出力結果が同じと期待される入力ごとにグループ分けをしてグループごとにテストをするという手法です。

今回の例で言うと、購入金額が0~4,999円5,000~9,999円10,000円~の3つのグループに分けられます。

この3つの各グループで代表的な値を入力することで網羅性を落とさずにテストを行うことができ、かつテストにかける工数を大幅に減らすことができます

まとめ

今回の同値分割については手法を知らずとも無意識にやりそうなものですが、しっかりと自分の知識として定着させるために書いてみました。
これからソフトウェアテストに携わる方にとっては必ず着手するものなのでこの記事が役に立てば幸いです。

次回は境界値分析と言う、同値分割と似たような場面で使われる技法について紹介したいと思います。

参考記事