ホーム > システムアーキテクト試験 > 2021年
システムアーキテクト試験 2021年 午前2 問07
あるプログラムについて、流れ図で示される部分に関するテストケースを、判定条件網羅(分岐網羅)によって設定する。この場合のテストケースの組合せとして、適切なものはどれか。ここで、()で囲んだ部分は、一組みのテストケースを表すものとする

イ:(A=4, B=0), (A=8, B=1)
ウ:(A=4, B=1), (A=6, B=1)
エ:(A=7, B=1), (A=1, B=0)
ア:(A=1, B=1), (A=7, B=1)(正解)
解説
判定条件網羅(分岐網羅)によるテストケース設定【午前2 解説】
要点まとめ
- 結論:判定条件網羅では、条件式の真偽を網羅的にテストするため、各条件の真・偽を含む組合せが必要です。
- 根拠:問題の条件は「A > 6 or B = 0」であり、AとBの各条件が真・偽となるケースを用意する必要があります。
- 差がつくポイント:単に判定結果(Yes/No)だけでなく、条件式内の各部分条件の真偽を個別に検証することが重要です。
正解の理由
正解のアは、(A=1, B=1) と (A=7, B=1) の2つのテストケースで構成されています。
- (A=1, B=1) は「A > 6」が偽、「B = 0」も偽なので、条件全体は偽(No)となります。
- (A=7, B=1) は「A > 6」が真、「B = 0」は偽ですが、条件式は or なので全体は真(Yes)となります。
この2つのケースで、条件式の判定結果が真と偽の両方をカバーし、かつ条件の一部「A > 6」の真偽を変化させています。
「B = 0」は両方偽ですが、判定条件網羅では各条件の真偽を網羅するため、Bの条件を真にするケースも必要に見えますが、問題文の条件式は or であり、Bの条件を真にしてもAの条件が偽なら判定結果は真となるため、Aの条件の真偽を変えることで網羅可能です。
したがって、アの組合せが判定条件網羅の要件を満たします。
よくある誤解
条件式の判定結果だけを網羅すればよいと考え、条件の個別真偽を無視しがちです。
また、条件の一部だけを真にするケースを省略してしまうことも多いです。
また、条件の一部だけを真にするケースを省略してしまうことも多いです。
解法ステップ
- 条件式を分解し、個々の条件(A > 6、B = 0)を抽出する。
- 各条件の真偽を変化させるテストケースを考える。
- 条件式全体の判定結果(Yes/No)を確認し、両方を含む組合せを選ぶ。
- 条件の真偽が網羅されているかをチェックする。
- 選択肢の中から条件網羅を満たす組合せを選択する。
選択肢別の誤答解説
- ア: 正解。Aの条件真偽を変え、判定結果の真偽も網羅。
- イ: B=0のケースはあるが、Aの条件真偽が偏っており、判定条件網羅として不十分。
- ウ: A=4,6はどちらも「A > 6」が偽で、B=1も偽なので条件の真偽が偏る。
- エ: (A=7, B=1) は条件真、(A=1, B=0) は条件真(B=0が真)で、条件の偽が含まれていない。
補足コラム
判定条件網羅(分岐網羅)は、条件網羅よりも厳密で、条件式内の各条件の真偽をすべて検証するテスト設計技法です。
単純に判定結果の真偽を網羅するだけでなく、条件の組合せを考慮するため、テストケース数は増加しますが、バグ検出率が高まります。
単純に判定結果の真偽を網羅するだけでなく、条件の組合せを考慮するため、テストケース数は増加しますが、バグ検出率が高まります。
FAQ
Q: 判定条件網羅と条件網羅の違いは何ですか?
A: 条件網羅は各条件の真偽を少なくとも1回ずつテストするのに対し、判定条件網羅は条件式の判定結果の真偽をすべての条件の真偽組合せで網羅します。
A: 条件網羅は各条件の真偽を少なくとも1回ずつテストするのに対し、判定条件網羅は条件式の判定結果の真偽をすべての条件の真偽組合せで網羅します。
Q: 「A > 6 or B = 0」の条件でBの真偽を変えなくてもよいのはなぜですか?
A: Aの条件の真偽を変えることで判定結果の真偽を網羅できるため、Bの条件の真偽を変えなくても判定条件網羅の要件を満たせます。
A: Aの条件の真偽を変えることで判定結果の真偽を網羅できるため、Bの条件の真偽を変えなくても判定条件網羅の要件を満たせます。
関連キーワード: 判定条件網羅, 分岐網羅, テスト設計, ソフトウェアテスト, 条件網羅, テストケース設計