ローコードテスト自動化ツール T-DASH

リグレッションの効率性をあげるためのテストカバレッジ

システム開発において、リグレッションテストはとても大切な役割があります。リグレッションテストはプログラムの変更時に実施するテストで、変更によるバグが発生しないか確認するためのものです。実施しないとリリース後に、思わぬバグが見つかる可能性があります。最終チェックの側面もあります。ただし、やりすぎると、工数が増えてしまいプロジェクトに悪影響があります。そこでリグレッションテストのテストカバレッジを元に無駄なテストを省いて工数を削減する方法を考えます。

本記事では、問題を解決するためのカバレッジについて記載します。

膨大なリグレッションテストで疲弊した現場

私が経験したプロジェクトで、毎週のようにリリースを経験しました。リリース時には、必ずリグレッションテストを実施する運用になりました。問題だったのが量で、規模が大きいシステムだったので、7人で3日以上毎週かかっていました。リグレッションテストにかけた工数は膨大でした。現場は疲弊して、残業も増えうまくいかなくなりました。これだけ工数をかけたにも関わらず、バグが発生していました。

何がいけなかったのか?どうすればよかったのでしょうか?リリース前にはリグレッションテストを実施する必要があるので、回数自体は減らせませんでした。そのため、リグレッションテストの内容を検討する必要がありました。また、新規に追加された機能について項目が不足してバグを見逃していました。リグレッションテストの内容は、基本的な機能だけでした。例えばログイン機能などです。

今回、問題だったのは、「リグレッションテストの内容を検討できていなかった」ことです。影響が出そうな機能は、重点的に影響がない機能は項目を減らすなど対策することで、時間の短縮やバグの発見につながります。

例えば、ログイン機能を修正してリリースした場合は、ログイン機能のみテストすれば問題ないはずです。当たり前のことですが、開発チームとテストチームの連携が取れていない場合は、できない作業です。ほかにもテストチーム内で上長に進言できず、機械的にリグレッションテストをこなす場合でも発生してしまいます。

リグレッションテストでのカバレッジを考える

反省点を踏まえてリグレッションテストのカバレッジを考えてみます。理想はすべての箇所を実施することですが、現実的に難しいのでカバレッジを元に検討が必要です。

まず大事なのは、開発チームからどこを修正したのか調査して、影響範囲を出すことです。影響がある範囲はすべてリグレッションテストの対象になります。もちろん開発チームが予期していないバグも発生するので、ピンポイントで影響範囲を絞るのは問題です。

他にも過去にデグレードが発生した個所も確認が必要です。以上を踏まえて具体的にどの項目をするべきか、優先度をつけていく必要があります。以下はその例で、プロジェクトに合わせてデグレードが発生しやすいところを優先します。

  1. 変更システム改修箇所
  2. 変更システム改修と繋がっている箇所(例:修正した関数を使用している機能)
  3. 過去にデグレードが発生した個所

起動時間やレスポンスなどの性能が大事なシステムの場合は、優先度を上げることも必要です。何が大事かリグレッションテストの計画で決めておくとよいでしょう。

リグレッションテストの自動化

リグレッションテストの理想は、すべての箇所を実施することです。クライアントの意向で、すべてリグレッションテストを実施してほしいと要望もあるかもしれません。

有効な方法にリグレッションテストの自動化があります。自動化のメリットは時間の短縮やヒューマンエラー防止ができることです。導入フェーズで工数がかかり、項目の変更でメンテナンスが必要となるなどデメリットはあります。しかしながら、何度も実施するのであれば、どこかの時点で必ずトータルの工数削減に繋がり、投資対効果につながります。デメリットよりもメリットのほうが大きいため、ぜひ積極的に取り組んではいかがでしょうか。

ただし、今後改修がない場合やリグレッションテストを半年に1回など頻度が低い場合は、自動化のメリットが低いため無理に自動化はする必要はありません。自動化においては初期工数がかかるのは事実なので、自動化する方法をよく検討する必要があります。

自動化においては、自作で実施する方法もありますし、テスト自動化ツールを使う方法があります。例えば、テスト自動化ツール「T-DASH」という製品があります。Webアプリケーションの動作確認・検証を価格もお手頃で実施することができます。

まとめ

リグレッションテストはすべて確認するのが理想ですが、時間に制約があるため、やみくもに実施するべきではありません。カバレッジを考えて優先すべき項目を考えることが大切です。また、自動化すれば時間の短縮やヒューマンエラーの防止ができます。どのように実施するべきか、リグレッションテストの計画をしていくことを心がけましょう。

誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。