戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

システムアーキテクト 2010年 午前209


問題文

受注処理の入力データをチェックするプログラムを、実験計画法に基づいてテストする。直交表を用いてテストケースを作成する場合、テストケースのa~cの組合せとして、適切なものはどれか。
システムアーキテクト 2010年 午前2 問09の問題画像システムアーキテクト 2010年 午前2 問09の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

直交表の水準割当【午前2解説】

正解の理由

直交表の各列をそれぞれ因子(a: 得意先コード、b: 商品コード、c: 受注数量)に対応させ、直交表の 0/1 を具体的な水準に対応づけると、直交表の4行は図にあるテストケース1〜4と一対一に一致します。直交表の第4行 (1,1,0) がテストケース4の a〜c に対応するため、a=存在する、b=存在する、c=数字以外の文字も含む、すなわち選択肢 が条件と一致します。
(対応づけを明示的に示すと)
  • 直交表の列1 → 得意先コード(a)
  • 列2 → 商品コード(b)
  • 列3 → 受注数量(c)
  • 0 の水準 = 「存在しない」(a,b)、c は「数字以外の文字も含む」
  • 1 の水準 = 「存在する」(a,b)、c は「数字だけ」
この割当はテストケース1〜3の既知の記述と照合して決定できます。結果、直交表第4行 (1,1,0) によって test case 4 の a,b,c が上記のように確定し、選択肢 と一致します。

解法ステップ

  1. 因子の特定:テストの仕様から因子は a=得意先コード、b=商品コード、c=受注数量 と認定する。
  2. 直交表の行・列値を確認:与えられた直交表の各行は次の通り。
    • 行1: (0,0,0)
    • 行2: (0,1,1)
    • 行3: (1,0,1)
    • 行4: (1,1,0)
  3. 0/1 と各因子の水準を決める(既知のテストケースと突き合わせて決定):
    • テストケース1 が a=存在しない、b=存在しない、c=数字以外 の組み合わせであることと行1=(0,0,0) を照合し、0 を a,b の「存在しない」、c の「数字以外」に対応づける。
    • したがって 1 は a,b の「存在する」、c の「数字だけ」。
  4. 直交表の各行をテストケース1〜4へ対応させて確認:
    • 行1 (0,0,0) → テストケース1(一致)
    • 行2 (0,1,1) → テストケース2(一致)
    • 行3 (1,0,1) → テストケース3(一致)
    • 行4 (1,1,0) → テストケース4 → ここから a=存在する、b=存在する、c=数字以外 が導かれる。
  5. 選択肢と照合して、該当する組合せを選ぶ(該当は )。

選択肢別の誤答解説

(各選択肢の a,b,c を直交表から導かれる値と比較)
  • ア: a=存在しない、b=存在しない、c=数字だけ
    • 直交表の行4 が求める a,b は「存在する」「存在する」であり、ア の a,b は両方とも不一致。よって誤り。
  • イ: a=存在しない、b=存在する、c=数字以外の文字も含む
    • a が不一致(直交表行4では a=存在する)。したがって誤り。
  • ウ: a=存在する、b=存在しない、c=数字以外の文字も含む
    • b が不一致(直交表行4では b=存在する)。したがって誤り。
  • : a=存在する、b=存在する、c=数字以外の文字も含む
    • 直交表行4 (1,1,0) の割当と完全に一致するため正しい。

よくある誤解

  • 0 と 1 の対応を勝手に逆にする
    • 0/1 のどちらが「存在する」か「存在しない」かは任意に決められるが、必ず既知のテストケース(ここではテストケース1〜3)と突き合わせて一意に決める必要がある。突き合わせをせず逆にしてしまうと誤答になる。
  • 列と因子の対応を取り違える
    • どの直交表の列がどの因子を表すかは問題文(テストケースの列順)と照合して決める。列と因子を入れ替えると全行の解釈が変わるため注意。
  • 行ごとの対応を確認しない
    • 1行ずつ既知のテストケースと突き合わせて整合性を取らないと、誤った水準対応で進めてしまう。

補足コラム

  • 直交表(ここでは 2水準因子3因子の L4 直交表)は、最少の実験(テスト)で各因子の主要な組合せを効率的に網羅するために用いられます。重要なのは「0/1 の割当(どちらを水準A、どちらを水準Bとするか)は任意だが、与えられた既知のケースと照合して一意に定める」ことです。
  • 実務では、各水準の意味を明確にドキュメント化しておくこと(0=否定、1=肯定 など)は、テストの再現性とレビュー時の誤解防止に有効です。

FAQ

Q1. もしテストケースのどれとも直交表の行が一致しないときは?
A1. その場合は列の因子割当(どの列がどの因子か)か、0/1 の水準対応が誤っている可能性が高い。既知のテストケース(本文に明記されたもの)を使って再度対応づけを試みる。
Q2. 0/1 のどちらを「存在する」にするか決める基準は?
A2. 基準は特にない。重要なのは既知ケースと照合して整合性を取ること。通常は「0 = 基準(負の状態)、1 = 変化(肯定)」とする慣習が多いが問題文の既知データに合わせる。
Q3. 因子数が増えたときの基本的な手順は?
A3. 手順は同じ:因子を列に割り当て、既知ケースと照合して各列の水準(0/1)を決め、直交表の各行を既知ケースへ順に対応させる。必要なら直交表の種類(L4, L8 など)を確認して因子数に対する適切な表を選択する。

関連キーワード: 直交表、実験計画法、因子水準、L4直交表、テスト設計
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

システムアーキテクト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について