リグレッションテスト(regression test)
リグレッションテストとは、プログラムの一部を修正したことで、これまで正常に動作していた個所に不具合が出ていないかを確認するためのテストのことです。
「回帰テスト」(回帰:もとの位置 または 状態に戻ること)や「退行テスト」(退行:後ろにさがること)とも呼ばれており、プログラムを修正した後に、他の個所へ影響がないことを検証します。
リグレッションテストが必要な理由
例えば、2人(AさんとBさん)が同じソフトウェアのソースを修正していたとします。
Bさんは先にソースの修正 そして テストを完了、その後、Aさんがソフトウェアのバグを修正します。
Aさんは、自分のバグ修正した機能の試験を行い、正常に動作することを確認。その結果、正常に動作していたBさんの機能が動かなくなる結果に。このような問題が起きてないか確認するのがリグレッションテストの役割です。
プログラムは共通のモジュールとして作られていることがよくあります。バグ修正などで機能を修正する際は、修正対象となるソースコードを使っている個所を洗い出し、その個所に影響がでていないか確認する必要があります。
また、既存機能で想定外の不具合が発生することもあります。そのため、修正した内容が既存機能に影響をあたえていないことを確認することが大切です。特に大規模なプログラムやシステムの開発では、リグレッションテストは欠かせません。
スポンサーリンク
リグレッションとデグレーションの違い
リグレッションテストと似た意味で使われる言葉に「デグレーション(degradation)」があります。
デグレーションとは、「デグレード(degrade)」(劣化という意味。主に品質が悪くなること)のことであり、以前より悪くなることをいいます。
例えば、システムに機能追加などを行ったことで、機能追加前より性能が悪化したり、これまで使えた機能が使えなくなったり、バグや不具合が増えるなど、かえって品質が下がってしまう現象がデグレードです。
この現象を避けるために行うテストが「デグレードテスト」です。デグレードテストを行うことで、機能追加した個所以外の既存機能に影響がでていないかを検証します。
プログラムの修正により、デグレードが起きていないかを検証するのがデグレードテストであり、リグレッションテストとデグレードテストは、ほぼ同じ意味で使用されています。
リグレッションとデグレーションの比較は下記表の通りです。
- | リグレッション | デグレーション |
英表記 | regression | degradation |
意味 | 回帰(もとの位置 または 状態に戻ること)や退行(後ろにさがること) | デグレード(degrade):劣化という意味。主に品質が悪くなること |
使い方 | バグ修正などを行った際に、他の機能へ影響がないかを確認する試験 | 機能追加などを行った際に、既存の機能に影響を与えないことを確認する試験 |