PICTの概要
PICT(Pairwise Independent Combinatorial Testing tool)はMicrosoft社が開発したソフトウェアテストツールです。Microsoftでは2000年からこのツールをテスト業務に使用しています。ツール開発者はPICTが備えている柔軟性のおかげでテスト担当者がテスト対象を抽象化し、モデル化するレベルを向上させ、組み合わせテストが実施しやすくなったと述べています。
PICTは、複数のパラメータの組み合わせテストケースを、オールペア法(ペアワイズ法ともいう)を用いて自動生成します。筆者はWindows XPとWindows 2000での動作を確認しています。Windows Vistaでも問題ないと思います。
PICTはフリーソフトウェアです。次のサイトからダウンロードすることができます。
Pairwise Testing(http://www.pairwise.org/)
ダウンロードすると、プログラムとともに英文で書かれたHTMLファイルの簡単なマニュアルが付属していますが、多機能なPICTを使いこなすにはそれだけでは不十分です。また日本語環境で使用することができません。今回はPICTの基本的な使い方を説明するとともに、日本語を扱えるようにする方法についても説明します。
PICTで生成されたテストケースを使用することにより、テストの質を落とさずに、組み合わせテスト実施に必要なテストケース数を従来の数分の1から数百分の1に削減することが可能です。
オールペア法を採用したツールは有償、無償を含めて20種類以上存在します。そのほとんどが欧米製です。PICTが生成する組み合わせの数は、それらのツールと比較してどのくらいなのでしょうか。表1に、同じパラメータを使って異なるツールが生成した組み合わせ数の比較を示します。
表1 異なるツールが生成した組み合わせ数の比較
パラメータ | AETG | IPO | Tconfig | CTS | Jenny | TestCover | DDA | AllPairs | PICT |
34 | 9 | 9 | 9 | 9 | 11 | 9 | ? | 9 | 9 |
313 | 15 | 17 | 15 | 15 | 18 | 15 | 18 | 17 | 18 |
415 317 229 | 41 | 34 | 40 | 39 | 38 | 29 | 35 | 34 | 37 |
41 339 235 | 28 | 26 | 30 | 29 | 28 | 21 | 27 | 26 | 27 |
2100 | 10 | 15 | 14 | 10 | 16 | 10 | 15 | 14 | 15 |
1020 | 180 | 212 | 231 | 210 | 193 | 181 | 201 | 197 | 210 |
表1で、パラメータの欄はパラメータの数と各パラメータが含む値の数を表します。たとえば34というパラメータの欄は、3つの値を含むパラメータが4つあることを意味します。表中のAETGとTestCoverは有償のツールです。
この表の結果によると、PICTはほぼ平均的な数の組み合わせを生成することがわかります。ここで注意してもらいたいことがあります。この表で示されているPICTの組み合わせ数は、最適な初期条件を指定した場合であるということです。
PICTはデフォルトで固有の初期条件を使用して生成を行います。この初期条件の違いにより、生成される組み合わせ数が若干違ってきます。たとえばパラメータが34の場合、デフォルトで生成される組み合わせは13です。またパラメータが313の場合、デフォルトで生成される組み合わせは20です。
初期条件の変更は、/rまたは/r:オプションで行うことができます。筆者が確認してみたところ、34の場合は65、313の場合は66を指定した場合に表1のとおりの組み合わせ数となりました。ほかの特定の値でも同じ結果になると思います。デフォルト状態で使用する通常の使用方法では、PICTが生成するテストケース数は、他のツールに比べて若干多くなります。ただし、そのデメリットをはるかにしのぐメリットをPICTは備えています。
PICTの特長は、フリーのソフトウェアであるにもかかわらず、オールペア法を採用した有償のソフトを上回るほど多機能であり、かつ非常に柔軟性に富んでいることにあります。またその使いやすさも特筆すべき点です。実際のテスト業務で充分実用的に使用することができます。これらのことは、これからおいおい説明していきます。
直交表を使った組み合わせテストツールは存在しますが、制約条件を指定できるものは筆者の知る限り、フリーソフトはもちろん、有償のソフトでも寡聞にして知りません。前回も述べましたが、組み合わせテストにおいて制約条件を指定できることは必須条件と考えます。筆者の経験では、組み合わせテストのほぼ8割で制約条件の指定が必要でした。この割合はテスト分野によって若干異なるとは思いますが、制約条件が必要な組み合わせテストが多数である分野が大多数だと思われます。制約条件の指定が不要なようにパラメータを限定して組み合わせテストを行うことも可能ですが、それでは組み合わせテスト本来のメリットが失われてしまいます。現状では制約条件が柔軟に指定できるPICTが最も実用的な組み合わせテストツールであるといえます。
パラメータの組み合わせにPICTを使う
各パラメータは限られた数の値を持っています。それぞれの値はその種別(OSのエデションなど)、あるいは数値(RAM容量など)によって決定します。リスト1に一例を示します。
この例では4096通りの組み合わせがあり、すべてをテストするには膨大なテスト時間が必要となります。
これまでのソフトウェアテストに関する研究から、任意の2つのパラメータについて、すべての組み合わせを網羅することで、テスト漏れの可能性を最小限に抑えながら、組み合わせの数を大幅に減らすことができることがわかっています。この例で、PICTはオールペア法を用いて25通りの組み合わせを生成します。PICTを使用することで4096通りから25通りへ、およそ164分の1に組み合わせを削減することができます。
PICTを実行する
PICTは、組み合わせ生成条件が書かれた、フォント属性指定などがないプレーンなテキストファイルを読み込んで、ワンセットのテストケースを出力します。PICTを実行するにはコマンドプロンプトを起動する必要があります。コマンドプロンプトはWindowsのスタートメニューから、「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」を選択することで起動できます。
コマンドプロンプトが起動できたら、まずカレントディレクトリを確認してください。カレントディレクトリは点滅するカーソルの左側に表示されています。カレントディレクトリに、リスト1の内容を記述したテキストファイル(モデルファイルといいます)を作成します。ファイルの名前は何でもよいのですが、ここではa.txtとします。図1のようにコマンドを入力し、Enterキーを押します。
モデルファイルの内容に誤りがなければ、コマンドプロンプトのウィンドウに図2に示す25通りの組み合わせが表示されます。
ここでは最も簡単な使い方を示しました。モデルファイルの内容をいろいろ変更して実行し、どのような結果になるか調べてみてください。オールペア法が持ついくつかの性質に気づくかもしれません。
さて、このままでは生成された組み合わせは画面上に表示されるだけです。組み合わせをファイルに出力したいですね。コマンドプロンプトには標準出力と出力のリダイレクトという便利な機能があります。これはプログラムの出力を画面に表示するか、ファイルに出力するかなど、出力先を指定できる機能です。
生成された組み合わせをout.txtというファイルに出力したい場合は、図3のようにコマンドを入力します。ここでerror.txtには、エラーが発生したとき、エラーメッセージが書き込まれます。
組み合わせが書き込まれたファイルはテキストエディタやExcelで開くことができます。
PICTで日本語を扱う
PICTはモデルファイルに日本語が含まれていると、そのままではエラーとなる場合があります。そのため、PICTで日本語を扱うには工夫が必要になります。
(1)文字コードに日本語EUCを使用する
PICTが対応している文字コードはANSIとUnicode(UTF-8)およびEUCのみです。日本語を扱いたい場合はモデルファイルの文字コードにEUCを使用する必要があります。「秀丸エディタ」など、文字コードを指定することのできるエディタを使用し、作成したモデルファイルを保存する際に、文字コードをEUCで保存してください。一度EUCで保存すれば、その後で上書き保存してもEUCで保存されます。
(2)全角のスペースは使わない
全角のスペースは使わないでください。スペースは必ず半角を使うようにしてください。全角モードのときに半角スペースを入力するには、Shiftキーを押しながらスペースキーを押します。全角のスペースを使うとエラーになる場合があります。この場合、エラーメッセージは出るのですが、エラー原因がわかりづらく、原因を突き止めるまでに時間がかかってしまうことがあります。くれぐれも全角スペースは使わないようにしてください。
(3)生成された組み合わせはファイルに出力する
コマンドプロンプトのウィンドウ内に表示された組み合わせに日本語が含まれていると文字化けします。図3のように標準出力にファイルを指定することで、生成結果をファイルに出力することができます。そのファイル内容をエディタで見るようにすれば、文字化けせずに見ることができます。
(4)Excelで開く場合は文字コードをシフトJISにしておく
ファイルに出力したテストケースをExcelで開く場合はそのままでは文字化けしてしまいます。これは、Excelがファイルを開く通常の方法では文字コードEUCに対応していないためです。Excelで文字化けしないで開くためには、エディタでいったんファイルの文字コードをシフトJISに指定してセーブする必要があります。
ここまで読んで、使いにくいと感じられた人もいるかもしれません。でも心配はご無用です。簡単にPICTを使いこなす方法については、本特集の第6回で説明する予定です。
次回は、具体例を用いてPICTの詳しい機能説明を行います。