IPA過去問ドリル

平成27年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問23

テクノロジ/開発技術

データが昇順に並ぶようにリストへデータを挿入するサブルーチンを作成した。このサブルーチンのテストに用いるデータの組合せのうち,網羅性の観点から適切なものはどれか。ここで,データは左側から順にサブルーチンへ入力する。

出典:平成27年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問23

正解:イ

解説

データを左側から順に入力してリストへ挿入するサブルーチンの分岐網羅性を確保するには,挿入位置として少なくとも「先頭(既存の最小値より前)」,「末尾(既存の最大値より後ろ)」,「中間(既存の値の間)」の三つの挿入パターンを全て経験させる必要があります。3,1,4,2という順序でデータを入力すると,3の挿入(最初の要素としてリストに追加),1の挿入(3より小さいため先頭に挿入),4の挿入(3より大きいため末尾に挿入),2の挿入(1と3の間,すなわち中間に挿入)という流れになり,先頭・末尾・中間の全ての挿入パターンを網羅できます。

選択肢ごとの解説

  • 誤り。1,3,2,4の順序では,最初に挿入される1が以降のどの値よりも小さいままであるため,後続の値がリストの先頭に挿入される場面が一度も生じず,先頭への挿入パターンを網羅できません。
  • 正しい。3,1,4,2の順序では,先頭への挿入(1),末尾への挿入(4),中間への挿入(2)の全てのパターンが現れるため,分岐の網羅性の観点から適切なテストデータの組合せです。
  • 誤り。3,4,2,1の順序では,2と1がいずれも先頭付近への挿入となり,既存の値の中間に挿入されるパターンが一度も生じないため,中間への挿入パターンを網羅できません。
  • 誤り。4,3,2,1の順序では,3,2,1が全て現在の先頭よりも小さい値としてリストの先頭に挿入され続けるため,末尾への挿入や中間への挿入のパターンが一度も生じません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く