命令網羅を理解する

命令網羅は、プログラム中の実行可能な命令を少なくとも1回ずつ実行することを目標とするホワイトボックステストの基準である。

この単元で学ぶこと

  • 対象の意味と役割を説明できる
  • 達成条件の意味と役割を説明できる
  • 分岐との差の意味と役割を説明できる
  • コード例から命令網羅を満たすテストケースを選べる

本文解説

if文の本体を一度通せば命令自体は実行できても、条件が偽になる場合を通していないことがある。命令網羅は分岐網羅より弱い基準になりやすい。

対象 実行可能な各命令。 statement coverageとも呼ばれる。

達成条件 全命令が一度以上実行済みであること。 テストケース集合全体で判定する。

分岐との差 判定結果の真偽双方は要求しない。 命令網羅100%でもfalse側未実行があり得る。

到達不能命令 どの入力でも実行できないコード。 網羅率計算時に原因確認が必要。

限界 命令を通しただけで論理欠陥ゼロにはならない。 入力組合せや仕様欠落は別観点が必要。

実行される命令へ印を付け、未実行命令が残るかを確認する。

if(x>0){y=1;} z=2; ならx=1で全命令を実行でき、命令網羅は満たせる。

図解

命令網羅の確認
各命令に実行済み印を付けて未実行を探す。

重要ポイント

  • 対象: 実行可能な各命令。
  • 達成条件: 全命令が一度以上実行済みであること。
  • 分岐との差: 判定結果の真偽双方は要求しない。
  • 到達不能命令: どの入力でも実行できないコード。
  • 命令網羅は「命令を通したか」で判定する。

間違えやすい点

  • false分岐を必ず通す基準と誤認しない。
  • 100%で全欠陥を否定しない。
  • 到達不能コードを無視して原因を調べない。

用語解説

対象
実行可能な各命令。
達成条件
全命令が一度以上実行済みであること。
分岐との差
判定結果の真偽双方は要求しない。
到達不能命令
どの入力でも実行できないコード。
限界
命令を通しただけで論理欠陥ゼロにはならない。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。