基本情報技術者 2015年 秋期 午前(科目A) 問47
問題文
プログラム中の図の部分を判定条件網羅(分岐網羅)でテストするときのテストケースとして、適切なものはどれか。


選択肢
ア:
イ:
ウ:(正解)
エ:
判定条件網羅(分岐網羅)でのテストケース選定【午前2 解説】
要点まとめ
- 結論:判定(A OR B)の分岐網羅では「偽」と「真」の両方を実行するテストが必要で、最小は2ケースです。
- 根拠:A OR B は両方偽のときのみ偽、それ以外は真となるため、偽を得るには(A=false,B=false)、真を得るには少なくとも一方が真でよいからです。
- 差がつくポイント:設問の選択肢はテーブルで与えられるため、すべての組合せを網羅する必要はなく、真と偽を含む行が含まれるかを確認する力が重要です。
正解の理由
正解: ウ
図は判定ブロック内が「A OR B」で、分岐網羅(分岐ごとの実行)を要求しています。A OR B の評価結果は次の通りです。
図は判定ブロック内が「A OR B」で、分岐網羅(分岐ごとの実行)を要求しています。A OR B の評価結果は次の通りです。
- A=false, B=false → 評価は偽(FALSE)
- その他(A=true or B=true)→ 評価は真(TRUE)
選択肢ウは二行で (A=false,B=false) と (A=true,B=true) を含み、偽となるケースと真となるケースの両方を含むため、分岐(真・偽)を両方実行でき、判定条件網羅(分岐網羅)を満たします。
よくある誤解
- 「OR は真が多いから1ケースで十分」と誤解し、偽のケース(両方偽)を確認しないミスをしがちです。
- 条件網羅(各条件の真偽を個別に確認する)と分岐網羅(分岐の真偽を確認する)を混同し、過剰に全組合せを求めることがあります。
- テーブルの行・列の見方を誤り、行がテストケースを示すのか列が示すのかを取り違えると誤選択します。
解法ステップ
- 図の判定式を読み取る: 判定は「A OR B」だと確認する。
- 真理値表を作る: (A,B) の4組合せと評価結果を列挙する。
- (F,F) → 偽、(F,T) → 真、(T,F) → 真、(T,T) → 真。
- 分岐網羅の要件を確認: 「真」と「偽」の両方の分岐を実行すればよい(最低2ケース)。
- 選択肢を見て、少なくとも1行が偽、もう1行が真を与える組合せを含むものを選ぶ。
- 該当する選択肢がウであると決定する。
選択肢別の誤答解説
- ア:一行二列で (A=false, B=true) のみ。これは OR の評価が真のみで、偽分岐が実行されないため不適。
- イ:二行で (F,T) と (T,F)。どちらも OR の評価は真であり、偽分岐が欠けているため不適。
- ウ:二行で (F,F) と (T,T)。(F,F) が偽、(T,T) が真を与えるため分岐網羅を満たす(正解)。
- エ:三行で (F,T)、(T,F)、(T,T)。すべて評価は真で、偽分岐が含まれていないため不適。
補足コラム
- 「分岐網羅(ブランチカバレッジ)」は各条件分岐の真と偽それぞれを少なくとも一度は実行することを要求します。複合条件の分解(条件網羅)や MC/DC(修正条件/判定網羅)はより厳密な基準です。
- 今回の OR のような単純な演算では、分岐網羅の最小ケース数は常に2です(1ケースで真、1ケースで偽)。ただし、条件網羅や MC/DC を要求される場合は追加の組合せが必要になることがあります。
- テーブル形式の選択肢問題では、各行が「1つのテストケース」を示すことを常に意識すると読み間違いが減ります。
FAQ
Q1: なぜ (A=true,B=false) と (A=false,B=true) だけでは分岐網羅にならないのですか?
A1: どちらも A OR B の評価は真になるため、偽分岐(AもBも偽のとき)を実行していません。分岐網羅には偽分岐の実行が必須です。
A1: どちらも A OR B の評価は真になるため、偽分岐(AもBも偽のとき)を実行していません。分岐網羅には偽分岐の実行が必須です。
Q2: 最小のテストケース数は何件ですか?
A2: 分岐網羅では最低2件です。1件で真と偽を同時に確認することはできません。
A2: 分岐網羅では最低2件です。1件で真と偽を同時に確認することはできません。
Q3: 条件網羅とは違うのですか?
A3: 別物です。条件網羅は各原子条件(A, B)が少なくとも一度は真と偽になることを求めます。今回の2ケース(F,F と T,T)は条件網羅も満たす場合がありますが、演算子や要求によっては組合せが異なります。
A3: 別物です。条件網羅は各原子条件(A, B)が少なくとも一度は真と偽になることを求めます。今回の2ケース(F,F と T,T)は条件網羅も満たす場合がありますが、演算子や要求によっては組合せが異なります。
関連キーワード: 判定条件網羅、分岐網羅、ブランチカバレッジ、真理値表、テストケース設計、条件網羅、MC/DC、黒箱テスト、ホワイトボックステスト

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

