1. はじめに
- PictMasterは、因子×水準を整理したあとに ペアワイズ(2因子間網羅) などで組合せテストケースをExcel上で生成できるツールです。
- 本記事では インストール → 基本の使い方 → 制約表/結果表(実務で効く) まで、コピペ例つきでまとめます。
- 「組合せが爆発する」「ありえない組合せを除外したい」「期待結果も一緒に作りたい」人向けです。
テスト観点レビューの場で、こんな不安を感じたことはありませんか?
- 「これ、漏れてない…?」と自信が持てない
- 条件の組合せを考え始めると、ケース数が膨大になって詰む
- 因子・水準・ペアワイズは知ってるけど、実務でどう落とすかが難しい
私自身ずっとこのモヤモヤがあり、テスト設計の講座を受講したところ PictMaster を知りました。
PictMasterでできること
- ✅ 因子・水準を入力するだけで、ペアワイズ等の組合せテストケースを自動生成
- ✅ 制約表で「ありえない組合せ」を除外
- ✅ 結果表で期待結果(結果内容)を自動入力
この記事が、観点の整理やレビューの不安を少しでも減らす助けになればうれしいです。
2. 前提知識:因子と水準ってなに?
2-1. 因子とは?
- テスト結果に影響を与える「条件の切り口」 のこと
- 👉「何が変わると、システムの動きが変わりそうか?」
- 例:性別、年齢、ロール等
2-2. 水準とは?
-
その因子が取りうる具体的な値(選択肢) のこと
- 例:女性/男性/それ以外/成人/成人以外/管理者/一般
2-3. 因子・水準の具体例
例として「会員向けWebサービスの検索機能」を考えてみます。
因子①:ユーザー権限
- 水準:
- 一般ユーザー
- 管理者
因子②:期間状態
- 水準:
- 開始前
- 期間内
- 期限切れ
因子③:入力内容
- 水準:
- 正常値(同値分割の代表値)
- 境界値
2-4. なぜ組合せは増えるの?
さきほどの例をすべて組み合わせると
- ユーザー権限:2
- 期間状態:3
- 入力内容:2
2 × 3 × 2 = 12ケース
因子が増えると、あっという間に数十・数百ケースになります。
そこで出てくる考え方が ペアワイズ(2因子間網羅) です。
2-5. ペアワイズ(2-way)とは?
任意の2因子の組合せが、少なくとも1回は登場するように テストケースを削減する方法です。「多くの不具合は、2つの条件の組合せで起きやすい」という経験則をもとにしています。
ペアワイズのイメージ(例)
さきほどの12ケースを、ペアワイズで削減すると、例えば以下の6ケースでも成立します。
| No | ユーザー権限 | 期間状態 | 入力内容 |
|---|---|---|---|
| 1 | 一般 | 開始前 | 正常値 |
| 2 | 一般 | 期間内 | 境界値 |
| 3 | 一般 | 期限切れ | 正常値 |
| 4 | 管理者 | 開始前 | 境界値 |
| 5 | 管理者 | 期間内 | 正常値 |
| 6 | 管理者 | 期限切れ | 境界値 |
この6ケースで、
- ユーザー権限 × 期間状態
- ユーザー権限 × 入力内容
- 期間状態 × 入力内容
のすべての組合せが最低1回は出現します。
3. PictMasterとは?
PictMasterは、
- Excel上で因子と水準を入力すると
- ペアワイズなどの組合せテストケースを
- 自動生成してくれるツール
です。
内部では組合せ生成エンジン(PICT / CIT-BACH)を使っていますが、
利用者は細かいことを意識せず、Excel操作だけでOKなのが導入しやすいポイントだと思います。
4. インストール手順
4-1. 用意するもの
-
pict.exe(PICT本体)
- https://github.com/microsoft/pict/releases/download/v3.7.4/pict.exe
- リンクを押下後、
PICT.exeの実行ファイルが自動的に保存される
-
PICTmaster
- https://sourceforge.net/projects/pictmaster/
- リンクを押下後、「Download」ボタンを押下し、
PictMaster x.x.zipを入手
PictMasterは Windows + Excel(マクロ有効) を前提にしたツールです。
- OS:Windows
- Excel:Excel 2007以降(Excel 2003以前は不可)
- マクロが実行できる設定であること
4-2. PICT.exe を配置する
- エクスプローラーで以下のフォルダを作成
C:\Program Files (x86)\PICT
- 事前にダウンロードした
PICT.exeをその上記フォルダ直下に置く
補足:
Program Files (x86) 配下は管理者権限が必要なことがあります。
コピーで弾かれる場合は、管理者権限のある端末/アカウントで実施してください(マニュアル上はこの場所がデフォルト前提です)。
4-3. PictMaster本体(xlsm)を配置
補足:
PictMasterはExcelのビット数によって使用するファイルが異なります。
Excelが32bitなら PictMaster.xlsm、64bitなら PictMaster64.xlsm を使用してください。
(確認方法:Excel →「ファイル」→「アカウント」→「Excelのバージョン情報」)
4-4. 同梱ツール一式を PICTフォルダへコピー
- 展開した zip 内の以下を、
C:\Program Files (x86)\PICTにコピーします。- nkf.exe
- oalib
- oalibmix
- cit.jar(CIT-BACH)
- 以下の通りであればOK
4-5. (必要であれば)Javaをインストール
- CIT-BACH を使うなら
Java 8以降が必要とのこと - なくても動作は可能
4-6. 動作確認
今回は冒頭で説明した因子・水準の具体例を基に設定します。
5. 実務編:制約表を使って、組み合わせの「ありえない」を除外する
ペアワイズは便利ですが、実務だと「その組み合わせは仕様上ありえない」が必ず出てくると思います。それを除外するのが制約表の役割です。
環境設定で 「制約表を使用」 をONにすると、制約表欄が表示され、記入が有効になります。

↓ 制約表が追加される

5-1. 制約を書いてみる
条件(if側)を書く場所
- 条件にしたいセルを “白以外の色” で塗る
- そのセルに書いた値/パラメータが制約条件(if側)になります
対象(then側)を書く場所
- 対象にしたいセルは塗らない(白のまま)
- そのセルに書いた値/パラメータが 制約対象(then側) になります
「ありえない」を除外する書き方
- 除外したい値はセル先頭に
#を付けます。 -
#は「その値“以外”」=逆制約(NOT)を示します
具体例:一般ユーザーでは「管理画面」に入れない
制約1列に以下の通り入力します(※ “色つき” が条件、白が対象):
| パラメータ(行) | 制約1に入れる値 |
|---|---|
| 権限 | (色つき)一般
|
| 画面種別 | (白)#管理
|
これで以下の意味を満たすことができます。
if ユーザー権限=一般 then 画面≠管理(=一般×管理画面の組合せが生成されない)
✅ 生成された組合せ表に「一般×管理」がでてこないことを確認

5-2. よくある指定:複数値(OR)と複数条件(AND)
OR(同じパラメータで複数値)
- 1つのセルに カンマ区切りで書くと
OR条件になる- 例:画面で「管理, 監査」が両方だめなら
#管理,監査と入力
- 例:画面で「管理, 監査」が両方だめなら
AND(条件を2つ以上にしたい)
- 同じ制約列の中で、色つきの行を増やす(=条件セルを複数行書く)と「AかつB…」の条件になる
- ※OR条件とAND条件を両方混ぜたいときは、マニュアル的には 制約を分けて書くのが推奨とのこと。
具体例1:一般ユーザーは「管理/監査画面」がありえない(OR + NOT)
意味:if 権限=一般 then 画面≠(管理 or 監査)

✅ 生成された組合せ表に「一般×管理/監査」がでてこないことを確認

具体例2:権限=一般 かつ メンテ中のとき、画面は「管理」がありえない(AND)
意味:if (権限=一般 AND メンテ状態=メンテ中) then 画面≠管理

✅ 生成された組合せ表に「一般×メンテ中×管理」がでてこないことを確認

具体例3:OR条件とAND条件を混ぜたい
たとえばこういう条件を作りたくなることがあります:
(権限=一般 AND メンテ中) または (権限=管理者 AND メンテ中) のとき、画面≠監査
この「OR と AND が混ざる」ケースは、制約を分けて指定してくださいとマニュアルでも書かれています。制約を以下の通り2列にして実行してみます。
✅ 生成された組合せ表に「一般×メンテ中×監査」「管理者×メンテ中×監査」がでてこないことを確認

6. 実務編:結果表を使って期待結果を自動で埋める
テストケースを生成した後、毎回「期待結果」を手で埋めるのが面倒くさい…という時に便利なのが結果表です。
結果表は「組み合わせ内容に応じて、期待する結果(結果内容)を記入する表」で、最大50行まで用意されています。
環境設定で 「結果表を使用」 をONにすると表示されます。

↓結果表が追加される

6-1. 何が嬉しいの?
- 結果表を使うと、テストケース生成後に 各ケースの「結果内容欄」に期待結果が自動設定される
- 生成を繰り返す(条件見直し→再生成)タイプの案件ほど、効果が大きい
6-2. 書き方のコツ
- 結果内容欄は 1行目から詰めて記入する
- 長文になるなら「(*1)(*2)…」の番号運用にして、欄外に詳細を書いてもOK
- 一致条件(どの組み合わせのときにこの期待結果になるか)は、制約表と同じ考え方で値を指定できる
例:結果表(期待結果のルール)を書いてみる
| 結果内容(左) | 権限 | 期間状態 | 入力種別 |
|---|---|---|---|
| 境界値入力時はバリデーションが実行される(正常/エラーいずれかの判定を確認) | 境界値 | ||
| 管理者は監査ログが出力される(*1) | 管理者 | ||
| 期間外のため表示制限メッセージが出る | 開始前,期限切れ | ||
| 正常に検索結果が表示される(デフォルト) |
ポイント:
- 1行目:境界値のときに確認したい期待結果 → 入力種別だけ指定
- 4行目:条件が全部空欄 → 他のどれにも一致しなかった時の デフォルト
※ 一致条件が重なって「このケースに対して、結果が複数当たる」状況があると、通常は「一致条件の重複」エラーになります。このとき、結果内容の先頭を & にすると 結果内容を連結できます。(結果表は上から順番に処理されるので、& を使う行はまとめるのが安全)
✅ 生成された組合せ表の結果内容欄が想定通りであることを確認

7. 便利機能3選
7-1. エイリアス(同値っぽい値をまとめてケース数削減)
エイリアスは「完全に同一ではないけど、テスト的には同値扱いでよさそう」な値をまとめて、組み合わせ生成時の値の数を減らすための機能です。
- 値の前に
|を使うと、1つの値に複数の名称を持たせる「エイリアス」が使える - 特に「値の数が多いパラメータ」に適用すると、組合せ削減効果が大きい
例:ブラウザが多いので「Chromium系」をまとめたい
例えば「ChromeとEdgeは同じ系統(Chromium)なので、詳細は別の単体テストで担保する」と割り切るとします。
| パラメータ | 値の並び欄(入力例) |
|---|---|
| ブラウザ | Chrome|Edge,Firefox,Safari |
| 権限 | 一般,管理者 |
| 期間状態 | 開始前,期間内,期限切れ |
After
→ Chromium系をまとめるだけで、全体のケース数が減ります。

7-2. 無効値(~):“機能が動作しない値”を扱う
無効値は「その値だと機能が動作しない(テストとして成立しない)」ときに使います。
無効値が複数パラメータに存在すると、
普通にペアワイズすると「無効値 × 無効値」が同じテストケースに入ってしまい、残りの条件の検証ができず不完全なテストになりがちです。
そこで、無効値の前に ~ を付けると 無効値同士が同じテストケースに入らないように生成してくれます。
例:FAXの組み合わせテスト
「FAX」とは通信できない“電話機”が混ざるというような状況を想定。
| パラメータ | 値の並び欄(入力例) |
|---|---|
| 発信端末 | FAX,~電話機 |
| 通信回線 | ISDN,アナログ,~IP外線 |
| 着信端末 | FAX,~電話機 |
このようにしておくと、生成されるケースは
7-3. 重み付け():この値を多めに出したい
重み付けは「この条件は本番で頻出」「過去障害が多い」など、
重要な値をテストケースに多めに出したいときの機能です。
例:ブラウザの頻度が Chrome に偏っているので厚めにしたい
| パラメータ | 値の並び欄(入力例) |
|---|---|
| ブラウザ | Chrome(10),Edge,Firefox,Safari |
| 権限 | 一般,管理者 |
| 期間状態 | 開始前,期間内,期限切れ |
→ Chrome が他の値よりも多めに出現するようになります。

8. まとめ
講座を通して、PictMasterというツールがあることを学びました。
「因子×水準」を整理したうえで、ペアワイズ(2因子間網羅)などを使い、組合せテストを“現実的なケース数”に落とし込むための道具だと理解できたのが一番の収穫でした。
一方で、使ってみて感じたのは いちばん大切なのは「どの因子を組合せに含めるか」 という点です。
ツールがケースを生成してくれるからこそ、因子の選び方がズレると「漏れ」や「偏り」もそのまま増幅してしまうな…と思いました。
そのためにも、標準観点(よくある観点のチェックリスト)を用意しておくことが重要だと感じています。
案件をまたいで流用できるナレッジになりますし、PictMasterを使ううえでも「何を因子として切り出すか」の発想がないと観点が欠けてしまうので、今後もインプットと整理を続けたいです。
私自身まだ使い方は勉強中ですが、実務でも活用できる場面がありそうなので、少しずつ試していこうと思います。もし「PictMaster以外にもおすすめの組合せテスト支援ツール」があれば、教えてください。
本記事がお役に立ったら「いいね」や「ストック」してもらえると励みになります!











