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

令和6年度春期 システムアーキテクト 午前Ⅱ 問6

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

問題

プログラムに,実行中の特定の時点で成立すべき変数間の関係や条件を記述した論理式を埋め込んで,そのプログラムの正当性を検証する手法はどれか。

選択肢

  1. ア
    アサーションチェック
  2. イ
    コード追跡
  3. ウ
    スナップショットダンプ
  4. エ
    テストカバレッジ分析
解き方のヒントを見る

確かめたい主張の範囲を整理する

プログラムの正当性を考えるときは、まず何について確かめたいのか、その主張の範囲を整理しましょう。扱われている情報から言えることと、まだ判断できないことを分けて捉えるのが検討の出発点です。

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

着目するのは、確かめたい主張がどこまでを対象にしているかという点です。示された条件を踏まえ、その主張が及ぶ範囲を自分の言葉で整理し、考える途中で範囲を広げたり狭めたりしていないか確認しましょう。

視点

正当性という言葉だけで判断を進めず、確かめたい主張の範囲を意識してください。与えられた条件に沿って範囲を整理し、検討の間もその範囲を保つことで、考える軸を定めやすくなります。

確認ポイント

  • 確かめたい主張の対象を捉えたか
  • その主張の範囲を条件に沿って整理したか
  • 検討の途中で主張の範囲を変えていないか
正解と解説を見る

正解

ア

解説

正解はアのアサーションチェックです。実行中の特定の時点で成立すべき変数間の関係や条件を論理式としてプログラムに埋め込み、その成立を確認する手法です。

理由

アサーションは、プログラムのある時点で成立すべき条件を表します。例えば、二つの変数について「下限値が上限値以下である」という条件を記述し、実行時に確認します。こうした論理式を埋め込んで想定どおりの状態かを検査することが、アサーションチェックです。

比較

コード追跡は処理の流れをたどり、スナップショットダンプは実行中の指定した時点のメモリやレジスタなどの内容を出力します。異常終了時の状態を出力するポストモーテムダンプとは、出力する時点が異なります。テストカバレッジ分析は、テストで実行された命令や分岐などの範囲を評価します。

選択肢ア(正解)

これは正解だよ。アサーションチェックは、実行中の特定の時点で成立すべき条件を論理式としてプログラムに埋め込み、その条件が満たされるかを確認する手法です。変数間の関係や条件を検査し、想定と異なる状態を検出できるので、設問の説明に一致します。

選択肢イ

これは不正解だよ。コード追跡は、プログラムの処理の流れをたどり、実行された命令や変数の値の変化などを確認する手法です。処理がどのように進んだかを調べるために用いますが、成立すべき条件を論理式として埋め込んで検査するという設問の手法とは異なります。

選択肢ウ

これは不正解だよ。スナップショットダンプは、プログラムの実行中の指定した時点で、メモリやレジスタ、変数などの内容を出力する手法です。出力した状態を調査できますが、埋め込んだ論理式で条件の成立を検査する手法ではありません。異常終了時の状態を出力するポストモーテムダンプとは、出力する時点を区別します。

選択肢エ

これは不正解だよ。テストカバレッジ分析は、テストによって実行された命令や分岐などの割合を調べ、テストで確認した範囲を評価する手法です。実行中の特定の時点で成立すべき条件を論理式で検査するものではないため、設問の説明には当てはまりません。

学習のポイント

条件の成立を検査する手法と、実行経路の追跡、状態の出力、テスト範囲の分析を区別しましょう。

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

関連する過去問一覧

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