ソフトウェアのテストに用いられる「同値分割法(同値クラス分割)」。
主にブラックボックステストで使用されるテスト技法で、この技法を活用することで、テストにかける時間を短縮し、効率的に不具合を見つけることができます。
そんな「同値分割法」とはどういったものなのでしょうか。本記事では、同値分割法とは何かを分かりやすく解説していきます。また、同値分割テストのメリットや注意点、主な使いどころについてもご紹介します。ぜひ最後までご覧ください。
本記事の詳しい内容については、ダウンロード資料で紹介しています。同値分割法や境界値分析についてご興味をお持ちの方は、ぜひこちらもダウンロードしてみてください。
境界値分析・同値クラス分割の基本の「き」
テスト技法「境界値分析」と「同値クラス分割」について解説しているミニ冊子です。技法の概要から使い方とポイントなど、初心者にもわかりやすく解説しております。
- もくじ
1.同値分割法とは|結果が同じになる値の集合を区分すること
同値分割法とは、ブラックボックステストで使用されるテスト技法の一つです。
同値分割法では、出力結果が同じ結果となる値の集合(※同値パーティション)を区分してテストを実行します。※同値パーティション=同値クラスとも呼ばれる。
入力した値が有効になるものを「有効同値パーティション」、無効になるものを「無効同値パーティション」として分けていきます。
入力値を同値パーティションに分けることで、テストする「値」を絞り込むことができます。
2.同値パーティションは範囲が一続きにならないこともある
同値分割法は、範囲が一続き(連続した値)にならないケースもあります。
例えば、パスワードを入力するシステムの場合、I(英大文字のアイ)・l(英子文字のエル)・1(数字のイチ)は識別しにくいため無効と指定されている場合などです。
この場合の同値分割法は以下のようになります。
有効同値パーティション | I以外の英大文字・l以外の英子文字・1以外の数字 |
---|---|
無効同値パーティション | 英大文字のI・英子文字のl・数字の1 |
無効同値パーティション | 英大文字のI・英子文字のl・数字の1 |
この、範囲が連続した値にならない場合があるという点が同値分割法の大きな特徴であり、同じくテスト手法の一つである「境界値分析テスト」とは異なる点です。
境界値分析についての記事は以下の記事もご参照ください。
3.同値分割テストのメリットと注意点
同値分割テストとは、区分した同値パーティションの代表の値を入力して出力結果を確認するテストです。
このテスト手法を用いるメリットと、注意点について解説します。
メリット|テスト工数を縮小できる
同値分割テストのメリットはテスト工数を削減できることです。
本来、入力可能なすべての値を確認するのが理想ですが、値の数が膨大すぎることを考えると現実的ではありません。
そのため、同値分割法を活用します。
出力確認をする値をテスト可能な数に絞り込めるため、テストにかかる工数を大幅に削減することができます。
また、無作為ではなく、同値パーティションで区分したところから絞り込むので、より効率的に不具合を検出することが可能です。
注意点|イレギュラーな不具合を見逃しやすい
テスト工数が縮小できる一方で、イレギュラーな不具合を見逃してしまいやすいという注意点もあります。
同値分割法でテストする値はあくまでも「※代表値」なので、すべての値をテストしたということにはなりません。※同値パーティションの「代表値」は境界値や中間値などが選ばれることが多いです。
万が一、同値パーティションの中に不具合が出る値があった場合、見逃してしまうリスクはあることは覚えておきましょう。
4.同値分割テストの使いどころ
同値分割法は主に、システムが仕様通りに動くかを確認する際に使われます。では実際どのような場合に有効的に活用できるのかみていきましょう。
出力が異なる「範囲」が存在する場合
出力が異なる「範囲」が存在する場合は同値分割法テストが活用できます。
例えば、オンライン商品販売システムの場合、以下のようなテスト対象があります。
- 購入者の氏名を入力する際の入力可能文字種
- 運営者の商品登録可能件数
- 商品分類ごとの値段設定確認
同値分割法では、数値以外の区分けも可能なので、設定可能な値と設定不可の値をそれぞれ有効同値パーティション・無効同値パーティションとしてテストすることができます。
このような入力した値によって出力が異なる「範囲」が存在する場合は同値分割テストを実施しましょう。
仕様に有効値しか記載されていない場合
システムの仕様に有効値しか記載されていない場合も同値分割法の使いどころです。
仕様にない「無効同値パーティション」を識別・区分けすることで、開発では想定していなかった不具合を検出できる場合もあります。
より品質の高いソフトウェアを構築していくためにも、仕様に書かれていない部分にも着目してテストをすることが重要です。
まとめ
同値分割法とは、ブラックボックステストのテスト技法の一つで、「出力結果が同じになる入力値の集合(同値パーティション)」を区分してテストを実行することです。
大きな特徴としては、同値パーティションは、範囲が連続した値になる場合もあれば、そうでない場合もあるということです。
同値分割テストを行うことで、テスト工数を削減することができます。
ただし、同値分割テストは、同値パーティションの代表値のみをテストするため、イレギュラーな不具合が発生した場合は見逃してしまうこともあります。
効率を重視しながらもより多くの不具合を検出できるよう、うまく活用していきましょう。