ITパスポート 2013年 秋期 問35
問題文
システムテストで実施する作業の説明として、適切なものはどれか。
選択肢
ア:検出されたバグを修正したときには、バグを検出したテストケースだけをやり直す。
イ:正常な値を入力したときのテストを優先し、範囲外の値の入力や必須項目が未入力のときのテストは省略する。
ウ:設計書の仕様に基づくだけでなく、プログラムのコードを理解し、不具合を修正しながらテストする。
エ:ソフトウェアの機能的なテストだけでなく、性能などの非機能要件もテストする。(正解)
🔒 解説は解答すると表示されます
システムテストで実施する作業の説明【ITパスポート 解説】
正解の理由
選択肢エが正しい理由は、システムテストはソフトウェア全体を統合した状態で行う検証だからです。ここでは「機能(何をするか)」だけでなく、「性能や信頼性などの非機能要件(どう動くか)」も確認します。非機能要件とは、動作速度や同時利用時の耐性、セキュリティ、可用性(いつでも使えるか)など、機能以外の品質を示す要件です。システム全体が要求を満たすかは、これら非機能面の評価なしには判断できません。
解法ステップ
- 「システムテスト」がどの段階かを思い出す。システムテストは単体(プログラム単体)→結合(部品間の連携)→システム(全体)→受入(利用者確認)の順で行われる、全体を検証する段階である。
- 各選択肢がどのテスト段階や作業に当てはまるかを判定する。
- 「非機能」「全体」「修正しながら」などのキーワードで選択肢を照合する。
- 全体を評価するうえで欠かせない項目(性能・負荷・セキュリティ等)を含むものを選ぶ。
この流れで読むと、機能だけでなく性能などもテストすると書いてある選択肢(エ)が最も適切だと分かります。
選択肢別の誤答解説
-
ア: 検出されたバグを修正したときには、バグを検出したテストケースだけをやり直す。
→ 誤り。バグ修正でほかの部分に影響が出ていないかを確認する「回帰テスト(リグレッションテスト)」が必要です。関係するテストケースや変更範囲に関連するテストを広めに再実行します。発見したテストケースだけでは不十分なことが多いです。 -
イ: 正常な値を入力したときのテストを優先し、範囲外の値の入力や必須項目が未入力のときのテストは省略する。
→ 誤り。範囲外入力や未入力などの「異常系テスト(ネガティブテスト)」は重要です。実際の利用ではユーザーや外部システムが誤った入力をする可能性が高く、それが重大な障害につながるため、省略してはいけません。 -
ウ: 設計書の仕様に基づくだけでなく、プログラムのコードを理解し、不具合を修正しながらテストする。
→ 誤り。テストの目的は検出(発見)であり、コード修正は通常は開発者の仕事です。テスターがコードを修正すると独立性が失われ、テストの客観性が下がります。コード理解(ホワイトボックステスト的な知識)は有用でも、テスト中に修正してしまうのは適切ではありません。 -
エ: ソフトウェアの機能的なテストだけでなく、性能などの非機能要件もテストする。
→ 正しい。システムテストは機能面と非機能面の両方を含み、システムが要求どおりに動作するか総合的に検証します。
よくある誤解
-
バグを見つけたら「そのテストだけ」やり直せば良い
- 実際は修正で別の機能に悪影響が出る可能性があり、関連する回帰テストを行います。修正の影響範囲を考えてテストを選ぶことが重要です。
-
システムテストは「機能の確認」だけで十分
- 動作の速さや同時アクセス耐性、セキュリティなど非機能要件が満たされなければ実用に耐えません。ユーザー体験や運用コストに直結します。
-
テスターがバグを直しても良い
- 小さな修正でもテスターが行うと検証の独立性が失われます。通常は不具合報告(バグレポート)をして開発チームに修正してもらい、テスターは修正後に再検証します。
補足コラム
-
非機能要件の具体例
- 性能(Performance): ある操作の応答時間や処理量(例:ページの表示は2秒以内)
- 負荷(Load): 同時アクセス1000ユーザーでの動作確認
- ストレス(Stress): 想定を超える負荷での挙動(異常時の復旧など)
- セキュリティ: 不正アクセスやデータ漏えいへの対策
- 可用性(Availability): サービスが停止しない割合(稼働率)
- これらは自動負荷ツール(例: JMeter)や専門的なテスト計画で評価します。
-
テストの仕分け(覚え方)
- 単体テスト(Unit test): 部品ごと(開発者実施)
- 結合テスト(Integration test): 部品間のやり取り
- システムテスト(System test): 全体を統合して評価(エで問われる領域)
- 受入テスト(Acceptance test): 利用者や顧客が承認するテスト
-
回帰テスト(Regression test)について
- 修正や機能追加のたびに、既存機能が壊れていないか確認するテスト。自動化すると効率的です。
FAQ
Q1: システムテストは誰が行うのですか?
A1: 通常は開発チームとは別のテストチームや品質保証(QA)部門が実施します。独立した視点で全体を評価するためです。
A1: 通常は開発チームとは別のテストチームや品質保証(QA)部門が実施します。独立した視点で全体を評価するためです。
Q2: 非機能テストは必ず必要ですか?
A2: 必要です。特に性能、可用性、セキュリティは運用に直結するため、規模や利用条件に応じて優先順位を付けて実施します。
A2: 必要です。特に性能、可用性、セキュリティは運用に直結するため、規模や利用条件に応じて優先順位を付けて実施します。
Q3: 小さなシステムでも非機能テストは行うべきですか?
A3: 規模に応じた範囲で行うべきです。たとえば同時ユーザー数が少なければ簡易な負荷確認だけでも有用です。やらないリスクとコストを比較して判断します。
A3: 規模に応じた範囲で行うべきです。たとえば同時ユーザー数が少なければ簡易な負荷確認だけでも有用です。やらないリスクとコストを比較して判断します。
関連キーワード: システムテスト、非機能要件、性能テスト、回帰テスト、負荷テスト、ストレステスト、単体テスト、結合テスト、セキュリティテスト、テストケース

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

