開発技術

基本情報技術者試験回帰テスト」の問題

マネジメント系開発技術難易度:normal
運用中のシステムにある機能の不具合を修正した。この修正によって、これまで正常に動作していた他の機能に思わぬ悪影響(デグレード)が生じていないかを確認するために行うテストとして最も適切なものはどれか。
修正の影響範囲を含む既存機能を再実行する回帰テスト(リグレッションテスト)を行う
修正した機能の入出力だけを確認する単体テストのみを行い、他機能の確認は省略する
想定を超える負荷をかけて限界を測る負荷テストを行う
利用者が業務要件の充足を確認する受入テストのみを行う
正解
修正の影響範囲を含む既存機能を再実行する回帰テスト(リグレッションテスト)を行う

回帰テスト(リグレッションテスト)は、変更や修正の後に、それまで正常だった既存機能が壊れていないか(デグレードしていないか)を確認するために既存のテストを再実行するテストである。設問の『修正による他機能への悪影響の有無を確認』という目的に正確に合致する。

?選択肢ごとの解説

ア ○回帰テスト(リグレッションテスト)は、変更や修正の後に、それまで正常だった既存機能が壊れていないか(デグレードしていないか)を確認するために既存のテストを再実行するテストである。設問の『修正による他機能への悪影響の有無を確認』という目的に正確に合致する。
イ ×修正機能だけの単体テストでは、修正が他の機能へ及ぼした副作用を検出できず、デグレードの確認という目的を満たさない。
ウ ×負荷テストは性能や限界を測るテストであり、機能修正による既存機能の劣化を確認する目的のテストではない。
エ ×受入テストは業務要件の充足を利用者が確認するテストで、修正に伴う既存機能の劣化を体系的に検証する回帰テストとは目的が異なる。

くわしく

保守や機能追加では、ある変更が無関係に見える箇所を壊すデグレードが起こりうる。回帰テストは過去に作ったテスト資産を再実行してこれを防ぐ営みで、自動テストと相性がよく、CI/CDの中で繰り返し実行される。対象は修正箇所だけでなく影響範囲を含む既存機能であり、単体テストや受入テストとは『既存の正常性を守る』という狙いで区別される。

本番での押さえどころ

試験のコツ

『修正後』『既存機能が壊れていないか』『デグレード確認』とあれば回帰テストと判断する。

覚え方

回帰=元へ帰る。直した後に元どおり動くか確かめる、と語の意味で覚える。

よくある誤り

回帰テストを修正箇所だけのテストと誤解しがち。狙いは既存機能の正常性維持であり、影響範囲を含めて再実行する点が要点である。

開発技術の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0093

【基本情報技術者試験】回帰テストの問題 — 解答・解説|ukamiru 過去問