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

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

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

 9月2日(金)の第6回「ソフトウェアテスト技法ドリル」勉強会が終わりました。

atnd.org

 加瀬さんによるtogetterまとめがコチラにあります。

togetter.com

 わたしはtwitterのこの生中継を見ながら、益のないつぶやきをしていました。当日の演習問題の内容も教えていただきましたので、ゆっくり解いてみるつもりです。

網羅性を、pivotで。

 ところでこの生中継の中で、「組み合わせが現れたことをどう確認すればいいのか」という話が出ていました。ちょっと考えてみましょうか。
 まずぱっと思いつくのは、pivotテーブルの利用です。制約なしのケースを考えてみましょう。縦軸に「飲み物」、横軸に「カップ」をとったpivotテーブルの結果は以下です。

3-1_989b752c

 すべてのセルに1以上の数字が入っている。つまり、「飲み物」と「カップ」の組み合わせは網羅されているということです。
 このpivotをいくつ作ればいいかというと、5C2=10。因子の組み合わせパターン10個分、pivotを切り替えて確認することになりますね。できなくもないけど、ちょっと冴えない気もする。
 そこで、Exceloverとして少し工夫してみました。ここから先は(ここから先も)、実戦には何の役にも立たない自己満足の世界です。

網羅性を、関数で。

 飲み物4、カップ2の組み合わせは8個。この8個が出ていることがわかればいいわけだ。
 そこで、次のExcelの、青く囲んだ領域を見てほしい。この列Gには、飲み物の列Aと、カップの列Bを文字列結合した値が入っている。この結合済み文字列パターンが8種類あれば、8個の組み合わせが出現しているということだね?

3-2_32bf4aee

 青の領域の下のオレンジのセルは、青い領域にいくつの値があるか(重複を除く)を算出している。緑のセルは、この列では何パターンの組み合わせが出るべきかを算出している。この両者が一致していれば、組み合わせが網羅されているということだ。
 同様に他の列についても求める。これで完璧だ。
 ちなみに黄色のセルで、G1に1、G2に0とあるが、これは「列Aと列Bの組み合わせを見よう」という意味で、もちろん計算式が入っている!だから、因子が10個・20個になっても大丈夫だ。Excelが、全部やってくれる!

網羅性を、フィルタでも。

 具体的にどんな値が現れているか、整理したものを見たければ、フィルタ機能を使うといい。
 フィルタモードにしたうえで、

3-3_a963bd69

 ちゃんと一意の値だけが、ソートされた状態で出てくる。
 「8」とか出ているけど、気にしてはいけない。
 ・・・ということで、まあExcelって、やりたいことを関数でどう表現するかを考えるのが一番楽しいなと。これはF型Excel使いのサガです。このエントリ、「Pairwise」という言葉が一度も出てこない。