用語集 · テスト設計
ペアワイズテスト(Pairwise Testing)
英語: Pairwise testing
別名: オールペア法, all-pairs testing, ペアワイズ法, pairwise
定義
パラメーター値のあらゆるペアが少なくとも 1 回は一緒に登場するように、少数のテストケースを選ぶ組み合わせテストの技法です。
ペアワイズテスト(オールペア法)は、機能に複数のパラメーターがあるときに必要な組み合わせの数を減らす手法です。考えられるすべての組み合わせをテストする代わりに、各パラメーターのすべての値が、ほかのすべてのパラメーターのすべての値と少なくとも 1 回はペアになるようなテストの集合を選びます。この考え方は実務上の観察に基づいています。設定に関する欠陥の大半は単一のパラメーターか 2 つのパラメーターの相互作用によって発生し、3 つ以上の特定の値が同時にそろって初めて起きる欠陥はずっと少ないのです。
例
ある Web アプリが次の選択肢すべてで動作する必要があるとします。
- ブラウザー:Chrome、Firefox、Safari
- OS:Windows、macOS、Linux
- 言語:英語、ドイツ語、日本語
全組み合わせは 3 x 3 x 3 = 27 テストです。ペアワイズの集合なら 9 つで済みます。
| # | ブラウザー | OS | 言語 |
|---|---|---|---|
| 1 | Chrome | Windows | 英語 |
| 2 | Chrome | macOS | ドイツ語 |
| 3 | Chrome | Linux | 日本語 |
| 4 | Firefox | Windows | ドイツ語 |
| 5 | Firefox | macOS | 日本語 |
| 6 | Firefox | Linux | 英語 |
| 7 | Safari | Windows | 日本語 |
| 8 | Safari | macOS | 英語 |
| 9 | Safari | Linux | ドイツ語 |
どの 2 列を見ても、すべてのペアが登場しています。Chrome と Linux は 3 行目、macOS と日本語は 5 行目、Safari とドイツ語は 9 行目です。パラメーターが増えるほど削減効果は急速に大きくなります。3 つの値を持つパラメーターが 10 個あれば組み合わせは 59,049 通りですが、ペアワイズの集合ならジェネレーターにもよりますが、おおよそ 15~20 テストですべてのペアをカバーできます。
制約
実際のシステムには、ありえない組み合わせがあります。Safari は Linux では使えないため、9 行目は差し替えが必要です。優れたジェネレーターでは、このような制約を宣言したうえで集合を再生成し、有効なペアをすべてカバーし続けることができます。ペアワイズの集合を生成するツールには、Microsoft の PICT や AllPairs 系のスクリプトがあります。
ペアワイズに頼るべきでない場合
- リスクが高いとわかっている組み合わせ。 特定の 3 要素の組み合わせ(決済方法、通貨、国など)が重要なら、明示的に追加します。
- 複数の入力の組み合わせで決まるルール。 ビジネスロジックの把握にはデシジョンテーブルを使います。ペアワイズは設定や独立したオプションのカバレッジのための手法です。
- 単独で重要なパラメーター。 ペアワイズは、各パラメーター自体の値に対する同値分割や境界値分析の代わりにはなりません。
より強度の高いバリエーション(3-wise、一般には t-wise)は、すべての 3 つ組やそれ以上の組をカバーしますが、その分テスト数は増えます。