静的解析とは?せいてきかいせき
静的解析とは、プログラムを実行せずにソースコードや中間表現を調べ、未初期化変数の使用、配列の境界超過、到達不能コード、規約違反などを検出する手法。テストでは再現しにくい経路に潜む不具合を、コードを書いた直後の段階で見つけられる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
テストで欠陥を見つけるには、その欠陥を通る入力を用意しなければならない。ところが割込みのタイミングやエラー処理の経路は、実機で意図的に再現すること自体が難しい。実行を前提とせずコードの構造だけから性質を導けば、この再現の壁を越えられる。欠陥は見つかるのが早いほど手戻りが小さいという原則もあって、規約適合性の確認や複雑度の測定まで含め、ビルドの一部として回す形が定着した。
具体例
CoverityやSonarQube、Clang Static Analyzerなどが使われ、コンパイラの警告も広い意味ではこの仲間にあたる。組込みではMISRA-Cの適合性検査や関数のサイクロマティック複雑度の測定に用い、しきい値を超えたモジュールをレビュー対象に選ぶ運用を取る。
試験での引っ掛け
実際に動かして振る舞いを観測する動的解析(プロファイリング、アサーション、ファジングなど)と対になる手法なので、実行時にしか分からない性能や実資源の消費量は測れない。またすべての経路を安全側に見積もる性質上、誤検出(偽陽性)が避けられず、警告が消えたことは欠陥が無いことを意味しない。
関連用語
出た過去問
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問21(IPA)解説で登場
MISRA-Cの説明として、適切なものはどれか。
正解:車載システムの品質向上を目的に制定された、C言語実装法のガイドライン
要点:MISRA-Cは車載向けC言語コーディングのガイドライン
MISRA-Cは、英国の自動車業界団体MISRAが策定した、C言語を安全性が重要な組込みシステムで使うためのコーディングガイドラインである。処理系依存の動作や未定義動作を招きやすい書き方を禁止・制限するルール群からなり、静的解析ツールで適合を検査するのが一般的である。言語そのものではなく実装(記述)の指針である点が要点。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。