大規模システムのリグレッションテストをAutifyで実装した話

この記事はアソビュー! Advent Calendar 2023の16日目です🎄
今年のアドベントカレンダーは2面公開なので、ぜひそちらもご覧ください。

こんにちは。QAのあおやぎです。

今回は大規模システムリニューアルプロジェクトで担当したリグレッションテストの自動化についてお話できればと思います!
WebチケットシステムでAutifyを導入した記事もありますので、よろしかったらご覧ください! tech.asoview.co.jp

はじめに

プロジェクト開始直後から、リグレッションテストの自動化が議題になっていました。私は以前Webチケットシステムで旗振りをした経験があったため、リグレッションテストの自動化推進担当としてテスト計画から実装・メンテナンスまで行うこととなりました。

運用開始前(シナリオ作成含む)

本格的なシナリオ作成は初めてだったため、機能面に慣れていない・そもそも知らない機能などあり、詰まる部分が多かったです。リーダーも一緒になって課題解決の方法を模索していただいたり、何度もレコーディングで確認しながら一つずつシナリオ作成を進めていきました。
特に詰まったところとしては、【Basic認証】、【メール機能】、【アサーション】のあたりでした。技術的な内容も含まれてくるため、開発の経験があるメンバーにサポートいただけるとスムーズに進められるかも知れません。
Autify上で作成したテストデータをシナリオ内で確認するとき、便利な機能がアサーションです。ページ上のすべてのHTML要素に対して、どういった検証を行いたいのかをプルダウンメニューから直感的に選択する事ができるので、テキスト・正規表現・チェックボックスなどユースケースに応じて柔軟に確認することができます。

今回のプロジェクトでは結果として、6プラン31シナリオの作成を行いました(1プランの中にシナリオが複数含まれています)。Autifyでは複数のシナリオをまとめ、指定したルールに従って実行する仕組みのことをテストプランと定義しています。
アプリが毎朝staging環境にデプロイされているので終了後、平日午前11時から自動テストを直列実行で確認しています。並列で確認した方が実行時間としては早くなるのですが、先に実行するプランのシナリオの自動テストで作成されたデータを、後で実行するプランのシナリオの自動テストで検証しているため、敢えて直列で実行しています。

運用開始後

チームメンバーが持ち回り制でSlackに連携される結果を確認し、NG箇所と原因を記載し連携する方式を取っています。
NGの原因としては機能改修があったり、UIの変更などで発生しているものが大半ですが、デグレードによる不具合も含まれているため、確認を疎かにしてしまうとせっかくの自動テストの意味がなくなってしまいます(自動テストの結果から早期発見に繋がった内容も多数あり)。不具合以外の起因で発生しているNGについては、なるべく早くメンテナンスを行なうように心がけています。
オールグリーンで結果が返ってきた日の達成感は今でも忘れません!w

最後に

いかがでしたでしょうか。
Autifyを活用したリグレッションテストの自動化を推進したことにより、今まで触れてこなかった機能を知れたこと、検証(アサーション)を含むシナリオを作成できるようになったので、ただ動かすだけではなく、品質担保の面からもレベルが上がったと実感しています。また、日々動かす中でメンテナンスの重要性も特に感じているので、作って終わりではなく、開発と連携を取りつつ、メンテナンスも行なっていかなければいけません。
落ち着いたタイミングで一度振り返りを実施し、Autifyの向き不向きについての洗い出し、Autifyに適したテストスコープの特定と、適さないスコープについて他の自動化ツールの導入要否の検討をしていきたいです。

そんなアソビューでは一緒に働くメンバーを大募集しています! ご興味をお持ちのエンジニアの方がいらっしゃいましたら、カジュアル面談もありますので、お気軽にご応募いただければと思います!

www.asoview.com