【問題】
流れ図において、分岐網羅を満たし、かつ、条件網羅を満たすテストデータの組みはどれか。
a ← 0
b ← 0
┃
x ≧ 1 or y = 1 ━┓YES
┃NO a ← 1
┣━━━━━━━━━━━━━┛
y > 1 ━━━━━━━━┓YES
┃NO b ← 1
┣━━━━━━━━━━━━┛
〔テストデータ〕
x ┃ y
━━━━
ア. 2 ┃ 2
1 ┃ 2
イ. 1 ┃ 2
0 ┃ 0
ウ. 1 ┃ 2
1 ┃ 1
0 ┃ 1
エ. 1 ┃ 2
0 ┃ 1
0 ┃ 2
【解答】
問題文は、分岐網羅で、かつ条件網羅であるものを抜き出すものなので、それぞれ検討していく。
まず分岐網羅とは、全ての分岐を必ず1回は通るもののことを言う。
x = 2, y = 2とすると、最初の分岐点でYES、次の分岐点でYESを通る。
x = 1, y = 2とすると、最初の分岐点でYES、次の分岐点でYESを通る。
とすると、最初の分岐点でNO、次の分岐点でNOを一度も通っていないので、項目アは分岐網羅ではなく、不適切となる。
同様に項目イを検討する。
x = 1, y = 2とすると、最初の分岐点でYES、次の分岐点でYESを通る。
x = 0, y = 0とすると、最初の分岐点でNO、次の分岐点でNOを通る。
よって、項目イは分岐網羅である。
同様に項目ウを検討する。
x = 1, y = 2とすると、最初の分岐点でYES、次の分岐点でYESを通る。
x = 1, y = 1とすると、最初の分岐点でYES、次の分岐点でNOを通る。
x = 0, y = 1とすると、最初の分岐点でYES、次の分岐点でNOを通る。
よって、最初の分岐点でNOを通っていないので、項目ウは条件網羅ではなく、不適切となる。
同様に項目エを検討する。
x = 1, y = 2とすると、最初の分岐点でYES、次の分岐点でYESを通る。
x = 0, y = 1とすると、最初の分岐点でYES、次の分岐点でNOを通る。
x = 0, y = 2とすると、最初の分岐点でNO、次の分岐点でYESを通る。
よって、項目エは分岐網羅である。
次に条件網羅を検討する。条件網羅とは、条件に使用されている変数について、真と偽を網羅すれば良い。
項目イを検討する。
x = 1, y = 2とすると、x ≧ 1は真、 y = 1は偽となる。
x = 0, y = 0とすると、x ≧ 1は偽、y = 1は偽となる。
よって、項目イは条件網羅ではないから、不適切となる。
よって、解答は項目エとなる。
なお、項目エの条件網羅を検討すると、次のようになる。
x = 1, y = 2とすると、①x ≧ 1は真、 y = 1は偽となる。② y > 1は真となる。
x = 0, y = 1とすると、①x ≧ 1は偽、 y = 1は真となる。② y > 1は偽となる。
よって、①、②ともに真と偽の両方を満たすので、項目エは条件網羅である。