ホーム > システムアーキテクト試験 > 2012年
システムアーキテクト試験 2012年 午前2 問09
プログラムのテストに関する記述のうち、適切なものはどれか。
イ:単体テストでは、スタブから被検査モジュールを呼び出し、被検査モジュールから呼び出されるモジュールの代わりにドライバを使用する。
ア:静的テストとは、プログラムを実行することなくテストする手法であり、コード検査、静的解析などがある。(正解)
エ:ブラックボックステストでは、分岐、反復などの内部構造を検証するので、全ての経路を通過するように、テストケースを設定する。
ウ:トップダウンテストは、仮の下位モジュールとしてのスタブを結合してテストするので、テストの最終段階になるまで全体に関係するような陥が発見されにくい。
解説
プログラムのテストに関する記述のうち、適切なものはどれか【午前2 解説】
要点まとめ
- 結論:静的テストはプログラムを実行せずにコード検査や静的解析を行う手法であり、これが正しい説明です。
- 根拠:静的テストは実行前にソースコードの誤りや品質をチェックし、実行時の問題を未然に防ぎます。
- 差がつくポイント:単体テストや結合テストのスタブ・ドライバの役割や、ブラックボックステストの目的を正確に理解することが重要です。
正解の理由
選択肢アは「静的テストとはプログラムを実行せずに行うテスト手法であり、コード検査や静的解析が含まれる」と正確に説明しています。静的テストはソースコードの構文や規約違反、潜在的なバグを検出するために実行され、プログラムの動作を伴わないため、実行時の環境に依存しません。これに対し、他の選択肢はスタブとドライバの役割やテスト手法の特徴を誤って説明しています。
よくある誤解
単体テストでスタブとドライバの役割を混同しやすいです。ブラックボックステストは内部構造を検証するのではなく、外部仕様に基づくテストです。
解法ステップ
- 静的テストの定義を確認し、「実行せずに行うテスト」であることを理解する。
- 単体テストにおけるスタブとドライバの役割を整理する。
- トップダウンテストの進め方とスタブの使い方を確認する。
- ブラックボックステストの目的が内部構造ではなく仕様検証であることを押さえる。
- 各選択肢の説明と定義を照らし合わせて正誤を判断する。
選択肢別の誤答解説
- ア: 静的テストはプログラムを実行せずにコード検査や静的解析を行う手法であり、正しい説明です。
- イ: 単体テストでは被検査モジュールから呼び出されるモジュールの代わりにスタブを使い、呼び出す側の代わりにドライバを使います。説明が逆です。
- ウ: トップダウンテストは上位モジュールから順にテストし、下位モジュールの代わりにスタブを使いますが、全体の欠陥が発見されにくいとは限りません。説明が不正確です。
- エ: ブラックボックステストは内部構造を検証せず、仕様に基づいて入力と出力を検証します。経路網羅はホワイトボックステストの概念です。
補足コラム
静的テストはソフトウェア開発の初期段階で行うことで、バグの早期発見と修正が可能になり、コスト削減に繋がります。代表的な手法にはコードレビューや静的解析ツールの利用があります。一方、動的テストは実際にプログラムを実行して動作を検証するため、両者を組み合わせることが品質向上に効果的です。
FAQ
Q: スタブとドライバの違いは何ですか?
A: スタブは呼び出されるモジュールの代わりに使い、ドライバは呼び出す側の代わりに使います。単体テストでモジュール間の依存を切り離すために利用されます。
A: スタブは呼び出されるモジュールの代わりに使い、ドライバは呼び出す側の代わりに使います。単体テストでモジュール間の依存を切り離すために利用されます。
Q: ブラックボックステストで内部構造を調べることはありますか?
A: いいえ。ブラックボックステストは仕様に基づき入力と出力を検証し、内部構造は考慮しません。内部構造の検証はホワイトボックステストの役割です。
A: いいえ。ブラックボックステストは仕様に基づき入力と出力を検証し、内部構造は考慮しません。内部構造の検証はホワイトボックステストの役割です。
関連キーワード: 静的テスト, 単体テスト, スタブ, ドライバ, トップダウンテスト, ブラックボックステスト, 静的解析, コードレビュー