ITパスポート 2023年 問42
問題文
ソフトウェア開発における、テストに関する記述a~cとテスト工程の適切な組合せはどれか。
a 運用予定時間内に処理が終了することを確認する。
b ソフトウェア間のインタフェースを確認する。
c プログラムの内部パスを網羅的に確認する。

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
ソフトウェア開発のテスト(a~c とテスト工程の組合せ)【ITパスポート 解説】
正解の理由
テストの役割に応じて項目 a~c を当てはめると、単体テストはプログラムの内部構造を詳しく見る段階、結合テストはソフトウェア同士やモジュール間の接続(インタフェース)を確認する段階、システムテストはシステム全体が仕様や運用条件を満たすかを確認する段階です。
ここで、
ここで、
- c「プログラムの内部パスを網羅的に確認する」はプログラム内部(ソースコード)の網羅性を見るため、開発者が行う単体テスト(ホワイトボックステスト:内部構造を見る)に対応します。
- b「ソフトウェア間のインタフェースを確認する」はモジュールやコンポーネント同士の結合部分を検証する結合テストに対応します。インタフェースは「部品と部品をつなぐ取り決め(入力・出力のやり取り)」です。
- a「運用予定時間内に処理が終了することを確認する」はシステム全体の性能や動作時間が要件を満たすかを見るため、システムテスト(システム全体を評価するテスト)に対応します。
したがって、単体=c、結合=b、システム=a の組合せになり、選択肢は エ が正しいです。
解法ステップ
- 各テスト工程の目的を確認する。
- 単体テスト(単体テスト):個々のプログラムやモジュールが正しく動くかを確認(主に開発者が実施)。
- 結合テスト(結合テスト):モジュール同士のつながり(インタフェース)が正しく動くかを確認。
- システムテスト(システムテスト):完成したシステム全体が仕様や運用条件を満たすかを確認(性能・運用検証含む)。
- 各記述 a~c の中身を「内部」「接続」「全体」のどれに当てはまるか分類する。
- 該当するテスト工程に対応付ける(単体→内部、結合→接続、システム→全体)。
- 選択肢と照合し、対応が一致する選択肢を選ぶ。
選択肢別の誤答解説
- ア:単体=a、結合=b、システム=c
誤りです。a(運用時間内の処理完了)はシステム全体の性能評価に該当しますからシステムテストに属します。単体テストに a を置くのは目的が合いません。 - イ:単体=a、結合=c、システム=b
誤りです。c(内部パスの網羅)は単体テストの特徴であり、結合テストではないため不適切です。また b(インタフェース確認)はシステムテストではなく結合テストが主です。 - ウ:単体=b、結合=a、システム=c
誤りです。b(インタフェース確認)は結合テストが担当するため単体に置くのは間違いです。c(内部パス網羅)をシステムテストにするのも不適切です。 - エ:単体=c、結合=b、システム=a
正しいです。上の「正解の理由」で説明した通り、各記述が担当するテスト工程と一致します。
よくある誤解
- 単体テストでも性能(処理時間)を見なければならないと考える
- 単体テストは個々のモジュールの正しさ(ロジックや内部パス)を確かめる段階です。処理時間や負荷の検証は通常、システム全体で行う性能試験の範疇です。ただし、極端に遅い関数があれば単体で見つけることもありますが、運用時間内の確認はシステム視点です。
- 結合テスト=ただの動作確認で、インタフェースの細かい部分は無視してよいと思う
- 結合テストではインタフェースの値の形式やエラー処理など、部品間の取り決め(契約)が守られているかを重点的に検証します。ここを怠ると運用時にデータ受け渡しで重大な障害が発生します。
- 「単体テスト=ブラックボックス」という混同
- 単体テストはホワイトボックス(内部構造を見る)とブラックボックス(仕様に従う)の両方の手法がありますが、内部パスの網羅(c)はホワイトボックス的な単体テストの代表例です。
補足コラム
- ホワイトボックステスト(white-box test):ソースコードなど内部構造を見て実施するテスト。パス網羅や条件網羅などが該当します。語源は「内部が見える箱(箱の中身が分かる)」のイメージです。
- ブラックボックステスト(black-box test):内部構造を見ずに仕様や入出力だけで機能を確認するテスト。結合・システムテストで多く使われます。語源は「箱の中身が見えない」イメージです。
- テストの一般的な順序:単体テスト → 結合テスト → システムテスト → 受入テスト(ユーザが行う確認)。ピラミッド状に単体を多く、上位を少なくする「テストピラミッド」という考え方が実務では推奨されます。
FAQ
Q1: インタフェースって具体的に何を確認するのですか?
A1: データ形式(型や文字コード)、通信手順、エラー時の戻り値やタイムアウト動作など、部品同士が約束通りやり取りできるかを確認します。
A1: データ形式(型や文字コード)、通信手順、エラー時の戻り値やタイムアウト動作など、部品同士が約束通りやり取りできるかを確認します。
Q2: 性能問題が出た場合、どのテストで見つけるべきですか?
A2: 最終的にはシステムテストで性能(応答時間やスループット)を確認します。ただし、個別の処理でボトルネックが疑われる場合は単体でプロファイルして改善することもあります。
A2: 最終的にはシステムテストで性能(応答時間やスループット)を確認します。ただし、個別の処理でボトルネックが疑われる場合は単体でプロファイルして改善することもあります。
Q3: 単体テストは誰が行いますか?
A3: 主に開発者自身が行います。自動化(ユニットテストフレームワーク)して継続的に回すことが多いです。
A3: 主に開発者自身が行います。自動化(ユニットテストフレームワーク)して継続的に回すことが多いです。
関連キーワード: 単体テスト、結合テスト、システムテスト、ホワイトボックス、ブラックボックス、インタフェース、性能試験、カバレッジ, テストピラミッド

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

