SAシステムアーキテクト試験 午前Ⅱ

令和元年度秋期 システムアーキテクト 午前Ⅱ 問7

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    1,3,2,4
  2. イ
    3,1,4,2
  3. ウ
    3,4,2,1
  4. エ
    4,3,2,1
解き方のヒントを見る

テストデータと処理条件の対応を整理

整列済みのデータへ要素を挿入する処理では、処理の中にある判定や繰返しの条件がテストデータによってどう動くかが網羅性を左右します。一つひとつのデータが処理のどの部分を通過させるのかを対応付けて考える姿勢が大切です。

この問題で問われていること

検討の中心となるのは、テストデータの組を用意したときに処理のどの部分が確かめられ、どの部分が確かめられないまま残るかという視点です。個々のデータの結果ではなく、組全体としての網羅の度合いに注目してください。

視点

網羅性とは、処理に含まれる判定や経路のうち、テストで実際に実行されたものがどれだけあるかを考える見方です。データの件数を増やしても、同じ経路ばかりを通るなら網羅性は高まりません。まず処理を判定ごとに区切り、それぞれの判定が取り得る結果を書き出します。そのうえで、用意したデータが各判定結果とどう対応するかを自分で一覧にまとめると整理しやすくなります。

確認ポイント

  • 処理の中にある判定や繰返しを書き出し、それぞれが取り得る結果を洗い出したか
  • 各テストデータがどの判定結果を通過させるかを一つずつ対応付けたか
  • どのデータでも通過しない判定結果や経路が残っていないかを確かめたか
正解と解説を見る

正解

イ

解説

昇順リストへの挿入では、入力値そのものだけでなく、入力順によって比較対象と挿入位置が変化する。複数の位置への挿入を経験できる組合せが、テストの網羅性を高める。

理由

イの3,1,4,2では、最初に3を入れた後、1は先頭、4は末尾、2は途中に挿入される。空のリストへの処理を含め、挿入位置に関する代表的な分岐を順に確認できるため、網羅性の観点で適切です。

比較

他の組合せでは、先頭・途中・末尾のいずれかの挿入が現れなかったり、同じ位置への挿入が続いたりする。したがって、比較処理の異なる分岐を十分に確認できるイが最も適している。

選択肢ア

これは不正解だよ。1を最初に入れ、3と4は末尾側、2は途中に挿入されるため、先頭への挿入処理を確認できない。異なる挿入位置を十分に網羅できず、テストデータの組合せとしては適切ではない。

選択肢イ(正解)

これは正解だよ。3を最初に入れた後、1は先頭、4は末尾、2は途中に挿入される。空のリストへの挿入を含め、挿入位置を決める処理の異なる分岐を確認できるため、網羅性が高い。

選択肢ウ

これは不正解だよ。3の後に4を入れると末尾、2を入れると先頭となり、1も先頭に入る。途中への挿入が発生しないため、挿入位置に関する処理の一部を確認できず、網羅性が不足する。

選択肢エ

これは不正解だよ。4を最初に入れた後は、3、2、1のいずれも既存データより小さいため先頭への挿入になる。末尾や途中への挿入を確認できず、分岐を広くテストできない。

学習のポイント

空のリストへの最初の挿入を起点に、後続データが既存リストのどの位置へ入るかを追跡し、挿入処理の分岐を確認する。

出典:独立行政法人 情報処理推進機構(IPA)令和元年度秋期 システムアーキテクト試験 午前Ⅱ 問7(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針