【りぐれっしょんてすと】

リグレッションテスト(回帰テスト) とは?

💡 直したつもりが「別のところが壊れた」を防ぐ
📌 このページのポイント
回帰テストのサイクル コード変更 新機能追加 バグ修正 回帰テスト実行 既存テスト全体を 再実行する 変更で壊れてないか確認 PASS 問題なし リリース FAIL デグレ検出 修正へ 回帰テストでチェックする範囲 変更箇所 新しいコード のテスト 影響範囲 変更に関連する 既存機能 全体テスト システム全体の 動作確認 自動化 CI/CDで自動 実行が理想
回帰テストのイメージ
ひよこ ひよこ

なんで毎回テストし直す必要があるの?

ペンギン先生 ペンギン先生

プログラムは複雑に絡み合っているから、Aを修正したらBに影響が出ることがあるんだ。「ログイン画面のバグを直したら、なぜか注文画面が動かなくなった」みたいなことは実際によく起きる。だから変更のたびに既存機能が正常か確認するのがリグレッションテストだよ

ひよこ ひよこ

毎回全部テストするの?大変じゃない?

ペンギン先生 ペンギン先生

フルリグレッション(全テスト実行)は時間がかかるから、変更の影響範囲を分析して対象を絞ることも多いよ。ただし自動テストが整備されていれば、CIパイプラインで毎コミット時にフルリグレッションを回すことも可能。自動化がリグレッションテストの生命線だね

ひよこ ひよこ

手動テストだとどうなる?

ペンギン先生 ペンギン先生

毎回手動で全機能をテストするのは現実的ではないから、テスト範囲が狭くなりがち。結果として「テストしなかった部分にバグがあった」というリスクが高まる。だからこそ自動テストへの投資は長期的にペイするんだよ

ひよこ ひよこ

リグレッションテストの自動化のコツは?

ペンギン先生 ペンギン先生

まず「壊れたら一番困る機能」から自動化するのが鉄則。全部自動化しようとすると挫折するから、重要な業務フロー(ログイン、決済、データ登録など)のE2Eテストを先に整備する。あとはテストの実行時間を短くすること。遅いテストは実行されなくなるからね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リグレッションテスト」って出てきたら「変更で既存機能が壊れていないか確認するテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Regression Testing」 = 回帰テスト
💬 Regression(退行・後戻り)。ソフトウェアが以前の状態に「後退」していないか確認するテストだよ
← 用語集にもどる