システムアーキテクト 2015年 午前2 問10
問題文
学生レコードを処理するプログラムをテストするために、実験計画法を用いてテストケースを決定する。学生レコード中のデータ項目(学生番号、科目コード、得点)は二つの状態をとる。テスト対象のデータ項目から任意に二つのデータ項目を選び、二つのデータ項目がとる状態の全ての組合せが必ず同一回数ずつ存在するように基準を設けた場合に、次の8件のテストケースの候補から、最少で幾つを採択すればよいか。

選択肢
ア:2
イ:3
ウ:4(正解)
エ:6
🔒 解説は解答すると表示されます
ペアワイズ均等出現【午前2解説】
正解の理由
データ項目は3つで、それぞれ2状態をとるため、任意の2つの項目の組合せは 通り存在します。各組合せが「必ず同一回数ずつ」現れるためには、総テスト数 がその4通りで割り切れる必要があり、つまり は4の倍数でなければなりません。選択肢の中で最小の4の倍数は4なので、最少採択数は4であり、これが正解(ウ)です。
実際に4件で構成可能であることも示せます。例えば以下の4ケースを採ると、どの2項目を選んでも4通りがそれぞれ1回ずつ現れます(列は「学生番号, 科目コード, 得点」を表すビット列)。
0=存在しない / 1=存在する、0=数字でない / 1=数字である とすると:
0=存在しない / 1=存在する、0=数字でない / 1=数字である とすると:
- (0,0,0)
- (0,1,1)
- (1,0,1)
- (1,1,0)
この4件で全てのペアに対して4通りが均等に出現します。
解法ステップ
- 任意の2項目の状態の組合せ数を求める: 通り。
- 均等出現の条件から、各組合せの出現回数は等しくなり、総テスト数 を4で割った整数である必要がある。つまり は4の倍数。
- 与えられた選択肢のうち最小の4の倍数を選ぶ → 4 を選ぶ。
- 必要なら具体例(直交配列)で4件で成り立つことを示す。
選択肢別の誤答解説
- ア: 2
2は4の倍数ではないため各組合せに均等に割り振れません(で整数にならない)。従って条件を満たさない。 - イ: 3
3も4で割り切れないので不可。 - ウ: 4
4は4の倍数で最小の選択肢であり、かつ実際に構成可能(上記の4件で各ペアが各通り1回ずつ現れる)なので正解。 - エ: 6
6は直感的に十分多いように見えますが、 となり整数にならず、各組合せを同一回数ずつにできません。したがって条件を満たさない。
よくある誤解
- 「2状態×2項目だから2通りしかない」と数え間違える。正しくは2×2で4通り。
- 「6件なら十分にバランスが取れるだろう」として単に数が多ければ良いと考えるが、均等化は“倍数性”の条件が重要で、単に多いだけでは不可。
- 「直交配列は存在しない」と思い込むこと。今回のような小規模(3因子・2水準)では直交配列(OA(4,3,2))が存在し、4件で達成できる。
補足コラム
今回の考え方は「ペアワイズテスト」や「直交配列(orthogonal array)」の基本に当たります。直交配列 OA(4,3,2) は、3つの因子がそれぞれ2水準のとき、任意の2列を見れば全ての組合せが均等に出現する最小の配列です。実務では全組合せテストが膨大になるため、ペアワイズ(2-way)で妥当性を確保する手法がよく用いられます。
具体的な4件(上の例)を元に、各ペアの出現回数を数えると全て1回ずつであり、均等条件を満たすことが確認できます。
FAQ
Q1: なぜ4の倍数でなければならないのですか?
A1: 任意の2項目で生じる組合せは4種類あります。それらを同一回数ずつ出現させるには総テスト数 を4で割った回数を各組合せに割り当てる必要があり、 が整数でなければなりません。
A1: 任意の2項目で生じる組合せは4種類あります。それらを同一回数ずつ出現させるには総テスト数 を4で割った回数を各組合せに割り当てる必要があり、 が整数でなければなりません。
Q2: もっと少ない件数で別の工夫はできますか?
A2: 別の工夫(部分的な偏りや重み付け)が許されない限り、均等出現の条件を満たす最小は4件です。2件や3件で均等にすることは不可能です。
A2: 別の工夫(部分的な偏りや重み付け)が許されない限り、均等出現の条件を満たす最小は4件です。2件や3件で均等にすることは不可能です。
Q3: なぜ8件が選択肢にない場合はどう判断する?
A3: いずれにせよ条件は「4の倍数」であるため、与えられた候補の中から最小の4の倍数を選べば良い(存在しなければその条件を満たす選択肢はない)。
A3: いずれにせよ条件は「4の倍数」であるため、与えられた候補の中から最小の4の倍数を選べば良い(存在しなければその条件を満たす選択肢はない)。
関連キーワード: ペアワイズテスト、直交配列、組合せ設計、均等配分、テストケース最適化

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

