PICT とは

テストエンジニア テスト手法 品質保証QA

ソフトウェアテストの際、テスト条件の因子が多すぎて組み合わせパターン数を減らしたい場合、ペアワイズ法【Pairwise Testing】(オールペア法)を利用して因子の組み合わせを制限します。
PICT とは、ペアワイズ法による組み合わせパターンを自動で生成してくれる便利なツールです。

参考: ペアワイズ法によって組み合わせパターンを制限する

・GitHub
Microsoft / pict

・Windows 版(MSI イメージ)
http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi

モデルファイルの作成
生成する組み合わせパターンに対する因子と水準を以下のフォーマットで作成します(モデルファイル)。

# 因子:Factor 水準:Level (#はコメント行)
Factor1: Level1, Level2, Level3
Factor2: Level1, Level2, Level3
Factor3: Level1, Level2, Level3

作成したモデルファイルを PICT のコマンド引数に渡すと、以下のように結果を表示してくれます。

>pict pict-model.txt
Factor1 Factor2 Factor3
Level1  Level1  Level1
Level1  Level3  Level2
Level3  Level1  Level3
Level2  Level1  Level2
Level3  Level2  Level1
Level2  Level2  Level3
Level1  Level2  Level2
Level2  Level3  Level1
Level1  Level3  Level3
Level3  Level3  Level2

上記の例(因子数3、水準数3)ですと、組み合わせパターン数は通常、3x3x3 = 27 通りになりますが、PICT によって 10 通りに減らすことができました。
組み合わせのパターンを見るとわかりますが、ペアワイズ法によって必ず2つの因子間で組み合わせが総当たりとなっています。

ペアワイズ法の組み合わせ


ちなみに組み合わせ強度を変更する場合は、以下のオプションでできます。

>pict pict-model.txt /o:3 # /o:n で強度 n

組み合わせパターン数がどれくらいになるかなどの情報を見たい場合には、以下のオプション。

>pict pict-model.txt /s
Combinations:   27 # 総当たりの組み合わせパターン数
Generated tests:10 # 生成される組み合わせパターン数
Generation time:0:00:00



様々な条件付け
PICT では組み合わせに様々な条件をつけることができます。
pict.md で示されている例からいくつかピックアップしてみました。
=、<>、>、>=、<、<=、LIKEが使えます。

# 因子と水準
Type:           Primary, Logical, Single, Span, Stripe, Mirror, RAID-5
Size:           10, 100, 500, 1000, 5000, 10000, 40000
Format method:  quick, slow
File system:    FAT, FAT32, NTFS
Cluster size:   512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
Compression:    N/A, on, off

# 無条件制約【Unconditional Constraints】
[Size] < 10000
[Compression] = "OFF"
[File system] like "FAT*"

条件付き制約【Conditional Constraints】
条件に合致したときのみ THEN 以降の制約がかかります。

# IF文、等号・不等号
IF [File system] = "FAT" THEN [Size] <= 4096;

# IN演算子
IF [File system] in {"FAT", "FAT32"} THEN [Compression] = "Off";

# 前方・後方・部分一致
IF [File system] like "FAT*" THEN [Compression] = "Off";

# IF-THEN-ELSE構文、AND・OR論理演算子、括弧
IF [File system] <> "NTFS" OR ([File system] = "NTFS" AND [Cluster size] > 4096)
THEN [Compression] = "Off"
ELSE [Compression] = "N/A";



PICT を利用したデシジョンテーブルの作成フォーム
PICT のモデルファイルを送信すると出力結果やデシジョンテーブルを作成するフォームを作ってみました。

デシジョンテーブル自動生成(PICT を利用したサンプル)

コメント