テストアナリスト試験の難問に挑んでみた。

テストアナリスト試験で正解が分からなかった問題を考えてみた。試験問題をうろ覚えなので前提を間違っているかもしれないがあえて取り上げてみる。記述はシンプルだが、机上では解けなかった問題だった。

机上で解けない問題

『4つの因子(A,B,C,D)がそれぞれ4つの値をもつ。たとえば、Aの因子は、a1,a2,a3,a4の値をもつ。ペアワイズテストのテストケースを作成したい。「因子Bがb1またはb2のとき、因子Aはa1またはa2しか選択できない」という条件がある場合、最小のテストケース数は 10,12,16,20 のどれか。』といった内容の問題だ。

正解が16なのか、20なのか判断できない。ISTQBでは、3因子でそれぞれ4値の問題は出題されるが、JSTQBでは4因子でそれぞれ4値だ。2ワイズでは、因子が4個で値がそれぞれ4個であれば、最小でも4*4=16である。これは、3因子4値でも、2因子4値でも16である。3因子4値や2因子4値なら、すぐにテストケースの組み合わせは並べられる。しかし、4因子4値になると、最小でいくつになるかを机上で導くのはかなりむずかしい。ちなみにPICTツールを使って求めると、19個のテストケースが求められた。これが最適解であるかどうかは確信できない。1つのサンプルとして捉える程度のものだ。もっと最適な16個に近い解があるように思える。

※16個の最適解が求まるツールがあるという情報をいただきました。PictMasterだそうです。後述で追記しておきます。また、PictMasterを使えば、この出題の正解は20個であることが分かるとのことです。問題の作者は、PictMasterを使ったのですね。机上で解くには無理があります。
※私もPictMasterを試してみました。PictMasterは、内部的にはPICTまたはCIT-BACHのアルゴリズムを使っていて、どちらかを選択するようです。PICTだと19個の解、CIT-BACHだと16個の最適解が得られるようです。

「因子Bがb1またはb2のとき、因子Aはa1またはa2しか選択できない」という条件があったとしても、残りの3個の因子(B,C,D)には影響がないので、16個より少なくはならない。
※情報を提供いただいた方から、条件が加わると一般にテストケース数は増えるとの指摘もいただきました。

PICTを使うと19個

PICTのようなツールを使えば具体的な19個を導けるが、机上で求めるのは難解だ。私は机上で解けなかった。16個以上という推測は容易にできるが、16か20かの判断はできない。そもそも、4因子4値の問題は出題してはいけなかったのではないか。数分から数10分で解が導けるためには、せいぜい3因子4値でなければならない。ISTQBの問題をかなり探してみたが、3因子4値はいくつか出題例があるが、4因子4値は1つもない。ISTQBのサンプル問題では、たとえば CTAL-ATA _LO-3.2.6 が3因子4値の問題である。答えは、16とすぐに求まる。

4因子4値の出題は、直交表の出題と同じく、JSTQBの行き過ぎた出題だったのではないかと考える。

ちなみにPICTで求めた組み合わせは以下のようになった。


A B C D

                                                  • -

a1 b1 c1 d1
a1 b2 c4 d4
a1 b3 c3 d2
a1 b4 c2 d3

a2 b1 c2 d4
a2 b2 c3 d1
a2 b3 c4 d3
a2 b4 c1 d2
a2 b4 c4 d1

a3 b1 c1 d1
a3 b2 c2 d2
a3 b3 c4 d3
a3 b4 c3 d4

a4 b1 c3 d3
a4 b1 c4 d2
a4 b2 c1 d3
a4 b3 c1 d4
a4 b3 c2 d1
a4 b4 c3 d1

「因子Bがb1またはb2のとき、因子Aはa1またはa2しか選択できない」という条件とすると、最大3個のテストケースが割愛できることが分かっている。19-3=16である。紛らわしいがPICTのサンプル結果のa1,a2,b1,b2とは異なるので注意のこと。「因子Bがb3,b4のときa1,a2しか選択できない」と置き換えると2個が重複として割愛できる。上記のサンプルでは2個に留まるが、組み合わせが最適であれば最大3個のテストケースが割愛できそうである。

だが、この問題が試験時間の数分や数10分で解けるだろうか。きっと無理である。4因子4値の問題は出題してはいけなかったと考える。四択の問題なので、16個より多いという推測ができれば、正解の選定にたどり着くことは可能だが、そういう趣旨の問題でもない。

PictMasterを使うと最適解16個

PictMasterを使うと、16個の最適解が求まるという情報をいただきました。さらに、PictMasterで与えられた条件を設定すれば、正解の20個が導出できるとのことです。問題の作者は、PictMasterを使ったのですね。条件の与え方も違和感のある表現だと思った。作者は、机上で解いたことがあるのだろうか。机上で解くことには無理があり、適切な問題とは言えない。
16個の最適解は、以下だそうです。「因子Bがb1またはb2のとき、因子Aはa1またはa2しか選択できない」の条件を設定すると20個だそうです。机上で解ける人もあるかもしれないが、私を含めてほとんどの人には解けない。


A B C D

                                                                  • -

1 a1 b1 c2 d4
2 a1 b2 c3 d2
3 a1 b3 c4 d1
4 a1 b4 c1 d3
5 a2 b1 c1 d2
6 a2 b2 c4 d4
7 a2 b3 c3 d3
8 a2 b4 c2 d1
9 a3 b1 c4 d3
10 a3 b2 c1 d1
11 a3 b3 c2 d2
12 a3 b4 c3 d4
13 a4 b1 c3 d1
14 a4 b2 c2 d3
15 a4 b3 c1 d4
16 a4 b4 c4 d2