最終更新日:2026年9月27日
fe fe-technology system-development software-testing
まず結論
テスト支援ツールは、「プログラムを実行するか」「テストの準備をするか」で分けると判断しやすくなります。
基本情報技術者試験では、まず次の3分類を押さえます。
| 分類 | 判断の中心 | 代表的な例 |
|---|---|---|
| 静的テストツール | プログラムを実行せずに解析する | 構文チェッカ、コード解析ツール |
| 動的テストツール | プログラムを実行しながら調べる | カバレージモニタ、トレーサ |
| テスト環境設定ツール | テストを実施するための準備をする | スタブ・ドライバ生成、テストデータ生成 |
試験中は、次の3行に置き換えると選択肢を切りやすくなります。
ソースコードを見る
→ 静的
実行結果を見る
→ 動的
テストの準備をする
→ 環境設定
動かさず調べるのが静的、動かして調べるのが動的、動かす準備をするのが環境設定。
直感的な説明
プログラムのテストを「出発前・走行中・準備」の3場面で考えると分かりやすいです。
プログラムを動かす前
↓
ソースコードを読む・解析する
↓
静的テストツール
プログラムを実際に動かす
↓
どの経路を通ったか、どんな値になったかを見る
↓
動的テストツール
テストするための入力や代役を用意する
↓
テスト環境設定ツール
つまり、ツール名を丸暗記するよりも、そのツールがいつ何をしているかを見るのがポイントです。
定義・仕組み
静的テストツール
静的テストツールは、プログラムを実行せずに、ソースコードやプログラム構造を解析するツールです。
例えば、
- 構文上の誤りを調べる
- 規約違反や危険な記述を検出する
- コードの複雑さを調べる
- モジュール間のインタフェースを確認する
といった用途があります。
ソースコード
↓
解析
↓
問題候補を検出
※ 実行しない
試験では、「ソースコードを解析」「実行せずに検出」が強い合図です。
動的テストツール
動的テストツールは、プログラムを実際に実行しながら、動作や実行経路などを調べるツールです。
例えば、
- どの命令や分岐を通ったか調べる
- 実行時の値を追跡する
- 実行した経路からカバレージを測る
- 実行中の状態を記録する
といった用途があります。
テスト実行
↓
実際に通った経路を記録
↓
網羅度を計算
このように、実行結果が必要なら動的です。
カバレージの意味は、ホワイトボックステストの網羅基準で整理しています。
テスト環境設定ツール
テスト環境設定ツールは、テストを実行できるように必要な部品やデータを準備するツールです。
例えば、
- スタブを生成する
- ドライバを生成する
- テストデータを生成する
- 特定の経路を通すための入力を作る
- テストベッドを準備する
といった用途があります。
テスト前
↓
必要な代役や入力を準備
↓
テストを実行できる状態にする
スタブとドライバそのものの違いは、スタブとドライバの違いで確認できます。
CASEツールとの関係
テスト支援機能は、CASEツールの中では主に下流工程を支援する機能として扱われます。
要求分析・設計
→ 上流CASE
プログラミング・テスト
→ 下流CASE
ただし、FE試験では、
CASEツール
→ 開発工程のどこを支援するか
テスト支援ツール
→ テスト時に何を支援するか
と、分類の軸を分けて考えると混乱しにくくなります。
詳しくは、CASEツールとは?で整理しています。
このテーマは基本情報技術者試験のシステム開発技術・ソフトウェアテストに関係します。最新の出題範囲は、IPA:試験要綱・シラバスについてから確認できます。
科目Aでどう出る?
科目Aでは、「この機能はどの種類のテスト支援ツールか」を選ばせる問題として出ます。
まず、次の順番で判断します。
1. プログラムを実行している?
↓
YES → 動的
2. 実行していない?
↓
ソースコードを解析 → 静的
3. テスト用の入力・代役を作っている?
↓
環境設定
ソースコードを解析して誤りを検出
ソースコードを解析
+
実行しない
↓
静的テストツール
構文チェッカなどが代表例です。
実行した経路から網羅度を算出
テストを実行
↓
実際に通った経路を取得
↓
カバレージを測定
↓
動的テストツール
「経路」「実行結果」「カバレージ」が出たら、動的を疑います。
スタブやドライバを生成
スタブやドライバは、未完成のモジュールを補うためのテスト用部品です。
テスト対象を動かすための代役を用意
↓
テスト環境設定ツール
特定経路を通すテストデータを生成
テストデータを作ること自体は、プログラムの実行結果を解析することではありません。
この経路を通したい
↓
そのための入力データを作る
↓
テスト環境設定
と判断します。
どんな場面で使う?
コードを書く段階
コードを書いた直後に、構文ミスや問題のある記述を早めに見つけたい場合は、静的解析が役立ちます。
コード作成
↓
静的解析
↓
実行前に問題候補を確認
テストを実行する段階
プログラムを動かして、
- どの処理を通ったか
- どこまで網羅できたか
- どんな値になったか
を確認したい場合は、動的テストツールを使います。
未完成部分がある段階
結合テストなどで一部のモジュールが未完成なら、スタブやドライバを使ってテスト対象を動かせる状態にします。
必要なモジュールが未完成
↓
スタブ・ドライバで代用
↓
テストを実行
よくある誤解・混同
ソースコードを見るテストは全部ホワイトボックステスト
似ていますが、分類軸が違います。
静的・動的
→ 実行するかどうか
ホワイトボックス・ブラックボックス
→ 何を基にテストケースを設計するか
例えば、内部構造を基にテストケースを作って実際に実行する場合は、ホワイトボックステストであり、実行時の測定は動的になります。
カバレージを測るのは静的
違います。
テストカバレージは、実際にテストしてどの命令・分岐などを通ったかを測るため、動的テストツールの代表例として考えます。
実際に通った経路
↓
測定
↓
動的
スタブとドライバは動的テストツール
スタブやドライバはテスト中に動くことがありますが、この種の選択問題では、それらを用意・生成してテスト環境を整える機能はテスト環境設定ツールとして扱います。
実行結果を観測する
→ 動的テストツール
実行するための代役を準備する
→ テスト環境設定ツール
テストデータ生成は動的テスト
テストデータ生成は、テストを実行するための入力を準備する機能です。
データを作る
→ 準備
実行して結果を見る
→ 動的
ここを分けます。
「静的テストツール」と「静的解析ツール」は完全に別物
過去問題では「静的テストツール」という分類名が使われることがありますが、現在は「静的解析」という表現を目にすることも多いです。
FEでは名称だけに引っ張られず、
プログラムを実行せずにコードを解析する
という役割を基準に判断すると安全です。
まとめ(試験直前用)
- 静的:プログラムを実行せず、ソースコードなどを解析する
- 動的:プログラムを実行し、実行経路や状態を調べる
- 環境設定:スタブ・ドライバ・テストデータなどを準備する
- 構文チェッカ → 静的
- カバレージモニタ → 動的
- スタブ・ドライバ生成 → 環境設定
- テストデータ生成 → 環境設定
- 「実行する?準備する?」を先に見ると選択肢を切りやすい
動かさず見る → 静的、動かして見る → 動的、動かす準備 → 環境設定。