リグレッションテストは自動化できる!抑えるべきポイントとは?
プロダクトが続々生まれる現代において、ローンチ後の新機能追加など開発プロジェクトは常にスピードを求められています。スピードを求めるためには何かを削減しなければなりませんが、品質を置き去りにするわけにはいきません。この二律背反な品質とスピードは、リグレッションテストの自動化によって解決できるかもしれません。自分のプロジェクトには必要なのか分からない、自動化の必要性は理解しているがどのように着手していけば良いか分からない…そういった方でもリグレッションテストの自動化を推進できます。詳しく解説していきます。
リグレッションテストって自動化できるの?
ソフトウェアの品質を高めるのはプロジェクト開発の永遠の課題であり、幾多のプロジェクトで様々な手法を採用して品質の向上を図ってきました。その手法の1つに「リグレッションテスト」があります。
リグレッションテストは「機能の追加・修正で予想外の不具合が発生していないか」を観点として行うテストです。
機能追加前後の実行ファイルを準備して、動作が変わっていないか・不具合が発生しないか確認する、皆さんも一度は経験したことがあるであろう、あのテストです!テストパターンを洗い出し、手順ごとにスクリーンショットを貼り付けて実行結果にOKもしくはNGの文字を書く、その繰り返し……。
筆者も経験がありますが、属人性が強く、人によって実行速度も品質も異なるため正直非効率です。そういった品質のばらつきや非効率さも解消できるのが、リグレッションテストの自動化です。
リグレッションテストの自動化はツールをうまく使えば、「できます!」むしろ、以前動作していたものが再び正しく動作するか、同じテストを何度も実施するため、自動化によって受ける恩恵が他のテストよりも大きいともいえます。
現に、筆者が今参画しているプロジェクトでは、手動で行っていたリグレッションテストを自動化し不具合の検出率が上がりました。その結果、工数を1/4、テスト人員も1/5まで圧縮し、大きな自動化のメリットを出せました。
リグレッションテスト自動化のために抑えるべきポイント
プロジェクトに自動化ツールを導入した経験を踏まえて、リグレッションテストを自動化する上でのポイントをご紹介します。抑えるべきポイントは大きく分けて3つあります。
【抑えるべき3つのポイント】
1.自動化で賄う部分と手動テストで賄う部分を精査する
ツールを用いて自動化するにしてもスクリプトを準備する必要があり、一度にすべてを自動化するのは困難です。そのため、まずは自動化する領域とそのまま手動テストで確認する領域を精査しましょう。
過去に複数回不具合が発生している機能や、不具合が発生すると深刻な障害となる機能は優先的に自動化するべきです。逆に、使用頻度が少ない機能や障害が発生しても影響範囲が小さい機能については優先度を下げ、手動テストメインで運用するのが良いかと思います。
不具合発生確率が高い部分から自動化を行うと、スモールスタートであっても効果を最大限に引き出せます。
2.短期的成果にこだわらない
前述の自動化範囲の精査に関連しますが、リグレッションテストの自動化はテストケースの蓄積により賄える領域が徐々に拡大し、メリットが大きくなります。そのため、導入効果を最大限享受するためには、継続的なテスト実行とテスト内容の見直しが必須です。
銀の弾丸の如く即効性はないのを理解し、長期的に品質を引き上げられるよう、運用を円滑に回せる体制づくりを行うことが大切です。
3.チームメンバーで品質に対する認識を揃える
リグレッションテストを自動化すると、手動で行うテストの幅が狭まるため、今まで手動テストを行っていた人員を削減できます。テスト実行者をほかの作業に割り当てられるためメリットと言えますが、変化を嫌う層からの反発も予想されます。
自動化ツールにメリットがあると言っても、プロジェクトの人間関係に軋みが出るのは他の工程にも影響が出てしまうため避けるべきです。品質向上を第一としているビジョンを全体で共有し、同じ方向に認識を揃えるようにしましょう。
ビジョン共有の他にも、全員にツールを導入しテストを実行してもらい、自動化するメリットを実感してもらうのも1つの手段かと思います。
リグレッションテストを自動化できるソフトウェアを発見!
ここまでリグレッションテストの自動化についてと、自動化する上で抑えるポイントをご紹介してきました。しかし、実際にどういった自動化ツールを用いるのがよいのか気になるところだと思います。そこで、筆者が見つけたリグレッションテストで活用できるソフトウェアを2つご紹介します!どちらも無料で始められるため、自動化の手始めにぜひ活用してみてください。
T-DASH
ソフトウェアテストや脆弱性診断サービスなど行っているバルテス(株)が開発したテスト自動化ツールです。コードを書かずに、マウス操作と日本語でテストケースを作成できるほか、表計算ソフトで作られたファイルを取り込み、自動化パターンを作成できます。今まで表計算ソフトでテスト管理をし、初めて自動化を体験する方に最適です。
Autify
Autify社で開発された自動化ツールです。プログラミングに無縁な人でも実行したい内容をテストに落とし込める、分かりやすいUIが特徴です。外部連携も豊富で、CircleCIやJenkinsと連携してテストの自動実行も可能です。
まとめ
「リグレッションテストは自動化できる!抑えるべきポイントとは?」と題してご説明してきましたが、いかがだったでしょうか?ソフトウェアの品質は、製品を世に出した以上、追求し続ける必要があります。プロジェクトメンバー全体で同じビジョンを共有し、リグレッションテストを自動化する範囲を適切に決めて、長期的視点を持ち推進すると自動化もスムーズに行えます。
また、ソフトウェア品質の向上とともに人員や工数の削減にも繋がり、新機能開発に生かせるなど、享受できるメリットは大きいです。この記事がリグレッションテストの自動化を推進するきっかけとなれば幸いです。
誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。