🥰

MagicPod導入してみた

2024/05/23に公開

はじめに

こんにちは!CastingONEでQAエンジニアをしている樋口と申します。
テスト自動化ツールMagicPodを導入したので、ご紹介したいと思います!

MagicPod導入の目的

MagicPodの導入目的として主に2点あります。

  • QA期間の短縮
  • QAメンバーの工数削減

CastingONEではリリース前に新機能のテストとそれに伴うリグレッションテストを実行する期間「QA期間」を設けています。MagicPod導入によるテスト自動化をすることで、QA期間の短縮となり、最終的にリリースサイクルを短縮することができると考えました。
また、リグレッションテストのストックが膨大にあり、QA期間のQAメンバーの工数を圧迫していたため、それを自動化することで工数削減につながると思いました。

MagicPodを選んだ理由

CastingONEでは以前までAutifyを使用していましたが、最終的に自動化テストツールの中でMagicPodを選んだ理由は以下の4点が挙げられます。

  • 費用が低い
  • テスト実行回数に制限がない
  • コーディング不要
  • 画像差分チェックができる

MagicPod化するテストの選定

ストックしてある全てのテストケースを自動化するわけではありません。
カバレッジを気にするのではなく、MagicPod導入目的にもある通りQA全体での工数削減されるかが肝なので、手動テストと自動テストとで工数比較し、より手間がかからない方を選定しています。

MagicPod化スケジュール

自動化すると仕様変更のたびにメンテナンスコストが掛かるため、直近の開発状況を確認して自動化のスケジュールを考えています。
機能開発に並行して、CastingONEではVueからReactへの移行も実行されているため、それも考慮して自動化の計画をしています。

よく使う機能

MagicPodを導入して間もないですが、最近は以下の機能をよく使っています。

  • 変数・・・将来的に環境を変えてのテスト実行を考えているのでログインのステップやURL遷移に使っています。
  • 共有ステップ・・・特にログインのステップで使っています。メンテナンスコストの削減にもつながります。
  • 画像差分チェック・・・1画面で確認する項目が多い時に使っています。要素単位ではなく、画面単位で一気に項目の確認をすることができます。
  • 条件分岐・・・安定した実行結果を得るために使ってます。要素の状況に合わせて操作内容を分岐させます。
  • 待機ステップ・・・「UI要素が表示されるまで待つ」などを用いてより正確な実行を目指します。
    今後も色々な機能が使えたらと思います!

安定したテスト実行のために

MagicPodにおけるテスト実行において、そもそも「安定しない」ということはどういうこと?と思われる方もいらっしゃると思います。
MagicPodのテストは仕様変更などによるロケータの変更や実行中のステップ操作の速度によりバグではない理由で実行が失敗することがあります。仕様変更があった場合メンテナンスコストに気をつけてテストを維持する必要があります。
MagicPodで作成したテストケースは繰り返し実行されるので、毎回安定した結果を得るために、以下のことに気を付けています。

  • 条件分岐と待機ステップを使う。
  • 適切なロケータを選択する。

参考

https://speakerdeck.com/nozomiito/roketawoxue-ndetesutozi-dong-hua-shang-ji-zhe-womu-zhi-sou

  • 画面遷移はURLリダイレクトのステップを使う。
    • 画面遷移のステップはほとんどの自動化テストで使います。メンテナンスコストを減らすためにURLリダイレクトにしています。

課題点

自動化をすれば、それで永遠に何もしなくてもいいのではなく、仕様変更のたびにメンテナンスコストが掛かります。
メンテナンスのタイミングや人員配置など、自動化のカバレッジが高くなるほど向きあう必要があります。
今後このような課題について検討していきます。

最後に

今回はQAチームの自動化ツールMagicPodの導入についてご紹介させていただきました。
課題はありますが、自動化に取り組む中で改善を重ねていきたいと思います。
最後までお読みいただきありがとうございました!

https://www.wantedly.com/projects/891265

Discussion