ソフトウェア開発とプロジェクト管理

ファームウェアのソースコードに静的解析ツールを使うとき、プログラムを実行せずに見つけやすい問題として、最も適切なものはどれか。

  1. A利用者が本当に必要としている機能が、要件定義書から漏れていること
  2. B初期化されていない変数を参照する経路や、配列の範囲外にアクセスするおそれのある箇所
  3. C量産した基板の一部で、はんだ付けの不良によって信号が途切れること
答えと解説を見る

正解:B. 初期化されていない変数を参照する経路や、配列の範囲外にアクセスするおそれのある箇所

静的解析は、ソースコードを実行せずに構文や制御の流れ・データの流れを調べ、未初期化の変数の参照、配列の範囲外へのアクセス、ヌルポインタの参照のおそれ、コーディング規約(組込みのC言語で使われるMISRA Cなど)への違反などを見つけます。テストでは通りにくい経路の問題も見つけられる一方、誤検出もあるので、結果は人が確かめます。要件の漏れはレビューや利用者との確認で、基板のはんだ付けの不良は製造時の検査や実機の試験で見つけるもので、ソースコードの解析では分かりません。

  • A. 要件の漏れは、要件定義のレビューや利用者との確認で見つけるもので、コードの解析では分かりません。
  • B. 正しい。制御の流れとデータの流れを調べて、実行しなくても見つけられます。
  • C. ハードウェアの製造不良で、製造時の検査や実機の試験で見つけるものです。
この分野を解く 分野ページへ

関連する計算ツール

ソフトウェア開発とプロジェクト管理の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

ソフトウェア開発とプロジェクト管理のほかの問題

  1. ブラックボックステストの説明として、適切なものはどれか。
  2. 整数だけが入力される欄で、1以上100以下の値を受け付け、それ以外はエラーにする。同値分割で入力を分けたときの、同値クラスの数(有効同値クラスと無効同値クラスの合計)はどれか。
  3. 入場料金を年齢(0以上の整数)で決めるプログラムがあり、0〜17歳は子供料金、18〜64歳は一般料金、65歳以上はシニア料金とする。料金区分が変わる境目を確かめるために、境界値分析で選ぶテストの値の組合せとして、最も適切なものはどれか。
  4. 仕様は「温度が85 ℃以上なら警告を出す」だが、ファームウェアには誤って「if (t > 85)」と書かれていた。温度 t は整数とする。次のテストの値のうち、この誤りを見つけられるものはどれか。
  5. temp と err の値は互いに独立に決められるものとする。次の処理「if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }」で、命令網羅(すべての命令を少なくとも1回実行する)を満たすのに必要な最小のテストケースの数はどれか。