ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。

ドリル勉強会第6回、ペアワイズ法 - その2

 では問題を解いてみます。もう26時半だけどね。。。

まずは単純に組み合わせを

 単純に、各因子が取りうる水準を記述して、「生成」してみましょう。

2-1_63a78338

 PictMaster(と、裏で動くPICT)では、とりえあずこのように因子と水準を記述するだけで、2因子の組み合わせをすべてパックした少数のテストケースを生成してくれます。結果は、

2-2_41659f0a

 この19パターンの組み合わせが出てきます(出力される組み合わせは一意ではありません)。でもここには、ジュースにお湯を入れて文字通り水増しするパターンや、お茶にクリームを多めに投入するといった悪意も漏れなく網羅されています。

「制約」を追加してみる

 PictMasterでは、「ありえない組み合わせ」を制約として指定することで、その組み合わせを省いたうえでのパターンを生成してくれます。
 「環境設定」から「制約」を開いて、指定された3つの制約を指定してみましょう。なおここで、「お湯」の水準として「無し」を追加しています。

2-3_f49b6c72

 たとえばこの「制約2」は、
if (飲み物 = "お茶" or 飲み物 = "ジュース" )
then (クリーム = "なし" ) ;
を表しています。
 これで生成してみましょう。お茶とジュースに砂糖やクリームが入っていないかと一応確認すると・・・

2-5_11840cf7

 入って・・・いる・・・。しかも・・・多めに・・・。
 1つ1つ制約を指定したはずなのに、何故こうなってしまったのか。
 ユーザーズマニュアルに立ち返りましょう。PictMasterのマニュアルはとても丁寧な内容で例示も多く、素晴らしい内容。
PictMasterユーザーズマニュアル第4.6版 P.31
制約対象として異なるパラメータの値をOR条件で指定したい場合は、すぐ右側の制約に制約条件として同じパラメータの値を記入し、制約対象に異なるパラメータの値を記入します。図4-5にこの場合の制約表を示します。
 つまり上の図のように、条件のif部分を同じ内容・色にして隣り合わせると、条件が合体してしまうんですね。この場合だと、「お茶かジュースの場合は、砂糖なしかクリームなしか、どれか1つは満たしてよね」という制約になってしまっているのです。

制約を書きなおしてみる

 3つのifのセルの色を変え、リトライ。

2-6_c1c82e2f

 あ、制約1と2を1つの制約にしてもいいでしょうね。
 今度の結果は・・・。

2-7_31d04ed5

 おお。制約を守りつつ、20パターンのテストケースに収まっていますね。
 20杯なら、10分に1杯のペースでも3時間ちょっと。リグレッション試験も何とかいけそうです!