組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題 -60ページ目

PICTのダウンロードサイトが変わりました。

PICTのダウンロードサイトが従来のサイトから、Microsoftのサイトに変更になりました。

今回の変更によって、PICTのダウンロードアドレスがMicrosoftのサイト内で表示されるようになり、今までの個人の運営によるサイトから、Microsoftが運営するサイトに移行したことになります。

今後は以下のURIのWebページからPICTをダウンロードすることができます

http://msdn.microsoft.com/en-us/testing/bb980925.aspx

それでは。

JaSST 2009 Tokyo でプレゼンに使用したファイルが公開されました。

JaSST 2009 Tokyo で、「オープンソースの組み合わせテストツールの開発 -組み合わせにおける制約の表形式でのモデル化-」というテーマで発表したプレゼンテーションファイルのPDFがJaSSTのサイトに掲載されました。サイトのURIは以下の通りです。

http://www.jasst.jp/archives/jasst09e.html#zengo

このページの真中あたりにあります。
PDFへの直接のURIは以下の通りです。

http://www.jasst.jp/archives/jasst09e/pdf/D4-2.pdf

当日は、30分という枠内でPictMasterの制約表の説明から適用事例として組み合わせテスト(総合テスト)、状態遷移テスト、制御パステストまで説明したので説明が駆け足になってしまいました。

ゆっくりPDFを読んでもらうことである程度理解の助けになるのでないでしょうか。

矛盾した制約指定を素早く見つけるには

多くの制約を指定する場合、うっかりすると相互に矛盾する制約を指定してしまうことがあります。この場合、PICTは以下の例のような警告メッセージを出力します。


Constraints Warning: Restrictive constraints. Output will not contain following values:
A: a1


この例では、パラメータAの値a1が組み合わせに1つも含まれないという警告です。こうした警告が現れるのは、値a1が組み合わせに現れない矛盾した制約を指定したためです。


このような警告が現れる最も単純な制約指定を以下に示します。


組み合わせテストツール PictMaster を使う-矛盾制約1

図1.矛盾した制約指定の例(その1)

この制約指定は制約条件の値とそれに対応する制約対象の値が不一致であるため値a1が組み合わせに現れないことになっています。この制約指定の誤りは一目見れば分かりますが、実際には多くの制約が関係した結果として、こうした制約条件と制約対象との矛盾が起こります。


もう少し複雑にした例を以下に3つ示します。合わせてそれぞれのワーニングメッセージも示します。その後で原因を素早く見つけ出す手順を紹介します。

まず自力で原因を見つけ出してみるのも面白いかもしれません。(^^)


組み合わせテストツール PictMaster を使う-矛盾制約2

Constraints Warning: Restrictive constraints. Output will not contain following values:
E: e1

図2.矛盾した制約指定の例(その2)

組み合わせテストツール PictMaster を使う-矛盾制約3

Constraints Warning: Restrictive constraints. Output will not contain following values:
A: a2
B: b2
E: e1

図3.矛盾した制約指定の例(その3)

組み合わせテストツール PictMaster を使う-矛盾制約4

Constraints Warning: Restrictive constraints. Output will not contain following values:
C: c1

図4.矛盾した制約指定の例(その4)


矛盾した制約指定には制約条件と制約対象との間の不一致と、制約対象同士の間の不一致の2種類があります。

ここで、制約条件と制約対象との不一致というタイプを「条件-対象間矛盾制約」と呼び、制約対象同士の不一致というタイプを「対象-対象間矛盾制約」と呼ぶことにします。矛盾した制約指定は以上の2つのどれかのタイプに属します。あるいは同時に2つのタイプに属する場合もあります。


制約指定が複雑な場合、矛盾した制約指定を見つけ出すのに時間がかかる場合があります。そこで、組み合わせに含まれない値があるという警告メッセージが表示された場合、素早く矛盾した制約指定を見つけるにはどうすればよいでしょうか。


警告メッセージで表示される値は多くの場合、制約条件の値です。警告メッセージには複数の値が表示される場合もありますが、その場合でも一番最初に表示された値に注目します


注目した制約条件の値のセルから制約対象を列方向および行方向に探します。行方向に探すときは同じ値の制約対象を探します。列方向で見つかったら今度は行方向に先ほど見つけた制約対象と同じ値の制約条件を探します。行方向で見つかったら今度は列方向に制約条件を探します。このときは同じ値である必要はありません。


この手順を繰り返します。同じ値の制約対象または制約条件が複数見つかった場合は1つづつ順番にこの手順を繰り返します。この手順を繰り返す際に、列方向に制約対象または制約条件を探し、見つかったセルの行方向を調べ矛盾した関係にある値のセルがないかチェックします


この手順を繰り返すことで多くの場合、矛盾した制約を見つけ出せるはずです。最初に示した矛盾した制約指定の、条件-対象矛盾制約、対象-対象間矛盾制約を見つけ出すステップを明記した図を以下に示します。


組み合わせテストツール PictMaster を使う-ステップ2

図5.矛盾した制約指定を見つけ出す例(その2)

組み合わせテストツール PictMaster を使う-矛盾制約その6修正

図6.矛盾した制約指定を見つけ出す例(その3)

組み合わせテストツール PictMaster を使う-ステップ4

図7.矛盾した制約指定を見つけ出す例(その4)


以上の例ではセルを探すルートが閉じたループになっています。そして矛盾した関係にある制約指定は四角形の隅を形成する太枠で示した4つのセルで構成されています。これは最初に示した最も単純な例その1と基本的にはすべて同じタイプであること意味しています。


図のその2対象-対象間矛盾制約その3その4条件-対象間矛盾制約です。その3では2つの条件-対象間矛盾制約があります。


経験上、2つ以上の制約条件を持つ制約は矛盾した関係にある制約指定を構成する4つのセルに含まれることはまれだと思われます。


組み合わせに現れない値があるという警告メッセージが表示された場合は、ここで説明した方法を適用してみてください。

しかしながら、以上の例とは異なる矛盾した制約の場合もあります。その例を以下に示します。


組み合わせテストツール PictMaster を使う-矛盾制約その5

Constraints Warning: Restrictive constraints. Output will not contain following values:
B: b1
C: c1
図8.矛盾した制約指定を見つけ出す例(その5) 四角形を構成しない例

この例ではこれまでの四角形の4隅を構成する形になっていません。そして矛盾した制約であることが多少分かりにくい関係です。

矛盾した制約かどうかは、同じ行に位置する2つのセルの値が異なる場合、値が同じでなくても矛盾しない関係にあるかどうかを調べます図8ではパラメータCの行にある2つの異なる値、c1 と c2 が他の制約指定の関係から同時には存在できない矛盾した値であることが分かります。


さらに制約条件→制約対象→制約条件→制約対象→ ・・・ という順番では該当するセルが存在しない場合もあります。その簡単な例を以下に示します。


組み合わせテストツール PictMaster を使う-矛盾制約その6

図9.矛盾した制約指定を見つけ出す例(その6) 制約条件→制約対象の順序が成立しない例


この例では制約条件→制約対象・・・ というルートをたどることができません。そもそも警告メッセージ(ワーニング)には制約表に現れていない値 d3 が指摘されてます。この場合は制約対象がワーニングの値となっています。ただし、矛盾した制約であることはすぐに分かるでしょう。


以上、多くの例を用いて矛盾した制約を素早く見つける方法を紹介しました。ここで紹介して例がすべての場合を示しているとは限りませんが、組み合わせに含まれない値がある、という警告メッセージが表示されて、原因を見つけるのに時間がかかるようでしたら、ここで紹介した方法の適用を試みてはいかがでしょうか。


PictMaster v2.8.1 をリリースしました。

v2.8でワークシートのコピーを行なった場合、ワークシートの切替えをを行なうとVBAのエラーとなる障害を修正したバージョン 2.8.1 をリリースしました。
そのほかにいくつかの機能改善も行ないました。

PictMaster は以下のサイトからダウンロードすることができます。
http://sourceforge.jp/projects/pictmaster/

変更内容の詳細は以下の通りです。

【機能改善】
・最初の結果内容欄が空白の結果表が表示されている状態で生成を行なうとき、「結果内容欄が記入されていない」というエラー表示を行なわないようにした(制約表と同じ動作となるようにした)。
・結果表が表示されている状態で、環境設定でOKボタンをクリックすることで結果表のパラメータ欄にその時点のパラメータ名が記入されるようにした(制約表と同じ動作となるようにした)。
・CTL-e などで画面の分割を行った際、画面のちらつきが起きないようにした。

【バグ修正】
・ワークシートを複数枚コピーした場合、ワークシートの切り替えを行なうと VBA のエラーとなるバグを修正した。
・1回のみの生成時、自動整形を行わない設定で統計情報を表示する設定の場合、生成完了時に生成結果の画面に切り替わらない状態で統計情報が表示されるバグを修正した。

以上です。

組み合わせテストツール PictMaster v2.8 をリリースしました。

組み合わせテストツール PictMaster v2.8 をリリースしました。
今回のリリースでは、いままでやりにくかった制約表や結果表の編集作業を専用のコンテキストメニューから簡単に行なえるようにしました

PictMaster は以下のサイトからダウンロードすることができます。

http://sourceforge.jp/projects/pictmaster/

変更の詳細を以下に示します。

【機能改善】
・1回のみの生成の場合も生成統計情報を表示可能とした。
・制約表の行または列をコンテキストメニューで指定し、行または列の追加、削除などの編集操作を可能とした。
・結果表の行または列をコンテキストメニューで指定し、行または列の追加、削除などの編集操作を可能とした。

なお、AllPairIIについては、生成エンジンのJennyにバグが目立つため、非公開としました。PICTだけを使用するという考えもありますが、PICTが扱うにはAllPairIIは大きすぎるため、PictMasterに一本化することにしました。