基本情報技術者 2013年 春期 午前(科目A) 問22
問題文
ホワイトボックステストにおいて、コード中のどれだけの割合の部分を実行できたかを評価するのに使うものはどれか。
選択肢
ア:アサーションチェッカ
イ:シミュレータ
ウ:静的コード解析
エ:テストカバレージ分析(正解)
🔒 解説は解答すると表示されます
テストカバレッジ分析【午前解説】
正解の理由
正解:エ
テストカバレッジ分析は、テスト実行時にどの行(文)や分岐、条件が実際に実行されたかを計測して割合(カバレッジ率)を報告します。ホワイトボックステストの目的はソースコードの内部構造に基づく網羅性向上であり、その評価指標として用いるのがカバレッジ分析です。ツール例としては gcov、JaCoCo、Coverage.py などがあり、実行トレースから未実行箇所を可視化します。
テストカバレッジ分析は、テスト実行時にどの行(文)や分岐、条件が実際に実行されたかを計測して割合(カバレッジ率)を報告します。ホワイトボックステストの目的はソースコードの内部構造に基づく網羅性向上であり、その評価指標として用いるのがカバレッジ分析です。ツール例としては gcov、JaCoCo、Coverage.py などがあり、実行トレースから未実行箇所を可視化します。
解法ステップ
- 問題文のキーワードを拾う:「どれだけの割合の部分を実行できたかを評価」→「実行された割合=カバレッジ」。
- 各選択肢の役割を頭の中で整理する:実行時の割合を「計測する」ものかどうかを判断する。
- 実行割合を報告するツール・手法を選ぶ:テストカバレッジ分析が該当する。
- 選択肢の不適切さを簡潔に消去法で確認して解答確定する。
選択肢別の誤答解説
- ア: アサーションチェッカ
誤り。アサーションはプログラム内部で想定条件を検証して異常を発見するための仕組みであり、どの程度のコードが実行されたかを計測する目的のものではありません。 - イ: シミュレータ
誤り。シミュレータは対象環境やハードウェアの動作を模擬するツールで、実行経路の網羅率を測る分析機能は本質的に持ちません。 - ウ: 静的コード解析
誤り。静的解析はソースコードを実行せずに構文やポテンシャルバグ、コーディング規約違反を検出するため、実行割合(カバレッジ)を直接計測するものではありません。 - エ: テストカバレージ分析
正解。テスト実行時のトレースからどの部分が実際に実行されたかを集計し、割合(文/分岐/条件などのカバレッジ)を算出する手法です。
よくある誤解
- 「静的コード解析で実行された割合がわかる」:静的解析はコードを実行せずに構造や規約違反を検出するため、実行の網羅率は測れません。
- 「アサーションチェッカでカバレッジが分かる」:アサーションは実行時の条件検査や異常検出が目的であり、どれだけのコードが実行されたかの割合を測る機能ではありません。
- 「シミュレータを動かせば自動的に網羅率が高くなる」:シミュレータは環境を模擬するだけで、実際にどの経路を通ったかを計測するには別途カバレッジツールが必要です。
補足コラム
テストカバレッジには主に次の種類があります。
- 文(Statement)カバレッジ:実行された文の割合。基礎的だが分岐の取りこぼしを見落とす。
- 分岐(Branch)カバレッジ:条件分岐の各方向が実行されたか。ロジック網羅に有効。
- 条件(Condition)カバレッジ/複合条件カバレッジ:複合条件内の各部分の真偽が網羅されたかを評価する。
実務では目標カバレッジ(例:70〜90%)を定め、未実行箇所に対して優先度をつけてテストケースを追加していきます。ただしカバレッジが高くても論理的欠陥や仕様ミスが残るため、単独で品質保証の完璧な指標とはならない点に注意してください。
FAQ
Q1: カバレッジ100%ならバグは無いですか?
A1: いいえ。カバレッジ100%は実行された範囲を表すに過ぎず、仕様誤りや期待値の誤設定、観点不足による欠陥は残りえます。
A1: いいえ。カバレッジ100%は実行された範囲を表すに過ぎず、仕様誤りや期待値の誤設定、観点不足による欠陥は残りえます。
Q2: 静的解析で見つかる問題とカバレッジはどちらが重要ですか?
A2: 目的が異なるため両方重要です。静的解析は設計や安全性の問題を早期検出し、カバレッジは実行網羅性の評価に使います。
A2: 目的が異なるため両方重要です。静的解析は設計や安全性の問題を早期検出し、カバレッジは実行網羅性の評価に使います。
Q3: どのカバレッジ指標を目標にすべきですか?
A3: プロジェクト次第ですが、分岐カバレッジはロジック網羅の観点で有用です。安全クリティカルではより高い水準と条件カバレッジも検討します。
A3: プロジェクト次第ですが、分岐カバレッジはロジック網羅の観点で有用です。安全クリティカルではより高い水準と条件カバレッジも検討します。
関連キーワード: ホワイトボックステスト、テストカバレッジ、カバレッジ分析、分岐カバレッジ、静的解析、アサーション、シミュレータ、カバレッジツール、gcov、JaCoCo

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

