エンベデッドシステムスペシャリスト試験 令和3年度 秋期 午前II 問22
プログラム実行中の特定の時点で成立していなければならない変数間の関係や条件を記述した論理式を埋め込んで、その論理式が成立していることを確認することによって、プログラムの処理の正当性を動的に検証する手法はどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
アサーションチェックは、プログラム中に、その時点で必ず成立しているはずの条件を論理式として記述し、実行時に真であるかを検査する手法です。例えば、配列の添字を表す変数iについて、処理の直前に0≦iかつi<配列長という条件を埋め込みます。実行中に条件が偽になれば、その位置で想定外の状態が生じたことが分かります。変数間の関係や前提条件を実行時に確認し、処理の正当性を動的に検証するので、アが正解です。
イのコード追跡は誤りです。これは、命令や関数がどの順序で実行されたか、どの経路を通ったかなどを記録して、障害原因を調べる手法です。特定の論理式が成立するかを直接検査するものではありません。
ウのスナップショットダンプは誤りです。これは、障害発生時などの特定時点におけるメモリやレジスタ、変数の内容を保存し、後から解析する手法です。
エのテストカバレッジ分析は誤りです。これは、命令、分岐、条件などがテストによってどの程度実行されたかを測定する手法です。
【ポイント】 アサーションには、関数実行前の事前条件、実行後の事後条件、常に維持すべき不変条件などがあります。 条件違反を早い段階で検出できるため、異常が表面化した場所ではなく、原因に近い場所を特定しやすくなります。 カバレッジはテストの実行範囲を測る指標であり、処理結果の正しさ自体を保証するものではありません。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問22
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる