組み合わせテストをオールペア法でスピーディに!

第3回PICTの機能説明と使用例 (前編)

PICTの実行時オプション

コマンドプロンプト上でPICTを実行する際、オプションを指定することができます。PICTの実行形式とオプション指定は図1のとおりです。

図1 実行形式とオプション指定
実行形式:
pict モデルファイル [オプション]

オプション:
/o:N 	 組み合わせるパラメータの数 (初期値: 2)
/d:C	 値の区切り記号 (初期値: ,)
/a:C	 エイリアスの区切り記号 (初期値: ¦)
/n:C	 無効値の前置記号 (初期値: ~)
/e:file  組み合わせ生成の元となるファイルの指定
/r[:N]   組み合わせ生成の初期条件を指定, N:生成条件初期値
/c	 英文字の大文字と小文字を区別する
/s	 組み合わせ生成情報を出力

オプションのうちのいくつかは、今後説明していきます。

モデルファイル

組み合わせテストを行ないたいパラメータとその値を記述したファイルをモデルファイルといいます。モデルファイルの最もシンプルな例をリスト1に示します。

リスト1 モデルファイルの例
A:  0, 1, 2
B:  0, 1, 2
C:  0, 1, 2

A、B、Cがパラメータです。0, 1, 2がパラメータの値です。パラメータ名にはスペースを含むことができます。同様に値が文字列の場合もスペースを含むことができます。

値の記述の途中に改行を入れることはできません。エラーとなります。

モデルセクション

モデルは1つ、あるいは多くとも3つの、以下に示すセクションから成ります。

パラメータ定義
サブモデル定義
制約条件定義

モデルセクションはこの順序で記述し、パラメータ定義は省略することができません。リスト1はパラメータ定義の例でもあります。

スペースには半角を使用します。全角のスペースはエラーとなります。各定義に日本語を使用することができます。組み合わせ生成結果も日本語で出力されます。

基本的なモデル

基本的なモデルファイルは、末尾が「:」で終わるパラメータと、⁠, 」で区切られた値の並びとからなるモデル定義部のみで構成されます。

1桁目に「#」を置くことでコメントを記入することができます。

パラメータと値の記述は以下のように行います。

 パラメータ :  値1,値2,値3, ・・・

OSのバージョンとアプリケーションのドキュメントの互換性をテストするモデルの例をリスト2に示します。

リスト2 OSとドキュメントの互換性をテストするモデル
# これは、テストケースを生成するためのサンプルです。

OSバージョン:     Windows Vista, Windows XP, Windows 2000
Wordバージョン:   Word 2007, Word 2003, Word 2000
Excelバージョン:  Excel 2007, Excel 2003, Excel 2000

カンマ(, )はデフォルトの分離符ですが、/d オプションを使用することで異なったものを指定することができます。

組み合わせるパラメータ数の指定

PICTは、/o: オプションで組み合わせるパラメータの数を指定することができます。デフォルトは2となっています。

表1~3に、組み合わせるパラメータ数を1~3に変更した場合の組み合わせ生成結果を示します。

表1 組み合わせパラメータ数=1の場合
No.OSバージョンWordバージョンExcelバージョン
1Windows XPWord 2003Excel 2000
2Windows 2000Word 2007Excel 2007
3Windows VistaWord 2000Excel 2003
表2 組み合わせパラメータ数=2の場合
No.OSバージョンWordバージョンExcelバージョン
1Windows 2000Word 2000Excel 2003
2Windows 2000Word 2003Excel 2003
3Windows 2000Word 2007Excel 2000
4Windows 2000Word 2007Excel 2007
5Windows VistaWord 2000Excel 2000
6Windows VistaWord 2003Excel 2007
7Windows VistaWord 2007Excel 2003
8Windows XPWord 2000Excel 2007
9Windows XPWord 2003Excel 2000
10Windows XPWord 2007Excel 2003
表3 組み合わせパラメータ数=3の場合
No.OSバージョンWordバージョンExcelバージョン
1Windows 2000Word 2000Excel 2000
2Windows 2000Word 2000Excel 2003
3Windows 2000Word 2000Excel 2007
4Windows 2000Word 2003Excel 2000
5Windows 2000Word 2003Excel 2003
6Windows 2000Word 2003Excel 2007
7Windows 2000Word 2007Excel 2000
8Windows 2000Word 2007Excel 2003
9Windows 2000Word 2007Excel 2007
10Windows VistaWord 2000Excel 2000
11Windows VistaWord 2000Excel 2003
12Windows VistaWord 2000Excel 2007
13Windows VistaWord 2003Excel 2000
14Windows VistaWord 2003Excel 2003
15Windows VistaWord 2003Excel 2007
16Windows VistaWord 2007Excel 2000
17Windows VistaWord 2007Excel 2003
18Windows VistaWord 2007Excel 2007
19Windows XPWord 2000Excel 2000
20Windows XPWord 2000Excel 2003
21Windows XPWord 2000Excel 2007
22Windows XPWord 2003Excel 2000
23Windows XPWord 2003Excel 2003
24Windows XPWord 2003Excel 2007
25Windows XPWord 2007Excel 2000
26Windows XPWord 2007Excel 2003
27Windows XPWord 2007Excel 2007

表からわかるように、組み合わせ数に1を指定した場合は、パラメータの値が列挙されるだけです。組み合わせ数に3を指定した場合は、3パラメータの組み合わせがすべて網羅されていることがわかると思います。それだけに、組み合わせ数も非常に多くなります。

サブモデル

サブモデルは、PICTの機能で最も特徴的なものの1つです。

すべてのパラメータがすべて同じ重要度を持つ、というケースはそれほど多くはありません。PICTでは、サブモデル定義を使用することで、特に重要と考えられる限定したパラメータについて、3パラメータ以上の網羅度を100%確保することができます。サブモデルはわかりにくい概念ですので、ていねいに説明します。

たとえば、リスト3に示す、A社ルータとB社ルータの接続テストを、速度とOSを変えながら実施する場合、パラメータの重要度を考慮するとリスト4のサブモデルになるでしょう。

リスト3 A社ルータとB社ルータの接続テストのモデル定義
A社ルータ: ルータA1, ルータA2, ルータA3
B社ルータ: ルータB1, ルータB2, ルータB3
速度:	 10M, 100M
A側OS:   Windows XP, Linux, Mac OS X
B側OS:   Windows XP, Linux, Mac OS X

このテストで重要と考えられるパラメータは、A社ルータ、B社ルータ、そして速度とします。この場合、リスト4のようにサブモデル定義で、これら3つのパラメータについて、3パラメータ間の組み合わせを網羅するよう指示しています。

リスト4 3パラメータ間の組み合わせを指示
{A社ルータ, B社ルータ, 速度} @ 3

リスト4のサブモデル定義を行うことで、A社ルータ、B社ルータ、速度の3つのパラメータすべての組み合わせが生成されます。生成された個々の組み合わせは、残りのパラメータであるA側OS、B側OSの各パラメータと2パラメータ間の組み合わせとして統合されます。

リスト4のサブモデル定義を使用した場合の組み合わせ数は54です。これに対して、サブモデル定義を使用しない、すべてのパラメータ総当りの場合の組み合わせ数は162となります。このように、適切な条件でサブモデル定義を用いると、組み合わせ数の爆発を抑えながら網羅率の高いテストを行うことができます。サブモデルは1つのモデルでいくつでも定義できます。

リスト3リスト4のモデルで生成された組み合わせを表4に示します。この表を見ると、A社ルータ、B社ルータ、速度の3つのパラメータについて、すべての組み合わせが生成されていることがわかります。さらに、この個々の組み合わせは、残りのA側OS、B側OSの各パラメータとペアの組み合わせとなっていることがわかります。このことから、A社ルータ、B社ルータ、そして速度の3つのパラメータは、4パラメータ間のすべての値と組み合わされていることがわかります。

表4 サブモデルを使用した生成結果
No.A社ルータB社ルータ速度A側OSB側OS
1ルータA1ルータB1100MWindows XPLinux
2ルータA1ルータB1100MLinuxMac OS X
3ルータA1ルータB1100MMac OS XWindows XP
4ルータA1ルータB110MLinuxMac OS X
5ルータA1ルータB110MMac OS XLinux
6ルータA1ルータB110MWindows XPWindows XP
7ルータA1ルータB2100MWindows XPMac OS X
8ルータA1ルータB2100MLinuxWindows XP
9ルータA1ルータB2100MMac OS XLinux
10ルータA1ルータB210MLinuxWindows XP
11ルータA1ルータB210MWindows XPLinux
12ルータA1ルータB210MMac OS XMac OS X
13ルータA1ルータB3100MWindows XPWindows XP
14ルータA1ルータB3100MMac OS XLinux
15ルータA1ルータB3100MLinuxMac OS X
16ルータA1ルータB310MMac OS XMac OS X
17ルータA1ルータB310MWindows XPLinux
18ルータA1ルータB310MLinuxWindows XP
19ルータA2ルータB1100MWindows XPLinux
20ルータA2ルータB1100MMac OS XMac OS X
21ルータA2ルータB1100MLinuxWindows XP
22ルータA2ルータB110MLinuxLinux
23ルータA2ルータB110MMac OS XMac OS X
24ルータA2ルータB110MWindows XPWindows XP
25ルータA2ルータB2100MLinuxWindows XP
26ルータA2ルータB2100MMac OS XMac OS X
27ルータA2ルータB2100MWindows XPLinux
28ルータA2ルータB210MLinuxWindows XP
29ルータA2ルータB210MMac OS XLinux
30ルータA2ルータB210MWindows XPMac OS X
31ルータA2ルータB3100MWindows XPWindows XP
32ルータA2ルータB3100MLinuxMac OS X
33ルータA2ルータB3100MMac OS XLinux
34ルータA2ルータB310MMac OS XLinux
35ルータA2ルータB310MWindows XPMac OS X
36ルータA2ルータB310MLinuxWindows XP
37ルータA3ルータB1100MLinuxWindows XP
38ルータA3ルータB1100MMac OS XMac OS X
39ルータA3ルータB1100MWindows XPLinux
40ルータA3ルータB110MLinuxWindows XP
41ルータA3ルータB110MMac OS XMac OS X
42ルータA3ルータB110MWindows XPLinux
43ルータA3ルータB2100MMac OS XMac OS X
44ルータA3ルータB2100MWindows XPWindows XP
45ルータA3ルータB2100MLinuxLinux
46ルータA3ルータB210MMac OS XWindows XP
47ルータA3ルータB210MLinuxMac OS X
48ルータA3ルータB210MWindows XPLinux
49ルータA3ルータB3100MMac OS XWindows XP
50ルータA3ルータB3100MLinuxMac OS X
51ルータA3ルータB3100MWindows XPLinux
52ルータA3ルータB310MLinuxLinux
53ルータA3ルータB310MWindows XPWindows XP
54ルータA3ルータB310MMac OS XMac OS X

次回は、いよいよ制約条件について説明を行います。

おすすめ記事

記事・ニュース一覧