基本情報技術者 2014年 秋期 午前(科目A) 問49
問題文
ソフトウェアのテストの種類のうち、ソフトウェア保守のために行った変更によって、影響を受けないはずの箇所に影響を及ぼしていないかどうかを確認する目的で行うものはどれか。
選択肢
ア:運用テスト
イ:結合テスト
ウ:システムテスト
エ:リグレッションテスト(正解)
ソフトウェアのテストの種類(保守変更の影響確認)【午前2 解説】
要点まとめ
- 結論:保守や修正で加えた変更が本来影響しないはずの他機能に悪影響を与えていないかを確認するのはリグレッションテストです。
- 根拠:リグレッションテストは既存機能が「回帰(後退)していないか」を検証し、改修が副作用を生んでいないことを確認する目的のテストです。
- 差がつくポイント:変更箇所だけでなく依存関係や既存シナリオを優先的に自動化し、迅速に回帰確認できる仕組みを作ることが合格後の実務で差になります。
正解の理由
設問は「保守のために行った変更によって、影響を受けないはずの箇所に影響を及ぼしていないかどうかを確認する目的」で行うテストを問うています。
リグレッションテスト(回帰テスト)はまさに「修正や追加が既存の機能や動作を壊していないか」を検証するために行うテストであり、この目的に完全に合致します。
リグレッションテスト(回帰テスト)はまさに「修正や追加が既存の機能や動作を壊していないか」を検証するために行うテストであり、この目的に完全に合致します。
よくある誤解
- 「結合テストやシステムテストも同じ」と混同する:結合・システムテストは主に統合や要件適合の検証であり、保守後の影響確認という観点とは目的が異なります。
- 「リグレッションテストは全てのテストをもう一度やること」と考える:全件繰り返すのはコストが高く、リスクベースや自動化で必要なケースを選択して実行するのが実務の基本です。
解法ステップ
- 問題文からキーワードを抽出:「保守のための変更」「影響を受けないはずの箇所に影響を及ぼしていないか」を確認。
- 各テストの目的を整理:運用テスト=運用条件確認、結合テスト=モジュール間連携確認、システムテスト=要求仕様全体の検証、リグレッション=回帰(副作用)確認。
- キーワードと照合して最も適合する名称を選ぶ:副作用・既存機能確認の語と合致するのはリグレッションテストです。
選択肢別の誤答解説
- ア: 運用テスト
運用テストは運用手順や運用環境での動作確認や運用負荷・監視の検証が中心で、保守変更による既存機能の回帰確認が主目的ではありません。 - イ: 結合テスト
結合テストはモジュール間のインタフェースや連携の不具合を検出することが主眼で、変更が既存機能全体に波及していないかを網羅的に確認する目的とは異なります。 - ウ: システムテスト
システムテストはシステム全体が要求仕様を満たすかを評価するもので、新規導入やリリース前の総合検証に向きますが、保守変更の“回帰確認”が直接の定義ではありません。 - エ: リグレッションテスト
リグレッションテスト(回帰テスト)は、修正・保守が既存の動作や機能を壊していないかを確認するために行うテストで、設問の目的に一致します。
補足コラム
- 回帰テストの実践:全テストの再実行はコストが高いため、変更影響範囲に基づく選択的回帰テストや優先度の高いテストケースの自動化が一般的です。CI(継続的インテグレーション)パイプラインで自動化された回帰スイートを組み込むと迅速な検証が可能になります。
- 回帰テストの種類:ユニットレベルの回帰、結合レベルの回帰、システムレベルの回帰、スモークテスト(簡易確認)など目的と粒度に応じて使い分けます。
- ツール例:単体テストフレームワーク(JUnit、pytest)、UI自動化(Selenium)、CIツール(Jenkins、GitHub Actions)を組み合わせると効果的です。
FAQ
Q1: リグレッションテストとリテスト(再テスト)は同じですか?
A1: 異なります。リテストは特定の不具合修正箇所を再確認することで、リグレッションは修正が他箇所に悪影響を及ぼしていないか全体を確認することです。
A1: 異なります。リテストは特定の不具合修正箇所を再確認することで、リグレッションは修正が他箇所に悪影響を及ぼしていないか全体を確認することです。
Q2: どのくらいの頻度で回帰テストを行うべきですか?
A2: 小さな修正でも影響範囲がある場合は実行しますが、実務ではコミット単位、プルリクエスト時や夜間バッチでの自動実行など、変更頻度とリスクに応じて設定します。
A2: 小さな修正でも影響範囲がある場合は実行しますが、実務ではコミット単位、プルリクエスト時や夜間バッチでの自動実行など、変更頻度とリスクに応じて設定します。
Q3: 全件回帰テストが必要な場合とは?
A3: 高リスクのクリティカルなリリースや、設計変更で広範な依存が疑われる場合はフルスイートの実行が推奨されますが、通常は選択的実行で対応します。
A3: 高リスクのクリティカルなリリースや、設計変更で広範な依存が疑われる場合はフルスイートの実行が推奨されますが、通常は選択的実行で対応します。
関連キーワード: リグレッションテスト、回帰テスト、回帰テスト自動化、結合テスト、システムテスト、運用テスト、テスト設計、テストケース、CI、継続的インテグレーション、テストカバレッジ、保守テスト

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

