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

第6回PICTをより使いやすくする

Excelベースのテスト仕様書

読者の皆さんはテスト仕様書をどのようなソフトを使って作成しているでしょうか。

Wordで作成している。Excelで作成している。テストケース管理の専用ツールで作成している。など、いろいろなケースが考えられますが、最も多いのはExcelで作成しているケースではないでしょうか。

Excelでテスト仕様書を作成することには多くの利点があります。たとえば、テスト結果の集計が容易にできること。テストケースを作成する際の作表作業が簡単にできること。複数のワークシートを使用することでテスト項目の管理が容易に行なえること。入力規則を使用することで入力ミスを減らせること。などなど、Excelにはテスト仕様書を作成するのに向いた機能がそろっています。テストケース管理の専用ツールもよさそうですが、実際のテストのやり方に合わせてカスタマイズする、といった機能は貧弱だと思われます。その点、Excelではカスタマイズは自由です。また内蔵しているVBA(Visual Basic for Applications)を使用することで専用ツール顔負けの機能を持たせることもできます。

ExcelをPICTのGUIフロントエンドとして使う

PICTそのものはコマンドプロンプト上で動作するCUI(キャラクタ ユーザ インターフェース)ベースのアプリケーションです。今となってはコマンドプロンプトになじみのない人が大半です。コマンドプロンプト上で動作するPICTに抵抗感を感じる方も少なくないと思います。コマンドプロンプト上で動作させて、テスト仕様書にテストケースとして組み込むまでに文字コードを2回変更し、Excelでファイルを読み込むなどいろいろな作業をしなければなりません。このように、PICTそのものだけでテストケースを作成しようとすると、かかる手間がばかになりません。

Excelでテスト仕様書を作成しているのなら、Excel上で組み合わせテストケースも生成できたらとても便利になりますね。これを実現したのが今回紹介するExcelのBookである「PICT活用シート」です。これは筆者が製作したものです。PICT活用シートは、CUIベースのPICTにExcelのGUI(グラフィカルユーザインターフェース)ベースの皮をかぶせます。イメージ的には図1のようになります。

図1 PICT活用シートのイメージ
図1

図1に示すように、ユーザからはPICTの存在はまったく見えません。GUIベースですべての作業を行うことができます。

PICT活用シートは次に示す5つのソフトの連携で動作します。

  1. ExcelのVBA
  2. コマンドプロンプト
  3. バッチファイル
  4. 秀丸エディタ
  5. PICT

VBA(Visual Basic for Application)は、Excel用のプログラミング言語(Visual Basic)です。PICT活用シートではVBAを使用することでExcelのさまざまなGUIをコントロールします。またモデルファイルの作成、バッチファイルの作成、コマンドプロンプトの起動およびバッチファイルの実行も行ないます。さらにユーザの指定に応じて生成結果の並び替え、罫線を描くなどの処理も行ないます。

コマンドプロンプトのバッチファイルは、秀丸エディタの起動とPICTの実行、およびPICTの実行結果を判断し、必要に応じて秀丸エディタを異なる条件で起動します。 秀丸エディタは、モデルファイルとPICTが出力したファイルの文字コードの変換をエディタのマクロを使って実行します。

PICTはモデルファイルの構文解析と組み合わせ生成エンジンの役割を果たします。

以上で述べた内容を含め、PICT活用シートでテストケースを生成するイメージを図2に示します。

図2 より詳しいPICT活用シートでテストケースを生成するイメージ
図2

図2はイメージであり、実際にコマンドプロンプト上でPICTと秀丸エディタを制御しているのはバッチファイルです。

PICT活用シートの使い方

PICT活用シートは、Excel 2000以降のExcelで動作します。Windows XP、Windows 2000での動作を確認しています。PICT活用シートを使用するためには以下のものを用意します。

  1. PICTそのもの
  2. 秀丸エディタ V7.02以上※
  3. 秀丸エディタで使用するPICT活用シートのためのマクロファイル3個
  4. Excel 2000以降のExcel
※ 秀丸エディタは一度購入すればバージョンアップは無料です。

PICT活用シートの最新版と秀丸エディタのマクロおよびインストール方法、使用方法を説明したテキストファイルなどをまとめた圧縮ファイルをこのサイトで公開します。記事を最後までお読みください。

PICT活用シートの画面イメージを図3に示します。

図3 PICT活用シートの画面イメージ
図3 PICT活用シートの画面イメージ

PICT活用シートは以下の各部分からなっています。

1~7行目 フリーエリア

ユーザが任意にレイアウト可能なエリアです。テスト大項目番号、小項目番号、作成日、作成者など、実際にユーザが使いやすいようにレイアウトを決めてください。なお5~7行目は非表示になっているため、そのエリアを使いたい場合は書式メニューから行の再表示を行なってください。

デフォルトのフリーエリアのレイアウトを図4に示します。

図4 デフォルトのフリーエリアのレイアウト
図4

9~38行目 パラメータ、値の並び欄

パラメータと、値の並びをカンマ( , )で区切って記入します。パラメータの末尾にコロン( : )は不要です。パラメータと値の並び欄は30行で固定です。デフォルトでは16行目以降は非表示となっています。

この欄を編集する際の注意点があります。

行の削除、挿入は行わないで下さい。代わりに行のクリア、コピーと貼り付けで対応してください。なお第1行目からのコピー、他の行を第1行目に貼り付けなどを行なうと罫線が乱れますのでその場合は面倒でもシート最上部の「数式の編集」欄を経由してコピー、貼り付けを行ってください。

コピー元の行と貼り付け先の行が重なると正しく貼り付けされません。コピー先が重ならないようあらかじめ間をあけておくようにしてください。

パラメータ、値の並び欄のデフォルトを図5に示します。

図5 パラメータ、値の並び欄のデフォルト
図5

41~42行目 サブモデル、オプション欄

2つまでサブモデルを記入することができます。オプション欄には、PICTのコマンドオプションをそのまま記入することができます。

45~94行目 制約条件欄

制約条件を記入します。50行まで用意されています。1行に1ステートメント記入とすることを推奨します。この欄を編集する際は、パラメータ、値の並び欄と同じ注意事項があります。

制約条件欄のデフォルトを図6に示します。

図6 制約条件欄のデフォルト
図6

2~3行目 「生成」、「整形」、「環境設定」ボタン

デフォルトのレイアウトでは、2~3行目の右端に図7に示す3つのボタンがあります。

図7 3つのボタン
図7

「生成」ボタン

パラメータ、値の並び欄などに必要な記入を行った後にこのボタンを押すことで、テストケースが ⁠a.xls⁠というBook名で作成されます。

「整形」ボタン

テストケースが生成された後で、行の並び替え、罫線を描く、など指定した条件でテストケースの形を整えることができます。⁠整形」ボタンをクリックすると、図8の例のようなフォームが表示されます。

図8 ⁠整形」ボタンのクリックで表示されるフォーム
図8

並べ替えのキーには先頭から3つのパラメータが選択され、罫線を描く、行番号列を追加、列幅を合わせる、にすべてチェックが入れられます。もちろん、ユーザが好きなように手直しすることもできます。⁠OK」ボタンのクリックで処理が行われます。 図5のパラメータと値、図6の制約条件で生成されたテストケースを、図8の指定で整形した結果を図9に示します。

図9 整形されたテストケース
図9

「環境設定」ボタン

このボタンをクリックすると図10のフォームが表示されます。

図10 環境設定ボタンのクリックで表示されるフォーム
図10

「自動整形を行なう」にチェックを入れて、テストケースの生成を行うと、テストケースが生成された後、自動的にテストケースの整形が行なわれます。この際の整形の条件は、図8と同様の条件で行なわれます。異なる条件でテストケースの整形を行いたい場合はチェックを外し、テストケースが生成されてから「整形」ボタンをクリックして、任意の条件を指定してください。

「オートコンプリートを使用しない」にチェックを入れると、Excelのオートコンプリート機能がBook単位で無効になります。制約条件の記入でif文を記入すると前の行の制約条件が表示されてわずらわしい場合にチェックを入れると制約条件が記入しやすくなります。Excelのオプションメニューで設定した場合と異なり、この設定はBook単位で行われるため、他のBookの設定には影響を与えません。

「最少テストケース生成を行なう」にチェックをいれると、テストケース生成の際、ランダムな初期条件でPICTを実行し、最もテストケース数の少ないテストケースを生成結果として出力します。⁠生成試行回数」で何回テストケース生成を行なうかを指定します。2~9999回まで指定できます。デフォルトは100回です。 第2回目の記事で説明しましたが、PICTは内部で固有の初期条件を使用してテストケースの生成を行っています。この初期条件の違いにより、生成される組み合わせ数が若干違ってきます。

最少テストケース生成実行中は、図11の例に示すプログレスバーが表示されます。

図11 最少テストケース生成中のプログレスバーの例
図11

「統計情報を表示する」にチェックを入れると、最少テストケース生成が完了した時点で図12の例に示す最少数、最多数、初期数、最少ランダム数、および最少テストケース生成にかかった経過時間を表示します。

図12 表示される統計情報の例
図12

初期数の値は、PICTのデフォルトの生成結果を表します。最少ランダム数は、最少テストケースを生成したランダム数を表します。 /r:nオプションで最少ランダム数を指定して、通常の生成を行なうと最少テストケースと同じ生成結果を得ることができます。

⁠最少テストケース生成を行なう」にチェックを入れた場合、オプション欄の指定は無視されますので注意してください。

ランダムな条件で生成した場合、生成されるテストケース数には0~10件程度のバラツキが発生し、多くの場合、最少テストケース生成を行なうことにより2~4件程度テストケース数を減らすことができます。生成試行回数を増やすほど、テストケース数を減らせる確率が高くなりますが、ほとんどの場合、100回行えば十分のようです。1件でもテストケース数を減らしたい場合は、生成試行回数に500~1000程度の値を入力して最少テストケース生成を行ってみてください。

初期条件で生成したテストケース数が最も少なかった場合は、最少ランダム数は不明なため、-1が表示されます。

最少テストケース生成にかかる時間はどれくらいでしょうか。例として以下に示すスペックのノートパソコンでデフォルトのモデルを実行した結果を表1に示します。

OS: Windows XP SP2
CPU: Intel Pentium M 1.6GHz
メモリ: 512MB
Excel: Excel 2000
表1 最少テストケース生成にかかった時間の例
生成試行回数経過時間
1008秒
30020秒
100064秒

この結果から、回数が多くなるほど1回あたりにかかる時間が少なくなっているのがわかると思います。PICT活用シートは、初回と最後のみ比較的時間のかかる秀丸エディタのマクロによる文字コードの変換を伴う処理を行ないます。そのため、回数が多くなるほどこの部分の時間が占める割合が相対的に少なくなり、1回あたりの経過時間が短くなります。なお最新のExcel 2007を含めてもExcelのバージョンの違いによる経過時間の変化は認められませんでした。

PICT活用シートのカスタマイズとTips

PICT活用シートは、ExcelのBookであることから使いやすいようにカスタマイズすることが可能です。

1~7行目は自由にレイアウトしてかまいません。

PICT活用シートのファイル名、シート名は任意の名前に変更してかまいません。

PICT活用シートで新しいワークシートを挿入し、そこへPICT活用シートの全体をコピー&ペーストすることで、異なるテストケースを生成するシートを任意の枚数設けることができます。

テスト対象の大きな機能ごとにPICT活用シートのBookを設け、そのいくつかの組み合わせテストケースのモデルを複数のシートに分けて管理するという方法がよいかもしれません。その場合、⁠PICT活用シート」という名称はテスト対象を表す大機能などの名称に変更することになるでしょう。

カスタマイズする際、パラメータ、値の並び、サブモデル、オプション、および制約条件の文字が記入されたセルの行番号と列番号は変えないで下さい。VBAがモデルを認識できなくなりますので。

制約条件が複雑になった場合は、制約条件欄の1桁目に⁠#⁠を入れてコメントをつけたほうがよいでしょう。

警告メッセージで比較的よく現れるのが、⁠Constraints Warning: All or no values satisfy relation ~」というメッセージです。これは制約条件の定義で、パラメータ定義に存在しないパラメータや値を指定したことを意味しています。パラメータ定義に書かれたパラメータや値の名前と、制約条件で記述した名前が一致しているか確認してください。

⁠Constraints Warning: Restrictive constraints. Output will not contain following values:」という警告メッセージも比較的よく現れます。これは制約条件を定義したとき、制約条件が強すぎて組み合わせに1回も現れない値があることを意味しています。各制約条件の間にこのような関係がないか調べてください。

エラー(警告)メッセージがメッセージボックスに表示されている間は、PICT活用シートを操作することができません。そのためエラー(警告)メッセージの内容を見ながらパラメータ定義や制約条件の間違いを調べたいといったことができないことがあります。

実は、エラー(警告)メッセージが表示されている間はそのメッセージ内容が記述されているファイル e.txt が存在するので、秀丸エディタでe.txtのファイルを開くことができます。ファイルを開いた後で、エラー(警告)メッセージのOKボタンをクリックすれば、秀丸エディタでエラー(警告)メッセージを見ながらPICT活用シートのパラメータ定義や制約条件の間違いを調べることができます。

また警告メッセージの場合は、警告メッセージのOKボタンをクリックしても、テストケースは生成されているのでa.xlsのファイルを開いて生成結果を確認することができます。

終わりに

これまで6回にわたって掲載してきたこの特集も今回が最終回となりました。この特集で、オールペア法とPICTが組み合わせテストの実施に強力な武器となることがおわかりいただけたでしょうか。

PICTが現れるまでは、組み合わせテストの技法というと、直交表かオールペア法かということが話題になりましたが、いずれも実際のテスト業務で実用的に使用できるツールは事実上存在しなかったといってよいでしょう。それは業務で実用的に使用するためには制約条件の指定が容易にできる必要があったからです。たとえできたとしても、Webベースでしか使用することができないか、非常に高価か、ツールは存在すれども非公開という状況でした。

この状況はPICTの出現で大きく変わったと言えるでしょう。PICTのおかげで誰もが容易に組み合わせテストのツールをテスト業務に実用的に使えるようになりました。

ただし、組み合わせテストは奥が深いです。簡単だといいながら矛盾するようですが、的を射たモデルを作成するにはある程度の経験が必要となります。やればやるほど奥の深さが見えてきます。その意味で、PICTによる組み合わせテストの導入はひとつの挑戦と言えるでしょう。

最後に一言。テスト技法は組み合わせテストだけではありません。テスト対象の性質にふさわしいテスト技法を適用することが最も重要ということを終わりの言葉とさせていただきます。

長い間この特集をご覧いただきありがとうございました。今回で更新は終わりですが、今後もアクセスして読み直してください。

PICT活用シートのダウンロード

今回の記事で紹介した「PICT活用シート」をご提供します。以下からダウンロードしてください。

インストール方法や詳しい使い方は、解凍したフォルダに入っているテキストをお読みください。

なお、このツールは今回の記事の理解のために公開されているもので、今後のバージョンアップなどには必ずしも対応するものではありません。あらかじめご了承ください。

おすすめ記事

記事・ニュース一覧