自動テストのツラみを解決!Autify導入でめざす誰でも管理可能なE2Eテストの実現
レバテック株式会社 / ema-lvgs
メンバー / バックエンドエンジニア / エンジニア組織: 51名〜100名
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
アドバンスドプラン | 51名〜100名 | 2024年4月 | B to C |
導入の背景・解決したかった問題
導入背景
1. E2E自動テストコード管理コストの増加
OSSツールによるE2E自動テストのメンテナンスにコスト増加が問題になっていました。
ライブラリ更新、コードメンテナンスの手間などがあげられます。
2. 手動による受け入れテストの手間
レバテックでは、マーケ、ディレクターの方たちが受け入れテストを実施しています。
チェックリストを使って受け入れテストを実施していますが、過去の障害対応などによりチェック項目が増えテスト工数が増加しました。
また、マーケ、ディレクター目線でE2Eテストをソースコードで実装すると何をしているか把握できず共通認識が取れない状況も発生していました。
3. 意図しないバグの発生
度々システム変更に伴う意図しない箇所でのバグが発生していました。
Aだけを変更したはずがBで問題が発生し、しばらく発見されず機会損失に繋がっていたという感じです。
つまり、テストに対して工数が膨らんでいて、かつちゃんと運用している(つもり)にも関わらず一定バグが発生している状態でした。
比較検討したサービス
- Autify
- MagicPod
- mabl
- BugBug
比較した軸
- メンテナンスコストが削減できるか
- 操作容易性(ノーコードであるか)
- 非エンジニアでも自動テストが作れるか
- 直感的に自動テストが作成できるか
- 専門的な知識が必要なく運用できそうか
- 非エンジニアでも自動テストが作れるか
選定理由
- 直感的に操作ができる点
- 通常通り画面操作するだけで自動的にAutifyにシナリオが記録される
- アサーション設定がわかりやすい
- 非エンジニアに実際にトライアル中試してもらい好評だった
- AIによるメンテナンスコードの削減
- 変更後、シナリオを修正しなくてもAIが頑張って最後までテストしてくれる(大幅に変更が入ると最後までいかないです。)
- テスト結果画面から簡単にシナリオのメンテナンスが出来てシナリオを作り直すケースが少ない
- 充実した公式ドキュメント
- サポート体制
- 契約後のオンボーディング
- チャットボットによるカスタマーサポート
導入の成果
レビュー投稿時点で導入から3ヶ月程度のため大きな成果はまだ出ていません。
具体的な定量的な成果が出てきたら更新したいと思います。
3ヶ月時点の成果(個人的な感想も含みます)は下記になります。
- 一部、受入テスト項目をAutifyに移行したことで確認工数を短縮できている
- 主要機能を定期的に確認しているため、リリースに対する心理的安全性と変更容易性が上がっていると感じる
- シナリオが増えれば、さらに向上しそうな手応えがあります
- 間接的ですが、AutifyをきっかけにE2E自動化テストを見直すきっかけになり、各チームで議論が活発になっている
導入時の苦労・悩み
- 複数チームでの運用を視野に入れていたため、事前に混乱が生じないよう命名規則やタグ付けルールを作成した
- なお、管理を分けるワークスペースというオプションが存在する
- 追加費用が掛かるのと、ルール整備すればなんとかなりそうだったので導入しなかった
- なお、管理を分けるワークスペースというオプションが存在する
- 契約上、テスト実行ステップ数に制限があるので超過しないようなルール作りと監視する仕組みを構築した
- CI連携禁止、全シナリオの定期実行は1日1回までとし、シナリオの個別実行は自由
- 現時点のルールであり、実行件数を加味して緩和する可能性あり
- シナリオ命名ルールを工夫して、チームごとの実行ステップ数を可視化した
- AutifyのAPIからデイリーで総実行件数を取得して閾値を超えたらSlackへ通知するようにした
- CI連携禁止、全シナリオの定期実行は1日1回までとし、シナリオの個別実行は自由
- ステップ数制限に関して注意喚起をした結果、メンバーがツール利用に慎重になりすぎて初動が鈍くなった
導入に向けた社内への説明
上長・チームへの説明
上長に向けては下記の4点について説明しました。
- テスト自動化による、予想削減工数
- 新規でテスト専任者を雇用する場合と比較
- テスト自動化による、品質向上(機会損失の低減)
- 過去のトラブルレポートからE2Eテストをしていたら防げた、あるいは早期発見できたものをリストアップ
- 直近1年分の損失金額を計算
- 導入後、X%削減できそうという期待値を算出
- テスト自動化による、開発生産性・デリバリー速度の向上
- テスト自動化・メンテナンス工数削減による開発者体験の向上
導入に向けてチームに対しては特に説明はしていません。
決定後、Autifyという自動テストツールを導入することを伝えました。
活用方法
現在も模索中ですが下記のように活用しています。
- 受け入れテスト項目の代替
導入前に運用していた受け入れテストの一部をAutifyで実行しています。
不具合が発生した際の損失金額を指標に優先順位をつけて取り組んでいます。 - 基本的な機能の確認
レバテックサイトの基本的な導線を定期的にテストしています。
具体例として、Topページから求人検索して求人詳細ページに遷移できるかというシナリオを実行してます。 - ライブラリ更新、DB移行時の確認
少し特殊ですが、直近の具体例としてライブラリ更新やDB移行時の確認が挙げられます。
DB移行は稀ですがライブラリ更新は頻繁に発生するかと思います。
変更前にシナリオを作成して、移行後にAutifyで動作確認して工数削減しています。
よく使う機能
- テストプラン(複数シナリオをまとめて実行してくれる機能)
- 共通ステップ(シナリオの共通部分をまとめる機能)
ツールの良い点
- 操作が直感的で使いやすい
- 社内オンボーディングが楽になる
- 基本機能は非エンジニアでも問題なく使える
- 機能が豊富
- 直感的でありつつも、JavaScriptが組み込めたりといろんなことが出来る印象
- メールを1画面として、会員登録機能などでシームレスにテストが出来る
- AIがとりあえずいい感じにテストしてくれて、結果画面からテストメンテナンスが出来る点
- ドキュメントが非常にわかりやすい
ツールの課題点
- 契約プランのテスト実行ステップ数が気になって導入初期にアクセルが踏みづらい
- テストプランの1部シナリオが失敗した際にシナリオごとに再実行が必要なところ
- ビジュアルリグレッションテスト(画面の見た目テスト)が現状画面に収まる範囲の要素単位でしかできない
- 欲を言わせてもらえば画面全体の比較が出来ると嬉しい
ツールを検討されている方へ
まだ、導入から間もないですがAutifyは非常に優れたプロダクトだと感じます。
直感的な操作で専門性がなくてもテストが作成できるため、エンジニア以外の職種の方と協業しているチームで、テストツールを探していれば候補に含める価値はあると感じています。
一方で他ツールと比べて費用が高いことや、テスト実行ステップ数に制限がある点などやりづらい部分があるのも事実ですが、(なお、制限を超えても利用はでき、超過分は従量課金となります。)費用対効果以外の開発者体験などの見えづらい部分にも目を向けて検討してみてはいかがでしょうか。
レバテック株式会社 / ema-lvgs
メンバー / バックエンドエンジニア / エンジニア組織: 51名〜100名
よく見られているレビュー
レバテック株式会社 / ema-lvgs
メンバー / バックエンドエンジニア / エンジニア組織: 51名〜100名