ITパスポート 2010年 春期 問34
問題文
ソフトウェア結合テストに関して説明したものはどれか。
選択肢
ア:関連する業務処理を行っているシステムと結合して、正常に稼働することを確認する。
イ:すべての命令や分岐条件などを網羅するホワイトボックステストによってプログラムが仕様書どおりに動作することを確認する。
ウ:プログラマが検証ツールやチェックリストを利用して、プログラムがコーディング基準に従って作成されていることを確認する。
エ:プログラム間のインタフェースが整合していることを確認する。(正解)
🔒 解説は解答すると表示されます
ソフトウェア結合テストに関して説明したものはどれか。【ITパスポート 解説】
正解の理由
選択肢の中で、ソフトウェア結合テスト(integration test:プログラム同士やモジュール同士の接続ややり取りを確認するテスト)について正しく説明しているのは エ です。
エ の「プログラム間のインタフェースが整合していることを確認する」という表現は、結合テストの目的そのものです。結合テストでは、個々のプログラム(モジュール)が正しく単体で動くかだけでなく、呼び出し方(関数やAPIの引数や戻り値)、データ受け渡しの形式、通信プロトコルなど、プログラム間のインタフェース(interface:接続ややり取りの取り決め)に矛盾や不具合がないかを確認します。
エ の「プログラム間のインタフェースが整合していることを確認する」という表現は、結合テストの目的そのものです。結合テストでは、個々のプログラム(モジュール)が正しく単体で動くかだけでなく、呼び出し方(関数やAPIの引数や戻り値)、データ受け渡しの形式、通信プロトコルなど、プログラム間のインタフェース(interface:接続ややり取りの取り決め)に矛盾や不具合がないかを確認します。
解法ステップ
- 問題文のキー語「結合テスト」をまず意味づけする。結合テスト = プログラムやモジュール同士のつながり(インタフェース)を確認する段階。
- 各選択肢を「どのテスト工程(単体・結合・システム・レビューなど)を説明しているか」で分類する。
- 「インタフェース」「業務システムと結合」「ホワイトボックス」「コーディング基準」などの語とテスト工程を照らし合わせ、最も合致するものを選ぶ。
- 結果として、インタフェース整合=結合テストを示す エ が正しいと判断する。
選択肢別の誤答解説
- ア: 「関連する業務処理を行っているシステムと結合して、正常に稼働することを確認する。」
→ これはシステム結合テストや総合テスト(system integration test / system test)に近い説明です。外部の業務システムや他システムとの連携を含めた広い視点で動作確認を行う段階で、結合テスト(モジュール間の接続確認)よりも範囲が大きいことが多いです。よって誤り。 - イ: 「すべての命令や分岐条件などを網羅するホワイトボックステストによってプログラムが仕様書どおりに動作することを確認する。」
→ これはホワイトボックステスト(white-box test:内部構造を見て行うテスト)、特に単体テスト(unit test)やコードカバレッジ(網羅性)を意識した説明です。結合テストの説明ではありません。 - ウ: 「プログラマが検証ツールやチェックリストを利用して、プログラムがコーディング基準に従って作成されていることを確認する。」
→ これはコードレビューや静的解析(static analysis)に関する説明です。コーディング規約(コーディング基準)への準拠確認はテストではなくレビューや品質保証の活動に当たります。 - エ: 「プログラム間のインタフェースが整合していることを確認する。」
→ 正解。インタフェース(interface:接続仕様やデータ形式、APIの取り決め)を検証するのが結合テストの役割です。
よくある誤解
- 結合テストとシステムテストを混同する
- 結合テストは「モジュール間やプログラム間の接続(インタフェース)を確認する」段階。システムテストはシステム全体を実際の環境や外部システムと合わせて試す段階です。範囲の違いを押さえてください。
- 結合テストは「全ての機能の動作確認」だと思い込む
- 結合テストは主にやり取り(呼び出し方・データ形式・例外伝播など)に注目します。個々の機能の内部動作は単体テストで確認します。
- 「インタフェース=画面の見た目」と誤解する
- インタフェースはユーザー画面だけでなく、プログラム間のAPI(Application Programming Interface:プログラム同士がやり取りする決まり)やファイル形式、データベースのスキーマなども含みます。
補足コラム
テストの主なレベル(簡単な覚え方)
- 単体テスト(unit test):個々の関数やクラスが正しく動くか。開発者が担当。ホワイトボックス手法が多い。
- 結合テスト(integration test):モジュール間のインタフェースを確認。スタブ(stub:呼び出し先の代替実装)やドライバ(driver:呼び出し元の代替)を使って行うことがある。
- システムテスト(system test):実際の外部システムや本番に近い環境で、システム全体の振る舞いを確認。
- 受け入れ試験(acceptance test):ユーザーや顧客が要求どおりかを確認する最終チェック。
実務で結合テストを行う際のポイント(初心者向け):
- インタフェースの仕様書(API仕様、データ形式)を明確にする。
- 正常系だけでなくエラーやネットワーク障害時の挙動も確認する。
- 自動化ツール(APIテストツールやテストフレームワーク)を使うと繰り返し確認が楽になる。
FAQ
Q1: 単体テストと結合テストは誰が行いますか?
A1: 単体テストは主にプログラマ(開発者)が行います。結合テストは開発チーム内のテスト担当者やQA(品質保証)チームが担当することが多いです。
A1: 単体テストは主にプログラマ(開発者)が行います。結合テストは開発チーム内のテスト担当者やQA(品質保証)チームが担当することが多いです。
Q2: インタフェースの不整合はどんな症状で分かりますか?
A2: 例)呼び出し時にパラメータ数や型が違う、戻り値の形式が違う、期待したエラーが返らない、データが文字化けする、通信プロトコルの違いで接続できない、などです。
A2: 例)呼び出し時にパラメータ数や型が違う、戻り値の形式が違う、期待したエラーが返らない、データが文字化けする、通信プロトコルの違いで接続できない、などです。
Q3: 結合テストで使う代表的な道具は?
A3: APIテストツール(例:Postmanなど)、自動テストフレームワーク、ログ解析ツール、モック・スタブライブラリなどがあります。
A3: APIテストツール(例:Postmanなど)、自動テストフレームワーク、ログ解析ツール、モック・スタブライブラリなどがあります。
関連キーワード: 結合テスト、インタフェース、API、単体テスト、システムテスト、ホワイトボックステスト、コードレビュー、スタブ、モック、テスト自動化

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

