【りぐれっしょんてすと】
リグレッションテスト(回帰テスト) とは?
💡 直したつもりが「別のところが壊れた」を防ぐ
📌 このページのポイント
- Regression(後退・退行)を検出するテスト
- バグ修正や機能追加のたびに実施すべきテスト
- 自動テスト(CI/CD)との相性が非常に良い
- テスト範囲の選定(影響範囲分析)がポイント
なんで毎回テストし直す必要があるの?
プログラムは複雑に絡み合っているから、Aを修正したらBに影響が出ることがあるんだ。「ログイン画面のバグを直したら、なぜか注文画面が動かなくなった」みたいなことは実際によく起きる。だから変更のたびに既存機能が正常か確認するのがリグレッションテストだよ
毎回全部テストするの?大変じゃない?
フルリグレッション(全テスト実行)は時間がかかるから、変更の影響範囲を分析して対象を絞ることも多いよ。ただし自動テストが整備されていれば、CIパイプラインで毎コミット時にフルリグレッションを回すことも可能。自動化がリグレッションテストの生命線だね
手動テストだとどうなる?
毎回手動で全機能をテストするのは現実的ではないから、テスト範囲が狭くなりがち。結果として「テストしなかった部分にバグがあった」というリスクが高まる。だからこそ自動テストへの投資は長期的にペイするんだよ
リグレッションテストの自動化のコツは?
まず「壊れたら一番困る機能」から自動化するのが鉄則。全部自動化しようとすると挫折するから、重要な業務フロー(ログイン、決済、データ登録など)のE2Eテストを先に整備する。あとはテストの実行時間を短くすること。遅いテストは実行されなくなるからね
まとめ:ざっくりこれだけ覚えればOK!
「リグレッションテスト」って出てきたら「変更で既存機能が壊れていないか確認するテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Regression Testing」 = 回帰テスト
💬 Regression(退行・後戻り)。ソフトウェアが以前の状態に「後退」していないか確認するテストだよ