最近、組み合わせテスト系の人たちと”禁則”について話す時があり、結構統一した表現を使うので、ここで書いておく。
よく使うのは、PICTというマイクロソフトのツールが利用している表記方法。ちなみにPICTは、以下からダウンロードできる。
http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi
(解凍すると、プログラムとマニュアル「PICTHelp.htm」が生成される、ただし、URLは、もしかしたら最新版じゃないかも。)
また、以下がPICTに関する掲示板(英語;MSDN=マイクロソフト運営?)。
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1626664&SiteID=1
例えば、「PICTHelp.htm」での
IF [File system] = "FAT" THEN [Size] <= 4096;
は、 [File system] という因子の水準値が"FAT"だったら、 [Size] という因子の水準値は 4096以下とすることを示している。ちなみに、 [Size] という因子の本来の水準値は、 10, 100, 500, 1000, 5000, 10000, 40000。したがって、"FAT"だったら、 [Size] は10,100,500, 1000のどれかかとなる。(どれになるかは、ツール=PICTに依存する。)
さて、原点に戻り”禁則”とは。禁則は、日本語での行末の改行処理を指すことが多い。組み合わせテストでの禁則は、生成したテストケースでテストできない事、テストを継続するために代わりの処理をすることを指す。処理には、水準値を変更する事がほとんど。テストを行わない場合も含めるが、組み合わせテストを生成する人たちの間では、水準値の変更が基本。
上の例では、当初 [File system] = "FAT" [Size] = 500 が生成された場合、禁則条件が記載されていたら、そのテストケースの500を10に置き換えてテストする。
で、今まで問題だったのが、それらの禁則を組み合わせの表の上で操作する事が多かったので、他の人が妥当性をチェックしにくい点。また、バッチ的にテストケースを生成しにくかった事も問題。
そこで、多少飛びつく格好になったのが、PICTでの構文。構文に沿って記述すると、曖昧さがなくなる。PICTそのものを利用していなくても、本構文は利用できる。なお、自分の場合は、PICT以外のツール利用の場合は、以下のような記述とする事が多い。
IF [File system] = "FAT" THEN [Size] = 10;
つまり、禁則時の水準値(ここでは10) を決めている。本案は、一長一短。PICT以外のツールで一旦生成されたテストケースを加工する事になり加工結果がはっきりしているので、組み合わせテストやテスト対象に詳しくなくても加工できる。短所は、網羅度が低くなる点。ただし個人的には、禁則状態で水準をいじる事での網羅度向上は、余り意味が無いと思っている。
今まで組み合わせテストでの禁則でよく例に出されたのが、プリンタでの紙方向(縦、横)と用紙サイズ(A4,B4,A3,,,,)。A3(以上)の場合は、紙方向が縦のみというケース。
IF [用紙サイズ] = "A3" or [用紙サイズ] = "B3" THEN [紙方向] = "縦";
と記述できる。
本表記で、組み合わせテスト系の人たちと話すケースが多くなってきた。結構便利。
なお、テストケースって、なかなかモデリングが進んでいない。プログラミングはUMLとかが普及しているのに。ちなみに、デザインパターンには、テストパターンがあったような気がするが、ネット等で何種類かあるのかも??
禁則とかで、少しづつテストのモデリング化が進みつつあるように思える。
追記;禁則をイメージ、しかもHAYST法でのそれをイメージするなら、JaSSTの05大阪の以下の資料、P12、P29~32が参考になる。