フローグラフを用いたホワイトボックステスト(平成18年春ソフトウェア開発技術者午後1問2)

解答です。

設問1
ア:4 イ:6 ウ:9 エ:7 オ:8

設問2
6

設問3
a:1 b:32767 c:0

解説してみた。

設問1
 <3>または<4>が真であれば<5>に進み、両方とも偽であれば<6>に進みます。よって、アには「4」、イには「6」が入ります。

 <6>が真でさらに<7>も真であれば<8>に進んでループを繰り返し(<1>に戻る)、<6>か<7>のどちらかが偽であれば<9>に進んでから、berakでループを抜けます(<11>に進む)。よって、ウには「9」、エには「7」、オには「8」が入ります。

 フローグラフのア~オにノード番号を記入したものが、次の図になります。

設問2
 フローグラフのノード(N)が11、エッジ(E)が15なので、求めるサイクロマチック数は

S=15-11+2=6

となります。

設問3
 <1>が真であるには、a=1である必要があります。よって、aは1になります。

 <3>と<4>がともに偽であるためには、bは2でも3でもない必要があります。bは16ビットの2の補数表現の整数なので、最大値は32767になります。よって、考えられるbの最大値は32767。

 <6>が偽かつ<7>が真であるためには、c≦0かつc<8を満たす必要があります。これを満たすcで最大のものは0なので、考えられるcの最大値は0となります。

IPAの公式解答はこちら。
平成18年春ソフトウェア開発技術者午後1 IPA公式解答(PDFファイル)

 今回は空欄に数値や番号を記入していく解答形式でした。フローグラフを見たのは初めてでしたが、落ち着いて処理の流れを追っていけば何とかなるので、それほど難しくはなかったです。

にほんブログ村 ゲームブログへ

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする