基本情報技術者試験 |
2008年度 = 平成20年度・春期 |
午前 |
問48 |
プログラムの流れ図で示される部分に関するテストデータを、判定条件網羅(分岐網羅)によって設定した。このテストデータを複数条件網羅による設定に変更したとき、加えるべきテストデータのうち、適切なものはどれか。ここで、()で囲んだ部分は、一組のテストデータを表すものとする。
・判定条件網羅(分岐網羅)によるテストデータ
(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を満たす