ソフトウェア開発とプロジェクト管理
ファームウェアのソースコードに静的解析ツールを使うとき、プログラムを実行せずに見つけやすい問題として、最も適切なものはどれか。
- A利用者が本当に必要としている機能が、要件定義書から漏れていること
- B初期化されていない変数を参照する経路や、配列の範囲外にアクセスするおそれのある箇所
- C量産した基板の一部で、はんだ付けの不良によって信号が途切れること
答えと解説を見る
正解:B. 初期化されていない変数を参照する経路や、配列の範囲外にアクセスするおそれのある箇所
静的解析は、ソースコードを実行せずに構文や制御の流れ・データの流れを調べ、未初期化の変数の参照、配列の範囲外へのアクセス、ヌルポインタの参照のおそれ、コーディング規約(組込みのC言語で使われるMISRA Cなど)への違反などを見つけます。テストでは通りにくい経路の問題も見つけられる一方、誤検出もあるので、結果は人が確かめます。要件の漏れはレビューや利用者との確認で、基板のはんだ付けの不良は製造時の検査や実機の試験で見つけるもので、ソースコードの解析では分かりません。
- A. 要件の漏れは、要件定義のレビューや利用者との確認で見つけるもので、コードの解析では分かりません。
- B. 正しい。制御の流れとデータの流れを調べて、実行しなくても見つけられます。
- C. ハードウェアの製造不良で、製造時の検査や実機の試験で見つけるものです。