システムにおいて、プログラムを改修した際のテストはとても重要です!
そんなシステムテストにおいて重要な役割として「リグレッションテスト」がありますので、今回はリグレッションテストに関して解説します。
デグレードとは?
先ず、なぜリグレッションテストを行うかと言うと、それはプログラムを改修した時に想定外のバグが発生することがあるからです。
このことを「デグレード」と呼びます。
下図にデグレードのイメージがありますが、簡単に以下の流れでデグレードが発生します。
デグレードの発生
- Aさんが共通モジュールに改修を加えるためのプログラム修正を行う
- プログラム修正完了後に検証(テスト)環境で動作確認(テスト)を実施して問題ないことを確認
- 本番環境へ修正版のプログラムをリリースする(ここでAさんはやり切って満足)
- その時、Bさんが担当しているプログラムが動かなくなる(Bさんとても焦る)
- 原因を調べていくと、どうやらAさんが共通モジュールを改修したことで、他の部分に影響が出た
- Aさん謝る。。。
ということで、デグレードが起こると結構大変なことになります。
特に利用者から見たら、システムが改善すると思ったのに、不具合が出てしまうのですから、印象悪いですよね。。。
リグレッションテストとは?
では、デグレードを防ぐにはどうすれば良いのでしょうか?
それが、「リグレッションテスト」になります!
リグレッションテストはそんなに難しいことではなく、以下のポイントをしっかり押さえていれば良いのです。
リグレッションのポイント
- 修正するプログラムの影響範囲(どこで使われているか)をきちんと把握する
- 関係者へ修正内容を共有しておく
- プログラムのテストの際、テスト計画の中に、影響する機能やシステムのテストも盛り込む
- 検証環境にて、デグレードが発生していないことを確認する
- 確認完了後、本番環境にリリースする
もう一つポイントとしては、テストの範囲をどこまで広げるか、ということです。
事前にテスト範囲を絞り込まず、全てのテストを最初からやる方法を「フルリグレッションテスト」なんて言いますが、システムの規模が大きければ大きいほど、これは時間も労力もかかるので大変なことになります。
リスクを極力少なくしつつ、テストの負荷も減らせるポイントを見つけて、どこまで・どのタイミングでテストをやるか決める、ということが重要ですね。
リグレッションテストは「どこまで・どのタイミング」で実施するか見極めることがポイント!
まとめ
今回はシステムテストにおけるリグレッションテストに関して解説してきました。
リグレッションテストのまとめ
- デグレートとはプログラムを改修した時に想定外のバグが発生すること
- リグレッションテストとはプログラムのリリース後にデグレードを発生させないためのテスト
- リグレッションテストはテスト対象の範囲と実施タイミングが重要
システムの運用・保守において、リリース後にすぐ障害が発生すると、デグレードしている可能性が高く、そうゆう時はすぐ切り戻し(前の状態に戻す)ちゃうことが多く、後からリグレッションテストに漏れがあった、というトホホなこともありますね。
プログラムのリリース後に予期せぬところでバグが見つかると、とても怒られるので、テストはしっかりやりましょう(汗)
以上です!