メインコンテンツへ
開発技術ソフトウェア開発

ソフトウェアにバグ修正を加えた後に実施するリグレッションテスト(回帰テスト)の目的として、最も適切なものはどれか。

ア.修正した箇所のコードが、すべての命令を少なくとも1回実行するように設計されたテストケースで検証されているかを確認する。
イ.修正によって、これまで正常に動作していた既存の機能に新たな不具合が生じていないかを確認する。正解
ウ.修正後のソフトウェアが、ユーザの要求事項や業務要件を満たしているかを利用者の視点で確認する。
エ.修正した機能が、連携する他のモジュールと正しくインタフェースできるかを確認する。

解説

リグレッションテストとは、「直した場所以外が壊れていないか」を確認する検査です。配管を修理したら、隣の壁に新たなヒビが入っていないか点検する――そのイメージです。

なぜ イ が正解か

バグを修正したり機能を変更したりすると、その影響が思わぬ既存機能に波及し、「前は動いていたのに突然壊れた」という退行(デグレード)が発生することがあります。リグレッションテストは、過去に合格したテストケースを再実行することで、修正の副作用による壊れを早期に検出します。「修正箇所の正しさ」ではなく「修正による波紋の有無」を見るのが本質です。

なぜ ア は間違いか

これはホワイトボックステストにおけるC0カバレッジ(命令網羅)の確認です。「コードの全行を通過したか」というテスト設計の網羅性を測る観点であり、修正後に既存機能が壊れていないかという退行確認とは目的が異なります。

なぜ ウ は間違いか

これは受け入れテスト(UAT)の説明です。「ユーザや顧客が業務要件を満たしているか最終確認する」という工程で、開発の締めくくりに行います。リグレッションテストは開発・修正のたびに繰り返す内部品質確認であり、視点も頻度も異なります。

なぜ エ は間違いか

これは結合テスト(統合テスト)の説明です。複数モジュールをつなぎ合わせてインタフェースや連携を検証するフェーズで、主に開発初期~中期に実施します。リグレッションテストは修正のたびに既存テストを再実行するものであり、モジュール間連携の初回確認とは区別されます。

出典: AI生成問題(学習用)