回帰テストとは(全体像)
回帰テストとは、システムを直したあとに、「直したことで、もともと正しく動いていた機能が、おかしくなっていないか」を確かめるテストのこと。
システムは複雑につながっているので、ある部分を直すと、思わぬ別の部分が動かなくなることがある。これをデグレード(劣化)という。回帰テストは、このデグレードを見つけて防ぐためのものだ。
ここで一番の勘違いポイント。回帰テストは「新しく追加した機能のテスト」ではない。あくまで、もともと動いていた既存の機能が、修正の影響でこわれていないかを確かめるのが目的だ。
詳しく:いつ行うか、自動化
ここが心臓部。回帰テストの要点を表で押さえよう。
回帰テストの要点
| 観点 | 中身 |
|---|---|
| 目的 | 修正で、既存機能に悪影響(デグレード)が出ていないか確かめる |
| いつ | システムを修正するたびに行う |
| やり方 | くり返しが多いので、自動化(CI/CDと連携)が現代の標準 |
回帰テストは、修正のたびにくり返し行う。毎回、同じような確認を手作業でやると大変なので、自動でテストを動かす(自動化)のが今の主流だ。とくに、こまめに修正・配信する開発(CI/CD)と相性がよい。
ここでもう1つの注意。回帰テストは「手作業でしかできない」わけではない。むしろ自動化が現代の標準で、ツールを使って効率よくくり返す。「手動だけ」と思い込むと誤りになる。
わかりやすく言い換えると
身近なたとえで整理しよう。
回帰テストは、「家の一部を直したあと、ほかの場所がこわれていないか点検する」イメージ。たとえば、キッチンを直したら、念のため水道や電気もちゃんと使えるか確かめる。要するに、直したついでに、もとから使えていた部分を再点検する、ということだ。
「新機能のテスト」ではない、というのは、点検するのは新しく付けた設備ではなく、もとからあった設備だということ。つまり、既存の機能を守るためのテストだ。
自動化が標準というのは、毎回手で点検すると大変なので、自動で回せるようにすること。つまり、ツールにくり返し確認させる、というイメージだ。
試験のツボ
🔴 一番出る:回帰テストの目的
①修正で、既存機能に悪影響(デグレード)が出ていないか確かめる
②もともと動いていた機能を守るためのテスト
🔴 次に出る:新機能テストではない
①新しく追加した機能のテストではない
②あくまで既存機能への影響を確かめる
🟡 押さえると安定:自動化
①修正のたびにくり返すので、自動化が現代の標準
②CI/CDと連携して、効率よく回す
よくある間違い
①「回帰テストとは、新しく追加した機能を確かめるテストだ」→ ✗ 回帰テストは、修正による既存機能への影響(デグレード)を確かめるもの。
②「回帰テストは、手作業でしか行えない」→ ✗ 自動化が現代の標準。ツールでくり返し効率よく行う。
③「回帰テストは、最初に1回だけ行えばよい」→ ✗ システムを修正するたびに、くり返し行う。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(回帰テストの目的)
回帰テストに関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤の時刻を記録して、毎月の給与を計算するためのしくみである
- 修正により、動いていた機能に悪影響が出ていないか確かめるテストである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指している
- 新しく追加する機能を、初めて作るための設計作業のことを指している
解答は 2 だよ。
回帰テストは、修正により、もともと動いていた機能に悪影響が出ていないか確かめるテストだよ。デグレードを防ぐのがねらいなんだ。
選択肢1は給与計算、選択肢3は請求書の事務、選択肢4は新機能の設計で、どれも違うよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✓ | 既存機能への悪影響を確かめるで正しい |
| 3 | ✗ | 請求書の事務の話 |
| 4 | ✗ | 新機能の設計ではない |
オリジナル問題2(新機能テストではない)
回帰テストが確かめる対象に関する次の記述のうち、最も適切なものはどれか。
- 新しく追加した機能だけを、初めて確かめることを目的にしている
- 社員の給与を計算する処理だけを、確かめることを目的にしている
- 取引先へ請求書を郵送する事務だけを、確かめることを目的にしている
- 新機能ではなく、もともと動いていた既存機能への影響を確かめる
解答は 4 だよ。
回帰テストは、新機能ではなく、もともと動いていた既存機能への影響を確かめるものだよ。新しい機能のテストと混同しないでね。
選択肢1の「新機能だけ」、選択肢2の給与計算、選択肢3の請求書の事務は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 新機能だけのテストではない |
| 2 | ✗ | 給与計算の処理ではない |
| 3 | ✗ | 請求書の事務ではない |
| 4 | ✓ | 既存機能への影響を確かめるで正しい |
オリジナル問題3(自動化)
回帰テストのやり方に関する次の記述のうち、最も適切なものはどれか。
- 回帰テストは、手作業でしか行えないものだと決められている
- 回帰テストは、最初に1回だけ行えばよいとされているものである
- くり返しが多いので、自動化が現代の標準的なやり方とされている
- 回帰テストは、社員の給与を計算するために行うものだとされている
解答は 3 だよ。
回帰テストは、くり返しが多いので、自動化が現代の標準的なやり方だよ。CI/CDと連携して効率よく回すんだ。
選択肢1の「手作業でしか」、選択肢2の「1回だけ」、選択肢4の給与計算は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 自動化が現代の標準 |
| 2 | ✗ | 修正のたびにくり返す |
| 3 | ✓ | 自動化が現代の標準で正しい |
| 4 | ✗ | 給与計算のためではない |
まとめ
押さえどころ
- 🔴 回帰テスト = 修正で、もともと動いていた機能に悪影響(デグレード)が出ていないか確かめるテスト。
- 🔴 新機能テストではない = 新しい機能ではなく、既存機能への影響を確かめる。
- 🟡 自動化 = 修正のたびにくり返すので、自動化が現代の標準。CI/CDと連携する。
次に学ぶ
- テスト種類(UT/IT/ST/UAT) ── 開発段階ごとのテスト。回帰テストは、修正のたびにこれらを再確認する形でも行う。
- DevOps・CI/CD ── こまめに合わせて配信するしくみ。回帰テストの自動化と相性がよい。
執筆: SikakuQuest編集部