システム監査技術者 2019年 午前2 問22
問題文
プログラムのテストに関する記述のうち、適切なものはどれか。
選択肢
ア:静的テストとは、プログラムを実行することなくテストする手法であり、コード検査、静的解析などがある。(正解)
イ:単体テストでは、スタブから被テストモジュールを呼び出し、被テストモジュールから呼び出されるモジュールの代わりにドライバを使用する。
ウ:トップダウンテストは、仮の下位モジュールとしてのドライバを結合してテストするので、テストの最終段階になるまで全体に関係するような欠陥が発見されにくい。
エ:ブラックボックステストでは、分岐、反復などの内部構造に基づいてテストするので、全ての経路を通過するように、テストケースを設定する。
🔒 解説は解答すると表示されます
静的テスト【午前2解説】
正解の理由
正しいのはアです。静的テストとは、プログラムを実行せずに、ソースコードや設計書などを調べるテスト手法です。コードレビューや静的解析によって、文法上の問題、規約違反、潜在的な不具合などを検出します。
プログラムを実際に動かして、入力に対する出力や動作を確認するテストは、動的テストです。
解法ステップ
- 各選択肢が、テストの基本用語を正しく説明しているか確認します。
- テストを「プログラムを実行するかどうか」で分類します。
- モジュール結合テストの「スタブ」と「ドライバ」の役割を確認します。
- テストが内部構造に基づくものか、仕様に基づくものかを見分けます。
選択肢別の誤答解説
- ア:適切です。静的テストはプログラムを実行せずに行い、コード検査や静的解析などが該当します。
- イ:スタブとドライバの説明が逆です。スタブは、被テストモジュールから呼び出される下位モジュールの代役です。ドライバは、被テストモジュールを呼び出す上位モジュールの代役です。
- ウ:トップダウンテストで仮の下位モジュールとして使うのは、ドライバではなくスタブです。また、上位モジュールから順に結合するため、上位の機能やインタフェースの問題を早い段階で確認できます。
- エ:分岐や反復などの内部構造に基づくのは、ホワイトボックステストです。ブラックボックステストは、内部構造ではなく、仕様や入出力に基づいてテストします。
よくある誤解
-
静的テストは、ソースコードだけを対象にすると思い込む
ソースコードの検査だけでなく、設計書や要件定義書のレビューも、実行せずに確認する静的な検査に含まれます。 -
スタブとドライバを逆に覚える
「呼び出される側の代役」がスタブ、「呼び出す側の代役」がドライバです。 -
ブラックボックステストで内部の分岐を確認すると考える
内部構造を意識して経路を確認するのはホワイトボックステストです。ブラックボックステストでは、仕様に基づいて入力と出力を確認します。
補足コラム
スタブとドライバは、結合テストで不足しているモジュールを仮に置き換えるために使います。
- トップダウンテスト:上位モジュールから下位モジュールへ結合します。未完成の下位モジュールをスタブで代用します。
- ボトムアップテスト:下位モジュールから上位モジュールへ結合します。未完成の上位モジュールをドライバで代用します。
「トップダウンではスタブ、ボトムアップではドライバ」と整理すると覚えやすいです。
FAQ
Q. 静的解析とコードレビューは同じものですか?
A. どちらもプログラムを実行せずに調べる方法ですが、確認の方法が異なります。静的解析はツールによる自動検査が中心で、コードレビューは人がソースコードを読み、問題点を確認する方法です。
A. どちらもプログラムを実行せずに調べる方法ですが、確認の方法が異なります。静的解析はツールによる自動検査が中心で、コードレビューは人がソースコードを読み、問題点を確認する方法です。
Q. ブラックボックステストでは、プログラムの内部を一切確認しませんか?
A. テストケースを設計するときに重視するのは、内部構造ではなく仕様や入出力です。内部構造に基づいて網羅性を確認するホワイトボックステストとは、着眼点が異なります。
A. テストケースを設計するときに重視するのは、内部構造ではなく仕様や入出力です。内部構造に基づいて網羅性を確認するホワイトボックステストとは、着眼点が異なります。
関連キーワード: 静的テスト、動的テスト、静的解析、スタブ、ドライバ、トップダウンテスト、ボトムアップテスト、ブラックボックステスト、ホワイトボックステスト

\ せっかくなら /
システム監査技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

