本文へスキップ

平成22年度 秋期 ITパスポート試験 問48

この問題の解説と、これまでの解答の記録です。

問48
頻出度★★★

システム開発プロセスを要件定義, 外部設計, 内部設計, プログラミングに分け, テストの種類を運用テスト, 結合テスト, システムテスト, 単体テストに分けたとき, 図の a~c に入れる字句の適切な組合せはどれか。 図は, 左側にシステム開発プロセスの工程, 右側に対応するテストの種類を配置したものである。破線の矢印 (←---→) が「対応する工程」を, 実線の矢印 (←——) が「システム開発プロセスの流れ」を示す。

システム開発プロセス (左)対応するテスト (右)
要件定義c
外部設計b
内部設計a
プログラミング単体テスト

実線の矢印は, 左側を 要件定義 → 外部設計 → 内部設計 → プログラミング と下向きに進み, 続いて右側を 単体テスト → a → b → c と上向きに進む。破線の矢印は, 左右で「対応する工程」どうしを結んでいる。

出典 平成22年度 秋期 ITパスポート試験 問48
解説

問 48

  • 不正解ア

    a=運用テスト, b=結合テスト, c=システムテスト。図から導かれる対応は a=結合テスト, b=システムテスト, c=運用テスト なので、a・b・c の 3 つとも対応がずれている (本来 a に入るべき結合テストが b に、b に入るべきシステムテストが c に、c に入るべき運用テストが a に置かれている)。とくに、最後に実施すべき運用テストが最下段の a に来ている点が決定的で、右側の実線の上向きの流れ (単体 → 結合 → システム → 運用) と矛盾する。また a は破線で 内部設計 と結ばれているのに、運用テストが検証するのは内部設計ではなく 要件定義 で決めた業務要求なので、破線の対応関係にも合わない。

  • イ

    正解 正解は イ (a=結合テスト, b=システムテスト, c=運用テスト)。図は V 字モデル (V モデル) を表しており、破線は「対応する工程」、すなわち左側の各開発工程と、その工程で決めた内容を検証する右側のテストを結んでいる。まず既に埋まっている プログラミング⇔単体テスト が手がかりで、単体テストはプログラミングで作った個々のモジュールが仕様どおり動くかを確かめる。同じ考え方を上へ広げる。破線で 内部設計 と結ばれる a は 結合テスト である。内部設計ではプログラムの内部構造とモジュール間の受渡し (インタフェース) を決めるので、モジュールを組み合わせてその連携を確かめる結合テストが対になる。破線で 外部設計 と結ばれる b は システムテスト である。外部設計では利用者から見える画面・帳票・機能や性能要件を決めるので、システム全体を通してそれらが仕様どおりかを確かめるシステムテストが対になる。破線で 要件定義 と結ばれる c は 運用テスト である。要件定義では業務上どんな要求を満たすべきかを決めるので、実際の業務手順・実データに近い環境で利用者が使えるかを確かめる運用テストが対になる。右側の実線の上向き矢印も 単体テスト → 結合テスト → システムテスト → 運用テスト となり、検証範囲がモジュール → モジュール間 → システム全体 → 業務全体 へと段階的に広がる実施順と一致する。

  • 不正解ウ

    a=システムテスト, b=運用テスト, c=結合テスト。こちらも 3 つとも対応がずれている。とくに c=結合テスト が誤りで、c は破線で 要件定義 と結ばれているが、結合テストが検証するのは 内部設計 で決めたモジュール間のインタフェースであり、業務要求を確かめるものではない。右側の実線をたどると 単体 → システム → 運用 → 結合 という実施順になり、最も範囲の狭い結合テストが最後に来てしまう点でも、検証範囲が段階的に広がるという V 字モデルの原則に反する。

  • 不正解エ

    a=システムテスト, b=結合テスト, c=運用テスト。c=運用テスト は正しいが、a と b が入れ替わっている。a は破線で 内部設計 と結ばれているので 結合テスト、b は破線で 外部設計 と結ばれているので システムテスト が正しい。内部設計 (プログラムの内部構造・モジュール間の受渡し) を検証するのが結合テスト、外部設計 (利用者から見える機能・画面・性能) を検証するのがシステムテストという対応を取り違えたのが エ である。右側の実施順も 単体 → システム → 結合 となり、システム全体を確かめた後にモジュール間を確かめる不自然な順序になってしまう。

ここがポイント
  • V 字モデルの工程対応: 要件定義⇔運用テスト、外部設計⇔システムテスト、内部設計⇔結合テスト、プログラミング⇔単体テスト。左側の各工程で決めた内容を、左右対称の位置にあるテストで検証するという 1 対 1 の関係を覚えておく。
  • テストは範囲の狭いものから広いものへ、下から上へ実施する: 単体テスト (モジュール単体) → 結合テスト (モジュール間の連携) → システムテスト (システム全体の機能・性能) → 運用テスト (実業務に近い環境で利用者が確認)。この順序を知っていれば、破線の対応関係と実線の上向きの流れの両方から選択肢を絞り込める。
用語

解答の記録