この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

静的解析ツールの説明を選ぶ問題です。テストは、プログラムを実行せずに検査する静的テストと、実際に実行して検査する動的テストに大別されます。静的解析ツールは、プログラムを実行することなく、ソースコードそのものを分析して、文法上の誤りやコーディング規約違反、論理的な誤り(未使用変数、到達不能コード、初期化忘れなど)を検出するツールです。ウの「プログラム中に文法上の誤りや論理的な誤りなどがあるかどうかを、ソースコードを分析して調べる」がまさに静的解析ツールの説明であり、正解です。コンパイラの警告機能やリンタ(lint)、コーディング規約チェッカなどが代表例です。プログラムを動かさずに問題を早期に発見できるため、テスト工程を待たずに開発の上流段階で品質を高められる利点があります。他の選択肢はいずれもプログラムを実行することが前提の動的テストを支援するツールであり、「実行するか・しないか」を見極めることが判別の決め手になります。

なぜ他の選択肢は違うのか

選択肢 ア
指定された条件のテストデータやプログラムの入力ファイルを自動的に生成するのは、テストデータ生成ツールの説明です。生成したデータは実際にプログラムを実行してテストするために使われるため、これは動的テストを支援するツールに分類されます。ソースコードを実行せずにそのまま分析する静的解析ツールとは、役割も使うタイミングも異なります。
選択肢 イ
テストの実行結果を基に命令の網羅率や分岐の網羅率を計測・分析するのは、カバレッジ計測ツール(カバレッジモニタ)の説明です。「テストの実行結果を基に」とあるとおり、まずプログラムを実行することが前提となっており、動的テストを支援するツールに分類されます。プログラムを実行せずにソースコードを調べる静的解析とは正反対のアプローチです。
選択肢 エ
モジュールの呼出し回数や実行時間、実行文の実行回数などの実行時の動作特性を計測するのは、プロファイラ(性能分析ツール)の説明です。これもプログラムを実際に実行して動作を測定する動的解析のツールです。「実行時の動作特性」という記述から、実行を伴う動的テスト用ツールだと判断でき、静的解析ツールとは区別できます。

解くときのポイント

静的解析ツール=実行せずソースコードを分析(文法・論理の誤り検出)。テストデータ生成・カバレッジ計測・プロファイラは実行が前提の動的テスト用。「実行するか否か」で判別。