私たちが普段使用しているアプリケーションやシステムは、機能の追加や不具合の修正のために適宜アップデートされています。アップデートの際に動作を再確認するテストが行われているということをご存じでしょうか。テストを怠ると、アップデートをした結果、新たな不具合が発生し、かえって使い勝手が悪化する可能性があります。今回はシステムのアップデートを効果的に行うために必要な「リグレッションテスト」について解説します。
リグレッションテストとは
「リグレッションテスト」とは、システムに機能の追加や不具合の修正を実施した際に、別の不具合が新たに発生していないかを確認するテストのことです。
システム開発において、「リグレッション」はシステムに変更を加えた際、修正したはずの不具合が再発したり、新たな不具合が発生してしまうことを指します(※)。リグレッションが発生していないかを確認するテストが「リグレッションテスト」です。
「リグレッション (regression)」は日本語に訳すと、回帰や退行という意味であるため、リグレッションテストは「回帰テスト」や「退行テスト」とも呼ばれます。
(※)「デグレード(デグレ)」も同様の意味で使われます。
ソフトウェアテスト全般につきましては、こちらの記事をご参考ください。
【ゼロからわかるシステムテスト入門】ーソフトウェアのテストがなぜ必要かー
リグレッションテストの目的
リグレッションテストの目的は、システムに変更を加えた際、新しい不具合が発生していないことや、既存の機能に悪影響を与えていないことをリリース前に確認することです。
求人サイトで下記2つのアップデートを行う場合を例に挙げます。
①一部企業が表示されない不具合の修正
②新機能の実装(AIによる適職診断)
リグレッションテストを行うことで、2つの変更内容が正常に機能しているか、だけでなく
下記のような不具合が発生していないか、についても確認できます。
・①を行った影響で、今まで表示されていた企業が逆に表示されなくなる。
・②を行った影響で、企業を検索するボタンをクリックすると、まったく別のページであるAIによる適職診断のページに遷移する。
・②を追加するために個人情報をAIに送信する機能を実装したことで、情報管理システムに脆弱性が生まれ顧客の個人情報が漏洩する。
このような重大な不具合が発生していたとしても、リグレッションテストによりリリース前に発見することができれば、再修正を行い顧客に被害が発生することを予防できます。
リグレッションテストを行わないことによる問題
リグレッションテストを行わない場合、下記のような問題が発生する場合があります。
・予期せぬ不具合の発生により、顧客の信頼を失う。
リグレッションテストを行わないと、変更部分以外で不具合が発生していても気づくことができません。以前使えていた機能が不具合によって使えなくなってしまうことは、顧客を失う原因になりえます。変更によりシステムの脆弱性が発生していた場合には、顧客の個人情報が漏洩してしまうなどの直接的な被害が発生する可能性があります。
・追加で大きなコストがかかる。
リリース後に顧客によって不具合が発見された場合には、予定していないタイミングでの再修正やクレームへの対応を行う必要があり、一時的に多くのリソースを割かざるを得ない状況になります。不具合の修正は早期であればあるほど低いコストで実施することができるため、リリース後のシステムが完成した状態から修正を行うには大きなコストがかかることになります。
リグレッションテストを実施する際のポイント
リグレッションテストを行う際のポイントは主に4つです。
ポイントを意識することで、より効率的にテストを実行できます。
・テストを行う部分の優先順位をつける。
システムの更新ごとに全体を細かくテストしていては、膨大な時間や労力がかかります。リグレッションテストを行う際には、変更箇所が影響を及ぼす範囲を洗い出してから実施範囲を決めることで、少ないコストで効果的にテストを行うことができます。影響範囲を見極める際には、過去の不具合発生のデータが役に立ちます。
・同じプロセスを繰り返し実行することになる。
システムを長く運用する場合、アップデートは通常何度も行われることになるため、リグレッションテストもその都度実行されることになります。複数の変更を加える場合には、不具合の原因を特定しやすくするために、一か所変更するたびに同様のテストを繰り返し行う場合もあります。
・開発時と同じテストを再度行うわけではない。
開発時からは変更が加わっているため、開発の際に使っていたテストケースをそのまま使うのでは効果が薄いです。変更を加えた部分が正しく機能するかを確認するのではなく、変更を加えた部分を含む機能やシステム全体が正しく機能するかという視点でテストを行う必要があります。変更箇所を加味した上で、システム全体の動きを確認できるようなテスト計画を立てましょう。
・テストの自動化が有効な場合が多い。
リグレッションテストは通常同じプロセスを繰り返すことになるため、テストの自動化が有効な場合が多いです。自動化を早期に導入することで、コストの削減やテスト速度の向上などのメリットを得ることができ、削減したコストを別の業務に充てることができます。
テストの自動化につきましては、こちらの記事をご参考ください。
【ゼロからわかるシステムテスト入門】ーテストの自動化がもたらす、メリット・デメリットとは?ー
まとめ
「リグレッションテスト」とは、システムに機能の追加や不具合の修正を実施した際に、別の不具合が新たに発生していないかを確認するテストのことです。
予期せぬ不具合をリリース前に発見するために不可欠なテストであり、確認する箇所に優先順位をつけるなどの工夫により効率的に行うことができます。
株式会社GENZでは、リグレッションテストも含めたITに関するお困りごとに幅広く対応しております。システムアップデートの後にテストを実施したいけれど、どんなことをテストすればよいかわからない、という場合でも大丈夫です。テスト経験豊富な専門家がお客様のシステムに合ったテスト実施案を提案させていただきます。もちろんシステム開発段階でのテストや、脆弱性診断のみのご依頼も大歓迎です。
GENZと共にお客様のシステムをより良いものにしてみませんか。
リグレッションテスト(回帰テスト)を実施した事例につきましては、
こちらをご参考ください。
事例紹介 – ICTサービスのビッグバン回帰テスト – 株式会社GENZ