情報処理安全確保支援士 2016年 秋期 午前2 問22
問題文
システム開発で行うテストについて、テスト要求事項を定義するアクティビティと対応するテストの組合せのうち、適切なものはどれか。

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
設計工程とテスト対応【午前2解説】
正解の理由
選択肢ウが正しい理由は、設計工程の粒度と対応するテストレベルがV字モデル(検証・妥当性確認の考え方)に沿って整合しているためです。具体的には、
- システム方式設計段階で定義するテスト要求は、サブシステムやインターフェース間の結合確認を行う「システム結合テスト」に対応します。
- ソフトウェア方式設計段階で定義するテスト要求は、ソフトウェア内のモジュール間連携を検証する「ソフトウェア結合テスト」に対応します。
- ソフトウェア詳細設計段階で定義するテスト要求は、個々のプログラム単位(ユニット)の振る舞いを検証する「ソフトウェアユニットテスト」に対応します。
以上の対応関係は、設計の抽象度が高いほど広域な結合確認(システムレベル)に、抽象度が低い(詳細)ほど狭い単位の単体確認に結び付くという原則に合致します。したがって選択肢ウの組合せが妥当です。
解法ステップ
- 各テストの目的と対象粒度をおさえる(運用テスト/システム結合/ソフトウェア結合/ユニット)。
- 各設計工程(システム方式/ソフトウェア方式/ソフトウェア詳細)の「対象範囲=粒度」を確認する。
- 粒度の整合性で対応づける(上位設計→上位の結合テスト、詳細設計→単体テスト)。
- 選択肢を順に照合し、設計工程とテスト対象が一致しないものを除外する。
選択肢別の誤答解説
- ア:誤り
- システム方式設計に「運用テスト」を対応させている点が不適切です。運用テストは運用環境での受入・運用確認に近い試験であり、システム方式設計で定義すべきはシステム間結合の検証(システム結合テスト)です。また、ソフトウェア詳細設計が「ソフトウェア結合テスト」になっている点も粒度不一致で、詳細設計はユニットテストが適切です。
- イ:誤り
- この選択肢はシステム方式設計に「運用テスト」を対応させていますが、システム方式設計で定義するべきはシステム結合テストの要求です。運用テストは運用フェーズで行う受入や本番稼働確認に近い試験であり、設計段階でのシステム結合の仕様確認とは目的が異なります。その他の列(ソフトウェア方式設計→ソフトウェア結合、ソフトウェア詳細設計→ユニット)は個別では妥当でも、行全体としてはシステム方式設計の誤対応で不適切です。
- ウ:正しい(解説)
- システム方式設計→システム結合テスト、ソフトウェア方式設計→ソフトウェア結合テスト、ソフトウェア詳細設計→ソフトウェアユニットテストという対応は、設計の抽象度とテスト対象の粒度が整合しており、テスト要求事項を定義するアクティビティに適合します。
- エ:誤り
- ソフトウェア方式設計が「ソフトウェアユニットテスト」になっている点が不適切です。方式設計はモジュール間のインタフェースや構成を定める段階であり、その段階でのテスト要求はソフトウェア結合テストに向けるべきです。ソフトウェア詳細設計が「ソフトウェア結合テスト」になっている点も逆転しており、詳細設計はユニットテストに結び付けるのが妥当です。
よくある誤解
- 運用テストと受入テストを混同する:運用テストは運用段階での稼働確認や手順検証を含み、設計段階で定義する「結合テスト」とは目的が異なります。
- 「結合テスト」の対象範囲をあいまいにする:ソフトウェア結合テストはソフトウェア内部のモジュール連携、システム結合テストは複数システム/サブシステム間の連携を検証します。どの設計段階でどちらを定義するかを明確に区別しましょう。
- 設計名とテスト粒度を逆に結び付ける:方式設計はアーキテクチャ/インタフェース中心(結合テスト向け)、詳細設計は実装単位(ユニットテスト向け)という基本を忘れないこと。
補足コラム
Vモデルでは左側に要求・設計工程、右側にそれぞれに対応する検証工程が並びます。上位要求ほど検証は受入やシステムレベル、下位設計ほど単体テストやモジュール単位の確認になります。設計段階で「どのレベルのテスト要求を定義するか」を明示しておくと、テスト項目の抜け漏れや試験範囲の混乱を防げます。
FAQ
Q1: システム結合テストとソフトウェア結合テストの違いは?
A1: システム結合テストは複数のシステムやサブシステム間のインタフェース・業務フロー全体の検証。ソフトウェア結合テストは同一ソフトウェア内のモジュールやコンポーネント間の連携を検証します。
A1: システム結合テストは複数のシステムやサブシステム間のインタフェース・業務フロー全体の検証。ソフトウェア結合テストは同一ソフトウェア内のモジュールやコンポーネント間の連携を検証します。
Q2: 運用テストはどの段階で定義・実施する?
A2: 運用テスト(運用確認)は運用フェーズに近い受入や実運用条件での検証です。設計段階では運用要件(運用手順や監視要件)を定義しますが、運用テスト自体は本番または運用準備段階で実施します。
A2: 運用テスト(運用確認)は運用フェーズに近い受入や実運用条件での検証です。設計段階では運用要件(運用手順や監視要件)を定義しますが、運用テスト自体は本番または運用準備段階で実施します。
Q3: イテレーティブ開発ではどう対応する?
A3: 短い反復ごとに小さなVモデルを回すイメージで、各反復ごとにその反復の設計粒度に応じた単体・結合・システム的なテスト要求を定義します。粒度原則は変わりません。
A3: 短い反復ごとに小さなVモデルを回すイメージで、各反復ごとにその反復の設計粒度に応じた単体・結合・システム的なテスト要求を定義します。粒度原則は変わりません。
関連キーワード: Vモデル、単体テスト、結合テスト、システム結合、運用テスト、方式設計、詳細設計、テスト要求事項

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

