› ツール一覧 › ペアワイズ法テストケース生成
TOOL

ペアワイズ生成器

OS × ブラウザ × 会員種別 × 決済手段。
掛け算で膨らんだ組み合わせを、最小限の表に畳む。

生成する 使い方 ペアワイズとは よくある質問

「OS4種 × ブラウザ3種 × 会員3種 × 決済3種」を全部試すと108件。現実には回しきれないので勘で間引いて、そこを漏らす——組み合わせテストの事故はここで起きます。ペアワイズ法は「どの2つの組み合わせも必ず1回は試す」という条件だけを守って件数を削る考え方です。因子と水準を書けば、その表をこの場で作ります。入力した内容はブラウザの外に出ません。

生成する

因子と水準を書いて「生成」を押すだけ

1行に1因子。名前: 水準, 水準, 水準 の形式(全角の「:」「、」でも可)。# で始まる行はコメント。

あり得ない組み合わせを除く

1行に1ルール。因子名=水準, 因子名=水準 と書くと、その組み合わせを含むケースを作りません。

—

使い方

3ステップ
1

因子と水準を書く

テストで変えたい項目が因子、その項目が取りうる値が水準です。「OS: Windows, Mac, iOS」のように1行ずつ書きます。まず上のプリセットを押して、形を見てから直すのが早いです。

2

あり得ない組み合わせを除く

「iOSにFirefoxは入れない」「無料会員は代引きを選べない」など、仕様上ありえない組み合わせは禁則に書きます。書いておかないと、テストできないケースが表に混ざります。

3

生成してCSVで持ち出す

生成すると、全網羅から何件に減ったかが出ます。表はそのままテストケース表に貼れるので、CSVかMarkdownでコピーしてください。この結果に、外せない重要ケースを手で足すのが実務での使い方です。

ペアワイズとは

なぜ2つの組み合わせだけで足りるのか

組み合わせテストの件数は、因子が増えるほど掛け算で膨らみます。4因子それぞれ3水準なら81件、5因子なら243件。全部やるのは早々に無理になります。

そこで「バグの多くは、1つの条件か、2つの条件の噛み合わせで再現する」という経験則を使います。3つ以上が同時に揃わないと出ないバグは、相対的に少ない。ならば「どの2因子の組み合わせも必ず1回は試す」という条件だけ守って、あとは自由に詰め込めばいい——これがペアワイズ法(オールペア法)です。

効果は件数に出ます。上のプリセット「Webサービス」(4×3×3×3=108件)は、ペアワイズなら十数件まで落ちます。1割前後まで削っても、2因子の組み合わせは1つも漏れていないのがこの手法の勘所です。

ただし万能ではありません。ペアワイズが保証するのは2因子までなので、3つの条件が三つ巴で絡むバグは通り抜けます。決済・権限・在庫のように事故ったときの被害が大きいところは、3因子間網羅に切り替えるか、重要ケースを手で追加してください。技法そのものの解説は テスト技法カタログ にまとめています。

よくある質問

入力した内容はサーバーに送られますか?+
送られません。組み合わせの計算はすべてブラウザ内(あなたの端末上)で処理していて、サーバーには一切送信していません。社外に出せない機能名や仕様を書いても大丈夫です。
ペアワイズ法だとバグを見逃しませんか?+
見逃す可能性はあります。ペアワイズ法が保証するのは「どの2つの因子の組み合わせも必ず1回は試す」ことまでで、3つ以上が同時に噛み合ったときだけ出るバグは対象外です。ただし現場の不具合の多くは1つまたは2つの条件で再現するため、費用対効果が高い削り方として使われています。重要な組み合わせは、生成結果に手で足してください。
同じ条件でも生成結果の件数が変わることはありますか?+
変わりません。このツールは毎回同じ順序で組み合わせを選ぶため、同じ入力なら常に同じ表になります。テストケースをレビューに出したあとで再生成しても中身がずれない、という前提で使えます。
禁則(あり得ない組み合わせ)はどう書きますか?+
1行に1ルールで「因子名=水準, 因子名=水準」と書きます。たとえば「OS=iOS, ブラウザ=Firefox」と書くと、その2つが同時に現れるテストケースは作られません。3つ以上並べれば「その3つが同時に揃う場合だけ禁止」という意味になります。
3因子間網羅(3-wise)とは何ですか?+
どの3つの因子の組み合わせも必ず1回は試す、という強い網羅です。ペアワイズ(2因子間)より件数は増えますが、決済や権限まわりのように条件が三つ巴で絡む機能では有効です。件数がどれだけ増えるかはツール上で比較できます。

技法そのものの解説は テスト技法カタログ、件数の考え方を演習するなら テスト技法ドリル、観点の洗い出しは TESTパターン集、入力値そのものを作りたいときは 意地悪テストデータ生成器 をどうぞ。