ローコードツールからPlaywrightへのE2Eテスト置き換え事例
レビュー投稿日の情報になります
株式会社LayerX / Kodai Matsuyama
メンバー / QAエンジニア / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
最終更新日投稿日
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
11名〜50名 | 2023年10月 | B to B |
ツールの利用規模 | 11名〜50名 |
---|---|
ツールの利用開始時期 | 2023年10月 |
事業形態 | B to B |
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
プロダクトの成長に伴い、E2Eテストで利用していたローコードツールでは解決できない課題が発生した
- コストの肥大化
- テストケースは1300件、月間の実行ステップ数が15000を超え、ライセンス費用の増加
- メンテナンスにかかる人件費もテストケース数に比例して増加し、費用対効果が悪化
- テスト実行時間増大による実行回数の制限
- 全ケースの実行に18時間を要しており、1日に複数回のテスト実行が事実上不可能
- リグレッションテストの期間中に一度しか実行できず、その期間による変更に対してテストが実行できない
- テストの不安定さ
- 非同期処理の待機が一定時間のスリープに頼ることが多く、テストの成功率が低かった
- 成功率が低いので失敗原因の調査コストが非常に高く、本来早期に発見できる不具合の発見に時間がかかる
どのような状態を目指していたか
上記の問題解決のために実行速度向上とメンテナンス工数の削減を課題として設定しました
- 高頻度なテスト実行の実現
- dailyまたはそれに近い頻度で全テストを自動実行する
- バグの早期発見・早期修正サイクルを確立し、テストのスピードとアジリティを向上させる
- メンテナンス工数の削減
- 不安定なテストをなくし、メンテナンスの時間を減少させる
- 新機能のテスト設計や実行など、より価値の高い業務に集中できる環境を作る
比較検討したサービス
- Autify(並行して利用)
- Selenium
比較した軸
- 運用コスト
- 自動待機の有無(メンテナンスの容易性)
- 実行速度と並列実行能力
導入の成果
改善したかった課題はどれくらい解決されたか
- コスト
- 移行したテストケースの分、ローコードツールのライセンス費用を削減。組織の方針に基づいた費用の最適化を実現しました。
- テスト実行時間増大による実行回数の制限
- 移行前:Autify 18時間
- 移行後:Autify 6時間 + Playwright 30分
- 主要なテストをPlaywrightの並列実行に置き換えたことで、全体の実行時間を大幅に短縮。特に、高頻度で確認したいテスト群を30分で完了できるようになった。
- これにより、残したローコードツールのテスト実行時間も、以前の約1/3まで減少しました。
- テストの不安定さ
- Playwrightの安定したAuto-Waiting機能により、「なんとなく待つ」といった固定待機に起因する不安定なテストはほぼ解消されました。
- とはいえ、PlaywrightでもプロダクトのUI変更でセレクタが使えなくなる等、メンテナンスは発生します。ツールを移行すれば不安定さがゼロになるわけではない、という現実的な課題は残っています。
どのような成果が得られたか
- 実行頻度の増加
- 主要テストが30分で完了するようになったことで、ステージング環境へのデプロイごとにE2Eテストを自動実行できるようになりました。
- これにより、手動でテストする前の段階で不具合を検知できる確率が格段に上がり、品質の作り込みを開発の早い段階(シフトレフト)へ移行させることに成功しました。
- Autifyとのハイブリッド運用の実現
- Playwright
- コア機能など、安定的かつ高速なリグレッションテストが求められる領域。
- ビジュアルリグレッションテストやCSVファイルを用いたデータの比較検証。
- Autify
- メールの送受信など、コードベースで実装すると準備にコストがかかる機能。
- リリース直後でUI変更が激しく、POM(Page Object Model)のメンテナンスコストが高い新機能。
- Playwright
導入に向けた社内への説明
上長・チームへの説明
導入のハードルは非常に低く、ローコードツールからコードベースの自動テストの移行に伴う学習コストは、将来得られる生産性向上とライセンス費用削減というメリットで十分に相殺できるという共通認識が、当初からチーム内にありました。
活用方法
よく使う機能
- Trace Viewer
- テスト実行時にトレースを有効にすると、テスト全体の詳細な記録を含むHTMLファイルが生成されます。このファイルではアクションごとのスナップショットなどを確認ができ、デバッグ機能として優秀です。
- UIモード
- テストの作成とデバッグを一つの画面でインタラクティブに行える専用画面です。トレースビュワーの機能が統合されており、こちらもデバッグ機能として優秀です。
- VS Code拡張機能
- エディタ上から特定のテストやファイル単位でのテスト実行をシームレスに行えます。また、Pick Locatorの機能でPlaywrightが推奨するセレクタを提案してくれます。
- Pick Locatorが生成するセレクタは万能ではなく、状況に応じて手動で調整する必要はありますが、セレクタ作成の初動を大幅に効率化してくれます。
ツールの良い点
- 自動待機(Auto-Wait)
- 要素が表示されたり、操作可能になったりするのを自動で待機します。これにより、「タイミングの問題」でテストが失敗する不安定さが大幅に減ります。
- VS Codeとの連携
- 公式の拡張機能を使えば、エディタ上でのテスト実行、デバッグ、要素の指定などが簡単に行えます。
- オープンソース
- Microsoftが開発を主導するOSSであり、ライセンス費用が無料です。
- 充実したドキュメント
- 公式ドキュメントが非常に丁寧で分かりやすく、学習コストを低減します。
ツールの課題点
- Playwrightは自由度が高い反面、テストの書き方や構造(Page Object Modelなど)をチーム内で標準化しないと、コードが属人化し、メンテナンス性が低下するリスクがあります。
- 単にテストを書くだけでなく、「保守しやすいテストをどう書くか」という設計スキルが求められます。
- ローコードツールからの移行者は、テストコードそのものに加えて、Git/GitHubを利用したソースコードのバージョン管理や、CI/CDツールとの連携など、コードベースでの開発プロセス全般に慣れる必要があります。
- テストコードの自動生成(codegen)は非常に便利ですが、生成されたコードが常に最適とは限りません。特に、動的に変わるIDや複雑なセレクタが使われている場合、そのままでは不安定なテストになるため、手動での修正が必須です。
今後の展望
近年はテストにおけるAI活用も進んでいることから、今後は「Playwright-MCP」のようなツールも活用し、テスト作成の効率化という部分も挑戦していきたいと考えています
株式会社LayerX / Kodai Matsuyama
メンバー / QAエンジニア / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
よく見られているレビュー
株式会社LayerX / Kodai Matsuyama
メンバー / QAエンジニア / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
レビューしているツール
目次
- 導入の背景・解決したかった問題
- 活用方法