【かいきてすと】

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

最終更新:
💡 変更の影響で、既存の動作が壊れていないか確かめる

ソフトウェアや環境の変更後に、変更が既存の動作へ悪影響を与えていないか調べるテスト。修正した不具合そのものが直ったかを確かめる確認テストとは、目的が異なる。

📌 このページのポイント
変更で既存の動作に悪影響がないか確認変更コード・環境回帰テスト範囲を選び実行合格他の確認へ失敗原因を調べる修正後に再確認する流れの例不具合が直ったか:確認テスト周囲への悪影響は:回帰テスト合格は全ての不具合がないという保証ではない
変更→テスト→合格/失敗と再確認の既存の流れを活かした図です。緑は実行した検査の合格、赤は失敗。合格だけで自動的にデプロイできるという説明を取り除きました。
ひよこ ひよこ
回帰テストって何のためにやるの?
ペンギン先生 ペンギン先生
変更によって既存の動作へ悪影響が出ていないか調べるためだよ。コードの修正や機能追加だけでなく、環境の変更も対象になり得る。元のテストを再実行することが多いけれど、必要に応じてテスト自体も見直すんだ
ひよこ ひよこ
修正したバグが直ったか調べるのと同じ?
ペンギン先生 ペンギン先生
目的を分けて考えるよ。ログインの不具合が直ったかは確認テスト。同じ部品を使うパスワードリセットなどに悪影響がないかは回帰テスト。同じ機能の周囲にも、別の部品や接続先にも影響が出ることがあるんだ
ひよこ ひよこ
毎回全部のテストをやり直すの?
ペンギン先生 ペンギン先生
変更の影響とリスク、時間や費用を考えて範囲を決めるよ。関連するテストを選んだり、重要なものを先に実行したりする。ただし選ばなかった範囲の問題は見逃す可能性がある。範囲を絞れば必ず十分、とは言えないんだ
ひよこ ひよこ
CIで合格すれば本番も安全?
ペンギン先生 ペンギン先生
CIで繰り返す回帰テストを自動化できるよ。失敗時にマージを止める仕組みも設定できる。ただ、実行したケースと環境での確認だから、全ての不具合がないという保証ではない。リリースの判断には他の確認も必要だね
ひよこ ひよこ
テストは増やし続ければいい?
ペンギン先生 ペンギン先生
見つかった不具合を再検出できるケースは役立つよ。一方で、仕様が変われば期待結果やケースの更新も必要。重複や実行時間も見直す。手作業の回帰テストもあり、全部を自動化しないと回帰テストと呼べないわけではないんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「回帰テスト」って出てきたら「変更で既存の動作が壊れていないか確かめるテスト」と思えばだいたいOK!
📖 おまけ:英語の意味
「Regression Testing」 = 回帰テスト・退行テスト
💬 Regressionは「後退」という意味で、品質が後退していないかを確認するテストだから回帰テストって呼ばれるんだよ

参考資料

← 用語集にもどる