本文へスキップ
App Museum
English

ペアワイズ法テストケース作成ツール

パラメータと値を書くと、ペアワイズ法(オールペア法)でテストケースを自動生成します。どの2つの値の組み合わせも必ず1回は出てくる、少ない件数の表を作ります。3つずつ以上の網羅、PICT形式の入力、ありえない組み合わせの除外に対応し、Excel用のコピー、CSV、Markdownで書き出せます。

例を入れる

1行に1つ、「パラメータ名: 値, 値, 値」の形で書きます。区切りは全角の「:」「、」でも構いません。# で始まる行は読み飛ばします。

1行に1つ、同時に起きない組み合わせを「パラメータ名 = 値, パラメータ名 = 値」の形で書きます。「値 | 値」はどれか、「!=」はその値以外です。

網羅する組み合わせ

2つずつなら、どの2つのパラメータの値の組み合わせも、どこかのテストケースに必ず1回は出てきます。数を増やすほど確かめられる組み合わせが増え、テストケースも増えます。

テストケース

パラメータと値を入れて「テストケースを生成」を押すと、ここにテストケースの表が表示されます。

使い方

  1. 「パラメータと値」に、1行に1つずつ「パラメータ名: 値, 値, 値」の形で書きます。「例を入れる」のボタンで、Webサイト・スマホアプリ・Web APIの例を入れることもできます
  2. 同時に起きない組み合わせがあれば、「禁止する組み合わせ」に書きます(任意)
  3. 「網羅する組み合わせ」で、2つずつ(ペアワイズ)か、3つずつ以上かを選びます
  4. 「テストケースを生成」を押すと、テストケースの表が表示されます
  5. 「Excel用にコピー」でExcelやGoogleスプレッドシートに貼り付けるか、「Markdownでコピー」「CSVを保存」で書き出します

入力を変えたあとは、もう一度「テストケースを生成」を押すと作り直します。表の上に、総当たりの件数とくらべて何件になったかと、網羅した組み合わせの数が表示されます。

ペアワイズ法とは

ペアワイズ法(オールペア法)は、テストする条件の組み合わせを少なく抑える方法です。すべての組み合わせを試すと件数が掛け算で増えますが、不具合の多くは2つの条件の組み合わせで起きると言われています。そこで「どの2つのパラメータを選んでも、その値の組み合わせがどこかのテストケースに必ず1回は出てくる」表を作り、件数を減らします。

たとえば、ブラウザ4種類・OS 4種類・ログイン2種類・支払い方法3種類なら、すべての組み合わせは 4 × 4 × 2 × 3 = 96通りです。ペアワイズ法なら、2つずつの組み合わせをすべて含めたまま十数件に減ります。

3つの条件がそろったときだけ起きる不具合も確かめたいときは、「網羅する組み合わせ」を「3つずつ」にします。件数は増えますが、どの3つのパラメータの値の組み合わせも必ず出てきます。選べるのは6つずつまでで、パラメータの数と同じ数を選ぶと、すべての組み合わせ(総当たり)になります。

パラメータと値の書き方

ブラウザ: Chrome, Edge, Firefox, Safari
OS: Windows, macOS, Android, iOS
ログイン: 会員, ゲスト
支払い方法: クレジットカード, コンビニ払い, 銀行振込
  • 1行に1つのパラメータを書きます。パラメータ名と値の間は : で区切り、値どうしは , で区切ります
  • 全角の :、、、, でも区切れます。値の前後の空白は取り除きます
  • 値に : を含めても構いません(9:00 など)。最初の : だけを区切りとして読みます
  • 値は1つのパラメータに50個まで、パラメータは50個まで書けます。値が1つだけのパラメータも書けます
  • パラメータ名には =、≠、,、、(全角の =、, も)を使えず、!(全角の !)で終わる名前も使えません。禁止する組み合わせの中で区切りと読み違えるためです。値には | を使えません
  • # で始まる行と空行は読み飛ばします。メモを残すときに使えます
  • 値は書いたとおりの文字で区別します。ON と on、全角と半角は別の値です

この形は、Microsoftのコマンドラインツール「PICT」のモデルファイルのパラメータの書き方と同じです。PICTのモデルのパラメータ部分をそのまま貼り付けられます(制約の部分は書き方が違います)。

禁止する組み合わせの書き方

「WindowsでSafariは使えない」のように、実際には起きない組み合わせを書いておくと、その組み合わせをテストケースに入れません。1行に1つずつ、同時に起きない条件を , でつないで書きます。

OS = Windows, ブラウザ = Safari
メソッド = GET | DELETE, Content-Type != なし
ブラウザ = Safari, OS != macOS | iOS
  • パラメータ名 = 値 は、その値のとき
  • 値 | 値 は、どれかの値のとき
  • パラメータ名 != 値(≠、全角の != も可)は、その値以外のとき
  • 1行の条件がすべてそろう行を作りません。上の1行目は「OSがWindowsで、ブラウザがSafari」を禁止します
  • 条件が1つだけの行(ブラウザ = IE)は、その値をどのテストケースにも使わない、という意味になります

禁止する組み合わせのせいで入れられない2つずつの組み合わせは、網羅の対象から外し、「入れられない組み合わせ」に一覧で表示します。上の例の3行目は「SafariならOSはmacOSかiOS」という意味なので、「Safari と Windows」「Safari と Android」の2通りが入れられない組み合わせになります。

禁止する組み合わせを組み合わせた結果、直接は書いていない組み合わせが入れられなくなることもあります。たとえば B の値が x と y の2つだけのとき、「A=1 なら B=y にしない」「B=x なら C=p にしない」と書くと、A=1 のときは B=x しか選べないため、A=1 と C=p の組み合わせも入れられません。このような組み合わせも、テストケースを1件ずつ作れるかを確かめて見つけます。

具体例

「例を入れる」の「Webサイト」は、上のブラウザ・OS・ログイン・支払い方法の4つのパラメータと、禁止する組み合わせ「ブラウザ = Safari, OS != macOS | iOS」です。2つずつで生成すると、次のような15件の表になります。

No.	ブラウザ	OS	ログイン	支払い方法
1	Chrome	Windows	ゲスト	銀行振込
2	Chrome	macOS	会員	クレジットカード
3	Chrome	Android	ゲスト	コンビニ払い
4	Chrome	iOS	会員	コンビニ払い
5	Edge	Windows	会員	クレジットカード
(中略)
13	Safari	iOS	ゲスト	クレジットカード
14	Safari	macOS	会員	コンビニ払い
15	Safari	iOS	会員	銀行振込

総当たり96通りの15.6%で、2つずつの値の組み合わせ60通りをすべて含みます。SafariはmacOSとiOSの行にだけ出てきます。同じモデルをPICTで生成しても15件でした。

網羅率と並び順

表の右端の「網羅率」は、1行目からその行までで、網羅する組み合わせの何%を確かめたかです。上の行ほど新しい組み合わせを多く含むように作るため、時間が足りないときは上の行から順に実施すると、少ない件数で多くの組み合わせを確かめられます。

「別の組み方で作り直す」を押すと、同じ条件で別の表を作ります。件数が変わることもあります。同じ入力と同じ組み方からは、いつも同じ表ができます。

書き出し

  • Excel用にコピー: タブ区切りでコピーします。ExcelやGoogleスプレッドシートのセルに貼り付けると、そのまま表になります
  • Markdownでコピー: GitHubやNotionなどに貼れるMarkdownの表にします。パラメータ名の | と、名前や値の \ は、表が崩れないようにエスケープします
  • CSVを保存: test-cases.csv を保存します。Excelで開いても文字化けしないように、先頭にBOMを付けたUTF-8で書きます
  • 「書き出しに No. の列を付ける」をオフにすると、番号の列を除いて書き出します。画面の表には常に番号が付きます

表に表示するのは先頭の1000件までです。コピーと保存には全件が入ります。

生成のしかたと上限

テストケースは1件ずつ作ります。まだ網羅していない組み合わせが最も多く残っているパラメータの組から1つの組み合わせを選び、残りのパラメータには、まだ網羅していない組み合わせを最も多く埋める値を選びます。禁止する組み合わせに当たる値は、行を最後まで作れるかを確かめてから除きます。これを、網羅すべき組み合わせがなくなるまで繰り返します。PICTやAETGと同じ考え方の貪欲法で、何通りかの組み方を試し、いちばん件数の少ない表を表示します。

件数が最小になるとは限りません。たとえば値が3つのパラメータ13個は、知られている最小が15件ですが、このツールでは19件前後になります(PICTでは20件でした)。

網羅する組み合わせの数(2つずつなら、パラメータ2つの組ごとの値の組み合わせの合計)が20万通りを超えるときは生成しません。網羅する数を減らすか、値を減らしてください。

禁止する組み合わせが多く、互いに込み入っていると、行を最後まで作れるかを確かめきれずに生成をあきらめることがあります。そのときは禁止する組み合わせかパラメータを減らしてください。禁止する組み合わせを確かめる手間が大きいときは、試す組み方の数を減らし、それまでに作った中でいちばん件数の少ない表を表示します。

注意点

  • ペアワイズ法は、2つの条件の組み合わせで起きる不具合を効率よく見つける方法です。3つ以上の条件がそろって起きる不具合や、特定の値の順番・回数で起きる不具合は見落とすことがあります。重要な機能は、3つずつで網羅するか、個別のテストを足してください
  • 値の選び方(同値分割や境界値分析)は、このツールでは決めません。「0件・1件・100件」のように、テストしたい代表の値を自分で選んで書きます
  • 期待結果の列は作りません。書き出した表に列を足して書き込んでください
  • 入力した内容はこのページを開いているブラウザの中だけで処理され、外部へ送信も保存もされません。ページを再読み込みすると入力は消えます

FAQ

PICTのモデルファイルはそのまま使えますか?

パラメータの部分はそのまま貼り付けられます。PICTの制約(IF [OS] = "Windows" THEN [ブラウザ] <> "Safari"; の形)、サブモデル、別名(|)、重み付け、負の値(~)には対応していません。制約は「OS = Windows, ブラウザ = Safari」のように、禁止する組み合わせの形に書き直してください。

件数をもっと減らせますか?

「別の組み方で作り直す」を何回か押すと、件数の少ない表が出ることがあります。禁止する組み合わせがないとき、2つずつの網羅で必要な件数は、値の最も多い2つのパラメータの値の数の積より少なくはなりません。値が10個あるパラメータが2つあれば、少なくとも100件が必要です。値を減らすか、値の多いパラメータを分けて考えてください。

「入れられない組み合わせ」とは何ですか?

禁止する組み合わせのせいで、どのテストケースにも入れられない2つずつ(または3つずつ)の組み合わせです。網羅率の計算から外しています。意図しない組み合わせが出ていたら、禁止する組み合わせの書き方を見直してください。

特定の組み合わせを必ず入れたいときは?

このツールには、決まった行を先に入れる機能はありません。必ず確かめたい組み合わせは、書き出した表に行を書き足してください。

同じ入力で毎回同じ表になりますか?

なります。同じ点数の値から1つを選ぶときは、組み方の番号から決まる数列を使うため、同じ入力と同じ組み方からはいつも同じ表ができます。別の表がほしいときは「別の組み方で作り直す」を押します。

種別
ユーティリティ
カテゴリ
開発者向け
タグ
pairwise
all-pairs
test-case
testing
qa
pict
combinatorial-testing
  • カラーコード変換ツール

    HEX・RGB・HSL のカラーコードを相互に変換し、HSV・CMYK・OKLCH の表記も表示。カラーピッカーやプレビューで確認でき、白・黒や指定した文字色とのコントラスト比(WCAG)も分かります。

    ユーティリティ開発者向けcolorhexrgbhslhsvcmykoklchcontrastcontrast-checkerwcagconverterdeveloper
  • TOTP生成ツール(ワンタイムパスワード)

    Base32の秘密鍵から、2段階認証で使う6桁のワンタイムパスワード(TOTP)をブラウザ内で計算。前後のコードとの照合、SHA-256・8桁などの設定、otpauth:// URIの読み込みと作成、認証アプリで読み取るQRコードの表示に対応。

    ユーティリティ開発者向けtotpotp2faauthenticatorsecuritygeneratorqr
  • XML整形・圧縮ツール

    1行につながったXMLを、字下げをつけた読みやすい形に整形します。字下げはスペース2つ・4つ・タブから選べ、1行に圧縮することもできます。タグの閉じ忘れなどの誤りは、行と位置を示します。XPathの式で要素や属性を抜き出すこともできます。ブラウザ内で完結。

    ユーティリティ開発者向けxmlformatterminifypretty-printvalidatorxpathdeveloper