流れ図で示したモジュールを表の二つのテストケースを用いてテストしたとき,テストカバレージ指標であるC0(命令網羅)とC1(分岐網羅)とによる網羅率の適切な組みはどれか。
ここで,変数V〜変数Zの値は,途中の命令で変更されない。
正答2
解説
正解は2です。
流れ図と二つのテストケースから、命令網羅(C0)と分岐網羅(C1)の網羅率を求める問題です。
図の流れ図には、判定が5つ(V=0、W=0かつX=0、W≠0かつX≠0、Y=0かつZ=0、Y≠0かつZ≠0)と、命令1〜命令5の5つの命令があります。
表では、テストケース1は変数VからZがすべて0、テストケース2はすべて1です。
【計算】
テストケース1では、V=0がYesで命令1を実行します。
次にW=0かつX=0がYesで命令2を、Y=0かつZ=0がYesで命令4を実行します。
テストケース2では、V=0がNoで命令1を飛ばします。
次にW=0かつX=0がNo、W≠0かつX≠0がYesで命令3を実行します。
さらにY=0かつZ=0がNo、Y≠0かつZ≠0がYesで命令5を実行します。
二つのケースで命令1〜5がすべて実行されるので、C0は5/5=100%です。
分岐は5つの判定のYesとNoで合計10通りあります。
通っていないのは、W≠0かつX≠0のNoと、Y≠0かつZ≠0のNoの2通りです。
したがって、C1は8/10=80%です。
【選択肢別解説】
1:× 分岐網羅率は100%ではありません。
W≠0かつX≠0のNoなど、2つの分岐が一度も通られていません。
2:○ 命令はすべて実行されるのでC0は100%、10通りの分岐のうち8通りを通るのでC1は80%です。
3:× 命令1から命令5まですべて実行されるので、C0は80%ではなく100%です。
4:× C0は100%なので、両方とも80%という組合せは誤りです。
【ポイント】
分岐網羅を100%にするには、各判定のYesとNoを少なくとも1回ずつ通す必要があります。
たとえばWだけを1にしたテストケースを加えると、W≠0かつX≠0のNoを通せます。