命令網羅と判定条件網羅はどう違うのか
基本情報技術者試験 令和元年度秋期 午前 問49 / システム開発技術 › ソフトウェア構築
過去問にチャレンジ
単一の入り口をもち,入力項目を用いた複数の判断を含むプログラムのテストケースを設計する。命令網羅と判定条件網羅の関係のうち,適切なものはどれか。
- ア
判定条件網羅を満足しても命令網羅を満足しない場合がある。
- イ
判定条件網羅を満足するならば,命令網羅も満足する。
- ウ
命令網羅を満足しなくても,判定条件網羅を満足する場合がある。
- エ
命令網羅を満足するならば,判定条件網羅も満足する。
会話形式の解説
講師この問題では、二つの網羅基準で「何を確認済みとするか」に注目します。
受験者私は、命令を全部実行できれば、判定も十分に試せたと思ってしまいます。
講師命令網羅は各命令を少なくとも一回実行することです。一方、判定条件網羅は各判定で両方の結果を確認することです。
受験者判定条件網羅を満たした場合は、命令が実行されずに残ることがありますか。
講師ありません。各判定の両方の結果を確認できていれば、命令網羅も満たします。これが正しい関係です。
受験者では、判定条件網羅を満たしても命令網羅を満たさない、という二つの似た説明はどちらも誤りですね。
講師そのとおりです。どちらも、判定条件網羅だけを満たせると述べていますが、そのような関係にはなりません。
受験者逆に、命令網羅を満たしたら判定条件網羅も満たすのでしょうか。
講師それは成り立ちません。条件が真のときだけ命令を実行する判定なら、真の場合だけを試して全命令を実行できても、偽の場合は未確認です。
受験者命令を全部実行したかと、各判定の両方の結果を試したかは別々に確かめる必要があるのですね。
講師はい。片方の結果を通っただけで、判定条件網羅まで満たしたと判断しないことが大切です。
まとめ
命令網羅は各命令を少なくとも一回実行する基準です。判定条件網羅は各判定で両方の結果を確認する基準です。判定条件網羅を満たせば命令網羅も満たしますが、命令網羅を満たしても判定条件網羅を満たすとは限りません。
解答・解説
正解はイです
この問題のテーマ
命令網羅と判定条件網羅の包含関係を問う問題です。
解き方の考え方
まず、命令網羅は各命令を少なくとも1回実行すること、判定条件網羅は各判定で両方の結果を確認することだと整理します。そのうえで、判定の両側を通れば命令も実行されるという関係と、その逆が成り立つかを分けて考えます。
選択肢ごとの解説
- ×ア 判定条件網羅を満足しても命令網羅を満足しない場合がある。アは、判定条件網羅だけを満たす場合があるという説明です。各判定の両方の結果を確認できていれば、命令網羅だけが未達になることはありません。
- ○イ 判定条件網羅を満足するならば,命令網羅も満足する。イは、判定条件網羅の達成が命令網羅の達成を伴うという説明です。求められている包含関係と一致するため、これが正解です。
- ×ウ 命令網羅を満足しなくても,判定条件網羅を満足する場合がある。ウは、命令網羅が未達でも判定条件網羅を満たせるという説明です。命令が実行されずに残っているなら、判定条件網羅も達成していません。
- ×エ 命令網羅を満足するならば,判定条件網羅も満足する。エは、全命令を実行すれば各判定の両方の結果も確認できるという説明です。例えば、条件が真のときだけ命令を実行する判定では、真の場合だけを試して全命令を実行できても、偽の場合は未確認のままです。
POINT
- 網羅基準を比べるときは、何を「確認済み」と数えるかを先に確かめます。
- 命令網羅は、実行されなかった命令が残っていないかを見る基準です。
- 判定条件網羅では、各判定について片方の結果を通るだけでは足りません。
