H25年秋期 問5ソフトウェア設計
試験問題はこちら
テーマは「ソフトウェアのテスト設計」
ソフトウェアの論理構造をテストするホワイトボックステストのやり方を問う問題です。処理の流れをすべてチェックするホワイトボックステストと、処理の流れに関係なく結果だけをチェックするブラックボックスは、午前試験でもその違いがよく出題されます。この問題ではホワイトボックスの具体的な手法を知ることができます。
問題を解く前提条件として、1ページ目の「短絡評価」を理解しておかなくてはなりません。
問題文にこのように説明されています。
「短絡評価とは、複数条件を構成する単独条件を左から右に向かって順に評価し、複数条件の結果が確定したら、残りの単独条件を評価しない方法」
例としてあげられている
( a > b ) and ( a < c )
の場合、2つの条件がandでつながれているので、前の( a > b )が偽だった場合、後ろの( a < c )は真であろうが偽であろうが関係なく、全体では偽になります。
つまり( a > b )が偽なら( a < c )を評価する必要はない、逆に言えば( a > b )が真のときだけ( a < c )を評価するというのが、短絡評価というわけです。
これを踏まえて設問を見ていきます。
【設問1】
まずテストケース(1)は、a = 9なので
( a < 10 ) or ( b < 20 )
のときに、前の「( a < 10 )」が真になります。
後ろの「( b < 20 )」とはorでつながれているので、どちらかが真であれば全体が真です。
前が真なら、その時点でこの2つの条件から成る複数条件は真と確定し、後ろを評価する必要がありません。
なので「( b < 20 )」が評価されません。
また、c = 10なので
( c > 10 ) and ( d > 10 )
のときに、前の「( c > 10 )」が偽になります。
後ろの「( d > 10 )」とはandでつながれているので、前と後ろの両方が真でなくては全体が真になりません。
前が偽なら、その時点でこの2つの条件から成る複数条件は偽と確定し、後ろを評価する必要がありません。
なので「( d > 10 )」が評価されません。
テストケース(2)は、a = 10なので
( a < 10 ) or ( b < 20 )
のときに、前の「( a < 10 )」が偽になります。
後ろの「( b < 20 )」とはorでつながれているので、どちらかが真であれば全体が真です。
前が偽でも後ろが真ならば、この2つの条件から成る複数条件は真になるので、後ろも評価しなくてはなりません。
なので「( b < 20 )」が評価されます。
また、c = 11なので
( c > 10 ) and ( d > 10 )
のときに、前の「( c > 10 )」が真になります。
後ろの「( d > 10 )」とはandでつながれているので、前と後ろの両方が真でなくては全体が真になりません。
前が真でも後ろが偽なら、この2つの条件から成る複数条件は真にならないので、後ろを評価しなくてはなりません。
なので「( d > 10 )」が評価されます。
つまりテストケース(2)は、a〜dいずれの単独条件も評価されることになります。
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?