プログラムのテストに関する記述のうち、適切なものはどれか【午前2 解説】
要点まとめ
- 結論:静的テストはプログラムを実行せずにコード検査や静的解析を行う手法であり、これが正しい説明です。
- 根拠:静的テストはソフトウェアの品質向上に不可欠で、実行前にコードの誤りや規約違反を検出します。
- 差がつくポイント:単体テストや結合テストの用語の理解、ブラックボックステストの目的と手法の違いを正確に把握することが重要です。
正解の理由
選択肢アは「静的テストとはプログラムを実行せずに行うテスト手法で、コード検査や静的解析が含まれる」と正確に説明しています。静的テストはソフトウェアの実行を伴わず、ソースコードの構文や規約違反、潜在的なバグを検出するために用いられます。これに対し、他の選択肢は単体テストや結合テストの用語や手法の説明に誤りがあるため不適切です。
よくある誤解
単体テストでスタブとドライバの役割を混同しやすいです。ブラックボックステストは内部構造を検証するのではなく、機能仕様に基づくテストです。
解法ステップ
- 各選択肢のテスト手法の定義を確認する。
- 静的テストは実行しないテストであることを理解する。
- 単体テストでのスタブとドライバの役割を整理する。
- トップダウンテストの特徴と欠陥発見のタイミングを確認する。
- ブラックボックステストの目的が内部構造ではなく機能検証であることを把握する。
- 正しい説明をしている選択肢を選ぶ。
選択肢別の誤答解説
- ア: 静的テストはプログラムを実行せずにコード検査や静的解析を行う手法であり、正しい説明です。
- イ: 単体テストでは、被検査モジュールから呼び出されるモジュールの代わりにスタブを使用し、呼び出す側の代わりにドライバを使います。説明が逆です。
- ウ: トップダウンテストはスタブを使い下位モジュールを仮置きしますが、欠陥発見が遅れるとは限らず、説明が誤っています。
- エ: ブラックボックステストは内部構造を検証せず、機能仕様に基づいてテストケースを作成します。内部構造の検証はホワイトボックステストの役割です。
補足コラム
静的テストはソフトウェア開発の初期段階で行うことで、後工程での修正コストを大幅に削減できます。代表的な手法にはコードレビューや静的解析ツールの活用があり、バグの早期発見に効果的です。また、単体テストや結合テストは動的テストに分類され、実際にプログラムを実行して動作を検証します。
FAQ
Q: 静的テストと動的テストの違いは何ですか?
A: 静的テストはプログラムを実行せずにコードや設計を検査する手法で、動的テストは実際にプログラムを実行して動作を検証します。
Q: スタブとドライバの違いは何ですか?
A: スタブは呼び出されるモジュールの代わりに使い、ドライバは呼び出す側のモジュールの代わりに使います。単体テストで役割が異なります。
関連キーワード: 静的テスト、単体テスト、スタブ、ドライバ、トップダウンテスト、ブラックボックステスト、静的解析、コード検査