本記事は教養記事シリーズその41です。その他の教養記事はコチラの目次をご覧ください。
命令網羅
条件網羅
判定条件網羅
条件/判定網羅
複数条件網羅
覚え方
ホワイトボックステスト
プログラムのテスト方式には,主に2つの種類があります。
●ホワイトボックステスト
●ブラックボックステスト
ホワイトボックステストは,プログラムの内部構造に着目して行うテストのことを指します。「中身が見える箱」という意味でホワイトボックスという語が使われています。対して,ブラックボックステストは,プログラムの内部構造を無視して入力と出力だけに着目して行うテストのことを指します。「中身の見えない箱」という意味でブラックボックスという語が使われています。
種類
ホワイトボックステストでは,主に5種類の手法が採用されています。
●命令網羅
●条件網羅
●判定条件網羅
●条件/判定網羅
●複数条件網羅
大丈夫です。落ち着いて理解していきましょう。まずは,グループ分けします。
【極端なテスト】
●命令網羅
●複数条件網羅
【中途半端なテスト】
●条件網羅
●判定条件網羅
●条件/判定網羅
以下では,このようなプログラムに対して各種ホワイトボックステストを行っていくことを考えます。ポイントは,「条件→個別の条件」「判定条件→分岐路」と読み替えることです。
命令網羅
すべての命令を1回実行すればOK。
① | |
条件P | 真 |
条件Q | 真 |
(以下は記事に誤りがあった時点での誤植です。失礼致しました。条件Qが偽だと判定条件が偽になり処理が行われませんね。処理も命令に含まれるので。)
① | |
条件P | 真 |
条件Q | 偽 |
複数条件網羅
全ての命令ですべての組み合わせを確かめなければダメ。
① | ② | ③ | ④ | |
条件P | 真 | 真 | 偽 | 偽 |
条件Q | 真 | 偽 | 真 | 偽 |
条件網羅
条件Pと条件Qのそれぞれに関して「真」と「偽」があればOK。
① | ② | |
条件P | 真 | 偽 |
条件Q | 真 | 偽 |
判定条件網羅
条件の分岐路をそれぞれ通ればOK。判定条件を分岐路と読み替えると分かりやすいと思います。
① | ② | |
条件P | 真 | 偽 |
条件Q | 真 | 偽 |
条件/判定網羅
条件網羅と判定条件網羅を混ぜたものです。「条件Pと条件Q個別で見たときも真と偽があり」「分岐路で見ても両方通っている」ような組み合わせを考えます。
① | ② | |
条件P | 真 | 偽 |
条件Q | 真 | 偽 |
出力 | 真 | 偽 |
実際に,条件Pと条件Qは真と偽の両方がしっかり出ています。出力も真と偽の両方があるので分岐路の両方を通っていることが分かります。
ひとこと
条件の例が簡単すぎて違いが分かりづらかったですかね…?ポイントは,まず命令網羅と複数条件網羅をつぶしてしまうこと。その後に,「条件」と「判定条件(分岐路)」を理解することで見通しよく学習することが可能です。
命令網羅が違うと思います。
命令(処理)が実行されるのは、P,Qが共に真のときのみなので、
命令網羅のケースはP,Qが共に真である場合を挙げるべきではないのでしょうか?
あああ様
ご連絡ありがとうございます。ご指摘の通りですので,本文を修正いたしました。