2018年8月13日

【コンサルタント散歩】

~デグレードテストの重要性~

単体テスト、結合テスト、総合テストなど各テスト工程ではいろいろな観点があります。今回はその中でもデグレードテスト(リグレッションテストなどとも呼ばれます)の重要性について記載します。

まず初めに「デグレード」の意味についてご説明します。デグレードとは新しいバージョンのソフトウェアの品質が、以前より悪くなること。また、以前修正した不具合やバグが発生・復活すること。また、新しいファイルなどを古い内容で上書きしてしまい、更新内容が失われることなどの事象が起きた際に使われる言葉です。

上記の内容からデグレードテストとは、プログラムを変更した際に、その変更によって予想外の影響が現れていないかどうか確認するテストになります。予想外の影響とはプログラムのバグを修正したことによって、そのバグが取り除かれた代わりに新しいバグが発生してしまうことなどが挙げられます。このデグレードテストを行うタイミングとしては、開発中や本番稼働中のプログラムにバグや仕様変更により、修正が発生した際に実施するテストとなります。

このデグレードテストは開発プロジェクトにおいて、後工程になればなるほど重要になります。例えば以下のことが起こったとします。

①総合テストを実施している最中にバグが発生し、プログラムの修正を実施する。

②対象プログラムの修正箇所だけをテスト観点として単体テスト、総合テストを実施する。

③修正箇所の確認としては問題ないので総合テストの環境にプログラムをリリースする。

④バグが発見されたテストケースを再度実施したが、当プログラムの修正内容の影響で後続処理にてデグレードする。

この場合に新たにプログラムの修正から結合テストを一からやり直さなければなりません。想像しただけでも相当な遅延が発生すると考えられます。このようなことが起こらないようにするためにもデグレードテストはしっかりとやる必要があります。

デグレードテストの実施は大変だと思いますので、少しでも楽にするためにバッチ系の開発プロジェクトで筆者が実践していたことを記します。まずテストデータ作成時に単体テスト、結合テストともに1ショットで全テストケース(異常系テストケース以外)を流せるようにデータを作成しておくことと、流し終わったテスト実施結果のデータをエビデンスとして残しておくことです。こうすることにより、デグレードテストの確認ではプログラム修正前のテスト実施結果のデータとプログラム修正後のテスト実施結果のデータを比較して修正箇所が想定どおりの結果に変わっていること、それ以外のテスト結果が変わりないことを確認するだけでよくなります。

最後に、皆さんもデグレードテストの重要性を再認識してデグレードテストがしやすい準備を怠らないようにしましょう。

2018年8月