基本情報技術者試験 2018年度 = 平成30年度・春期 午前 問49

 プログラムの流れ図で示される部分に関するテストデータを、判定条件網羅(decision coverage)によって設定した。このテストデータを複数条件網羅(multiple condition coverage)による設定に変更するとき、加えるべきテストデータのうち、適切なものはどれか。ここで、( )で囲んだ部分は、一組のテストデータを表すものとする。


・判定条件網羅によるテストデータ
  (A=4,B=1),(A=5,B=0)
ア (A=3,B=0),(A=7,B=2)
イ (A=3,B=2),(A=8,B=0)
ウ (A=4,B=0),(A=8,B=0)
エ (A=7,B=0),(A=8,B=2)

解答



解説

 分岐判定条件は“A>6 or B=0”であり、、判定条件網羅(分岐網羅)では、下記のように、それぞれ1回の真偽の判定が行えます。

  (A=4,B=1)→No
  (A=5,B=0)→Yes

 このテストデータを複数条件網羅にするためには、複数ある判定条件の結果のすべての組合せを網羅する必要があるので、以下の4つのテスデータが必要となります。

  A→真,B→真
  A→真,B→偽
  A→偽,B→真
  A→偽,B→偽

 最初に与えられた判定条件網羅(分岐網羅)用のテストデータ(A=4,B=1),(A=5,B=0)は、以下のようになっています。

  A=4→偽,B=1→偽
  A=5→偽,B=0→真

なので、残る2つの組み合わせ(A→真,B→真とA→真,B→偽)を満たすテストデータが答えです。判定条件を考えると、

A→真,B→真…A>6,B=0 //(1)
A→真,B→真…A>6,B≠0 //(2)

というテストデータの条件がわかるので、選択肢のテストデータを当てはめていくと「(A=7,B=0),(A=8,B=2)」が適切ということになります。
A=7→真,B=0→真 //(1)A>6,B=0を満たす
A=8→真,B=2→偽 //(2)A>6,B≠0を満たす


BohYoh.comトップページへ