スキルアップ

「ペアワイズ法」テスト技法解説

ペアワイズ法とは?

ペアワイズ法とは、ソフトウェアの不具合の多くが1つまたは2つのパラメータ(因子)の組み合わせによって発生している、という経験則に基づいて、2パラメータ間の値の組み合わせを網羅するテストケースを作成する技法です。組み合わせテスト技法の1つであり、オールペア法、ペアワイズテストとも呼ばれます。

テスト設計全般についてはこちらのページもご覧ください。
https://www.veriserve.co.jp/service/detail/testdesign.html

ペアワイズ法のメリット

ソフトウェアの動作には入力データや設定値などのさまざまなパラメータが相互に影響を及ぼしており、論理的には相互に影響を及ぼさないことが期待されるパラメータ同士であっても、組み合わさった場合に想定外の不具合を引き起こすことがあります。しかし、すべてのパラメータが取りうる値の組み合わせを網羅しようとすると、テストケースの数が膨大になってしまいます。開発プロジェクトの限られたリソースの中で、すべての組み合わせのテストを行うことは実質不可能です。そこで、一定の網羅性を確保した上で、現実的にテスト可能なボリュームとなるように組み合わせを絞り込むことが重要な課題となります。

ペアワイズ法を用いることで、2パラメータ間の値の組み合わせをすべて網羅しつつ、テストケースの数を絞り込むことができます。例として、下図のようにパラメータが3つで各パラメータの取りうる値が4つずつ存在する場合、3パラメータ間の値の組み合わせをすべて網羅しようとすると、4×4×4 = 64パターンのテストケースが必要になります。これに対して、ペアワイズ法を適用すると、最小で16パターンのテストケースで、任意の2パラメータ間の値の組み合わせをすべて網羅したテストを行うことができます。今回の例では、任意の2パラメータ間(パラメータ1とパラメータ2、パラメータ1とパラメータ3、パラメータ2とパラメータ3)の値の組み合わせは、4×4 + 4×4 + 4×4 = 48パターンありますが、ペアワイズ法で作成したテストケースはこれらの組み合わせパターンをすべて含みます。

<ペアワイズ法の利用シーン>

どのようなソフトウェアであってもペアワイズ法を適用することが可能です。特に、パラメータ間に明確な関係がなく、かつ多くのパラメータを組み合わせてテストする必要がある場合、ペアワイズ法を用いて組み合わせを絞り込むことが有効です。
次に示すのはあくまで簡単な例ですが、このようにパラメータの組み合わせを考慮したテストを行う際に、ペアワイズ法を利用できます。

例)
・ECサイトでのTシャツ販売の機能(ユーザはTシャツの柄・色・サイズを入力してTシャツを購入できる)に対する、入力パラメータの組み合わせテスト

ペアワイズ法によるテストケースの作成手順

ここからは、以下の仕様を例として、ペアワイズ法の実践方法について解説していきます。

  • このECサイトでは、Tシャツの柄・色・サイズを選択してTシャツを購入できる
  • Tシャツの柄は格子、花柄、迷彩、無地から選択できる
  • 色は緑、赤、白、黒から選択できる
  • サイズはXS、S、M、L、XLから選択できる
  • サイズがXSとXLの場合、柄は無地のみ選択でき、色は赤を選択できない

ペアワイズ法を実践するためのツールはいくつかありますが、今回はさまざまなテスト技法を手軽に利用してテスト設計に役立てられるGIHOZというツールを使って説明します。GIHOZを使うことで、以下のステップに従ってペアワイズ法によるテストケースを簡単に作成することができます。

→GIHOZの詳細はこちら

ステップ1 パラメータと値を特定する

組み合わせるパラメータと、パラメータが取りうる値を特定します。今回の例では、「柄」「色」「サイズ」がパラメータに該当し、「格子」「花柄」「迷彩」「無地」は「柄」というパラメータが取りうる値、「緑」「赤」「白」「黒」は「色」というパラメータが取りうる値、「XS」「S」「M」「L」「XL」は「サイズ」というパラメータが取りうる値に該当します。GIHOZでは、特定したパラメータと値を表形式で記述します。

ステップ2 制約を指定する

組み合わせることができない値が存在する場合など、組み合わせに制約がある場合、制約を指定します。制約の記述方法はツールによって異なりますが、GIHOZでは独自の制約表を用いた記述のほか、著名なペアワイズ法のツールであるPICTと同等の制約式での記述が可能です。

制約の記述方法についてはこちらの記事もご参照ください。
https://gihoz.hatenablog.com/entry/2021/06/04/094516

ステップ3 組み合わせを生成する

制約を満たしつつ、2パラメータ間の値の組み合わせを網羅するようにテストケースを生成します。GIHOZでは、ワンクリックで組み合わせを生成できます。
今回の例では、制約を考慮しつつすべての組み合わせパターンを網羅しようとすると54パターンになりますが、ペアワイズ法では次の21パターンで、任意の2パラメータ間の値で取りうる組み合わせをすべて網羅することができます。

ペアワイズ法の注意点

パラメータの取りうる値の数が多いと、パラメータの数が少なくても、組み合わせの数は膨らんでしまいます。そのため、値の数が多い場合は、ペアワイズ法を適用する前に、各パラメータに同値分割法などの別の手法を適用して、値の数を削減する工夫が必要となります。
また、ペアワイズ法では、あくまで2パラメータ間の値の組み合わせしか網羅していないため、3つ以上のパラメータの組み合わせによって生じる不具合は検出できない可能性があります。特定の組み合わせで不具合が生じると問題になるようなケースでは、ペアワイズ法で作成したテストケースにその組み合わせが含まれているか確認し、含まれていない場合は別途テストする必要があります。GIHOZでは、3~5パラメータ間の値の組み合わせを網羅するようにテストケースを作成することもできますので、必要に応じて、組み合わせるパラメータの数を変更してご活用ください。

ペアワイズ法 まとめ

2パラメータ間の値の組み合わせを網羅するテストケースを作成する技法である、ペアワイズ法についてご紹介しました。ペアワイズ法は、パラメータ間に明確な関係がなく、かつ多くのパラメータを組み合わせてテストする必要がある場合に利用すると効果的です。
GIHOZを使うと、ペアワイズ法による組み合わせの生成を自動で行うことができ、テストケースを効率的に作成できます。
一定の網羅性を確保した上で現実的にテスト可能なボリュームのテストケースを作成するために、ペアワイズ法やGIHOZをぜひご活用ください。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Ranking

ランキング

もっと見る