ITパスポート 2010年 秋期 問48
問題文
システム開発プロセスを要件定義、外部設計、内部設計、プログラミングに分け、テストの種類を運用テスト、結合テスト、システムテスト、単体テストに分けたとき、図のa〜cに入れる字句の適切な組合せはどれか。


選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
システム開発のテスト対応図の穴埋め【ITパスポート 解説】
正解の理由
図を見ると、プログラミング(プログラムを書く工程)の中に「単体テスト(たんたいテスト:1つの部品やモジュールが正しく動くかを確認するテスト)」が書かれています。そこから上向きに矢印で a → b → c と続いています。これは「テストのレベルが小さい(単体)→大きい(システム)→運用へ」という順序を示します。
さらに破線矢印で各テスト(a,b,c)が、それぞれ内部設計・外部設計・要件定義に対応しているので、次の対応が自然です。
さらに破線矢印で各テスト(a,b,c)が、それぞれ内部設計・外部設計・要件定義に対応しているので、次の対応が自然です。
- a(プログラミング直上、内部設計に対応)= 結合テスト(モジュールどうしのつながりを確認)
- b(外部設計に対応)= システムテスト(システム全体の機能や外部入出力を確認)
- c(要件定義に対応)= 運用テスト(実運用環境で要件が満たされるか確認)
以上より選択肢「イ」が正しい組合せです。
解法ステップ
- 図の「プログラミング <--> 単体テスト」を見て、単体テストが最も小さい単位のテストであると確認する。
- 実線の上向き矢印(a → b → c)は「テストのレベルが上がっていく」流れを示すと解釈する。
- 破線矢印で各テスト(a,b,c)が設計フェーズ(内部設計・外部設計・要件定義)に対応していることを確認する。
- テスト種類の意味を思い出し、対応させる。
- 単体(モジュール単位)→ 結合(モジュール結合)→ システム(システム全体)→ 運用(実運用での検証)
- 選択肢の中で a=結合、b=システム、c=運用 を示すものを選ぶ(=イ)。
選択肢別の誤答解説
-
ア(a: 運用テスト / b: 結合テスト / c: システムテスト)
→ 運用テストが最下段の a にある点が逆。運用テストは最終段階で要件に対応するべきで、a はプログラミング直上(結合テスト相当)であり不適切。 -
ウ(a: システムテスト / b: 運用テスト / c: 結合テスト)
→ テストの順序が入れ替わっており、特に a(内部設計に対応)をシステムテストにするのはミスマッチ。システムテストは外部設計や要件に対応する上位のテスト。 -
エ(a: システムテスト / b: 結合テスト / c: 運用テスト)
→ aがシステムテストになっている点が誤り。a(内部設計に対応)はモジュール間の結合を確認する「結合テスト」がふさわしい。
よくある誤解
- 「結合テスト」と「システムテスト」を混同する
- 結合テストはモジュール同士の結合部分(つながり)を確認するテストです。システムテストはシステム全体が仕様どおり動くか(外部入出力や全体機能)を確認します。スコープが違います。
- 「運用テスト」と「受入テスト(受け入れテスト)」を同一視する
- 運用テスト(運用環境での動作や運用手順の確認)と、ユーザが要件を満たしているかを確認する受入テストは目的が近い場合もありますが、試験問題では「要件定義に対応する最終段階のテスト」として運用テストを想定することが多い点に注意。
補足コラム
テストの一般的な流れ(小→大)は次のイメージです。
単体テスト(モジュール個別) → 結合テスト(モジュール間の連携) → システムテスト(システム全体) → 運用テスト(実際の運用環境で検証)。
この流れは「V字モデル(Vモデル)」とも関連します。V字モデルは左側に要件・設計、右側にそれぞれ対応するテストを置く考え方です。左側の設計レベルに対応するテストは、右側でその設計が満たされているかを検証します(図問題はその考え方を簡略化したものです)。
単体テスト(モジュール個別) → 結合テスト(モジュール間の連携) → システムテスト(システム全体) → 運用テスト(実際の運用環境で検証)。
この流れは「V字モデル(Vモデル)」とも関連します。V字モデルは左側に要件・設計、右側にそれぞれ対応するテストを置く考え方です。左側の設計レベルに対応するテストは、右側でその設計が満たされているかを検証します(図問題はその考え方を簡略化したものです)。
簡単な例:スマホアプリを作るとき
- 単体テスト:ログイン機能の1つの関数が正しく動くか。
- 結合テスト:ログイン機能とユーザ情報取得機能が一緒に動いて正しく画面に表示されるか。
- システムテスト:アプリ全体でデータ保存や外部API連携が仕様どおりか。
- 運用テスト:実際のサーバやネットワークで運用手順を含め問題なく動くか。
FAQ
Q. 「運用テスト」は必ず最後に行うのですか?
A. 多くの場合、運用テストは実運用環境での最終確認なので最後に行います。ただし段階的リリースや現場での検証が並行することもあります。
A. 多くの場合、運用テストは実運用環境での最終確認なので最後に行います。ただし段階的リリースや現場での検証が並行することもあります。
Q. 「受入テスト」はここでのどれに対応しますか?
A. 受入(受け入れ)テストはユーザの要求(要件)に合致しているかを確認するテストで、図の c(要件定義に対応)や最終段階の運用テストに近い位置づけになります。試験文脈で用語が異なる場合は設問の定義に従って判断してください。
A. 受入(受け入れ)テストはユーザの要求(要件)に合致しているかを確認するテストで、図の c(要件定義に対応)や最終段階の運用テストに近い位置づけになります。試験文脈で用語が異なる場合は設問の定義に従って判断してください。
Q. テストで不具合が見つかったら開発に戻るのですか?
A. はい。小さい単位の不具合ならプログラミング段階へ戻して修正します。結合やシステムの段階で見つかった不具合は設計やモジュール修正が必要になり、上位工程へフィードバックされます(左上へ戻るイメージ)。
A. はい。小さい単位の不具合ならプログラミング段階へ戻して修正します。結合やシステムの段階で見つかった不具合は設計やモジュール修正が必要になり、上位工程へフィードバックされます(左上へ戻るイメージ)。
関連キーワード: システム開発プロセス、単体テスト、結合テスト、システムテスト、運用テスト、V字モデル、要件定義、外部設計、内部設計

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

