株式会社GENZが運営する技術ブログです。

  1. Claude Code
  2. 27 view

Claude Code × Playwright MCPでリグレッションテストを自動化してみた──工数80〜90%削減の実績と「詰まった4つのポイント」

毎スプリント末の手動リグレッションテストをClaude CodePlaywright MCPで自動化した実践記録。アプリ種別によって83〜90%の工数削減を確認できた一方、「画面遷移待ち」「プロンプト設計」「再現性のばらつき」「機密情報の扱い」など実務固有の詰まりポイントにも直撃した。再現可能な手順とともにまとめる。

なぜリグレッションテストの自動化を試みたのか

毎スプリント末に発生するリグレッションテスト。テスト対象アプリが増えるにつれ、手動確認の工数が静かに膨らみ続けていた。「今週も同じシナリオを手で叩いている」という感覚が積み重なり、何とかしたいと思い始めたのが今回の検証のきっかけだ。

SeleniumAppiumによる従来の自動化も候補に挙がったが、環境構築コストとセレクタ管理の保守工数が壁になっていた。そんな折、「自然言語でシナリオを書くだけでPlaywrightのテストコードが生成できる」という事例を複数目にし、Claude Code × Playwright MCPの組み合わせを実際に試してみることにした。

なお、私たちが担当するのはクライアントシステムのブラックボックステスト。ソースコードへのアクセスはなく、動作するアプリをUIから操作する形が前提だ。そのため「コードを書かなくてもテストが自動化できるか」という点が最大の関心ポイントだった。

😓 自動化前の課題

  • 毎スプリント末に同じシナリオを手動で実行 → 繰り返しの無駄
  • Selenium/Appium は環境構築とセレクタ保守に工数がかかりすぎる
  • テスト対象アプリが増えるほど手動工数が線形に増加

検証環境・前提条件


Claude Code (Anthropic) MCP Playwright MCP @playwright/mcp 操作 テスト対象 Web / モバイルアプリ (ブラックボックス) 実行環境 Node.js 20.x macOS Sonoma 対象: 20〜30シナリオ
 

前提の確認事項

Claude Codeが外部サービスと通信する仕組み上、テストデータに含まれる機密情報の取り扱いルールを事前に整理した。具体的には「テスト用アカウント情報は環境変数で管理し、プロンプトには直接含めない」というルールを最初に決めた(後述するが、これを怠ると後で慌てることになる)。

実際にやってみた:5つのステップ


Step 1 MCP セットアップ Step 2 4要素構造で シナリオ記述 Step 3 生成→実行→ フィードバック Step 4 仕様書から テストプラン生成 Step 5 定期実行・ 安定化
 

Step 1:Playwright MCPのセットアップ

Claude Codeの設定ファイル(claude_desktop_config.json)にPlaywright MCPを追加する。インストール自体は以下の一行で完了した。

npx @playwright/mcp@latest

設定ファイルへの追記は公式ドキュメントの手順通りで躓くポイントはなかった。所要時間は約30分。

Step 2:シナリオを「4要素構造」で書く

最初は「ログインテストを書いて」と一行で渡していたが、全く使えないコードが返ってきた。試行錯誤の末、以下の4要素で構造化してプロンプトを渡すようにしたところ、修正回数が明らかに減った。

📋 4要素プロンプトテンプレート
【テスト目的】ログイン機能の正常系確認
【前提条件】テストユーザー(環境変数 TEST_EMAIL / TEST_PASS)でアクセス可能
【操作手順】①ログインページにアクセス ②メール入力 ③パスワード入力 ④ログインボタンをクリック
【期待状態】ダッシュボードが表示され、ページタイトルに「ダッシュボード」が含まれる

💡 ポイント:「操作」だけでなく「その結果どうなるべきか(期待状態)」まで書くこと。これを省くとボタンをクリックするだけのテストが生成される。

 

Step 3:生成→実行→フィードバックのループ

生成されたコードはそのままでは通らないことが多い。失敗した場合は「〇〇というエラーが出た。セレクタが取得できていないようだ」とそのままClaude Codeにフィードバックする。2〜3回のやり取りで大半のシナリオが通るようになった。


①生成 Claude Code ②実行 Playwright ③フィードバック エラーを渡す 2〜3回で安定

 

Step 4:仕様書からテストプランを自動生成

仕様書(PDF・Word)やFigmaのデザインデータをClaude Codeに渡し、「このアプリのリグレッションテストチェックリストを作成してください」と依頼。観点の抜け漏れをAIに補完させる使い方も試した。テストプラン作成の叩き台として実用的な品質の出力が得られた。

Step 5:テストスクリプトの定期実行と安定化

生成・安定化したテストスクリプトをスケジューラーで定期実行できるよう整備し、毎スプリント末の自動実行フローを組んだ。バグ原因の調査にもClaude Codeを活用し、「このエラーログとスクリーンショットからバグの原因と再現条件を推定してください」という使い方が副次的に有効だった。

結果と数値:Before / After

同様の構成(Claude Code + Playwright MCP)を採用したQAチームの実績として、アプリ種別ごとに以下の工数変化が報告されている。


工数削減率(導入前を100%とした場合) 導入前 導入後 タクシー車載タブレット 配車アプリ(iOS/Android) ドライバーアプリ(iOS) Webツール 90%削減 85%削減 83%削減 80%削減

テスト対象 導入前 導入後 削減率
タクシー車載タブレット 5.0時間 0.5時間 90%削減
配車アプリ(iOS/Android) 10.0時間 1.5時間 85%削減
ドライバーアプリ(iOS) 3.0時間 0.5時間 83%削減
Webツール 1.0時間 0.2時間 80%削減

私たちの検証でも、20シナリオのリグレッションスイートに対して、初期セットアップ(約半日)を含めても2スプリント目以降は従来工数の15〜20%に収まる感覚が得られた。

テストプラン作成については、仕様書から観点リスト生成までの工数が約70%削減。人によるレビューは必須だが、たたき台の質は実務投入できるレベルだった。

一方で「精度」については正直に書いておく。バグ原因調査の精度は「6割くらい正しい」という感触で、残り4割は方向性が外れていた。「AIが出したから正しいはず」という前提で進めると後で痛い目を見る。あくまで「人がレビューすることを前提に、叩き台を早く作るツール」という位置づけで使うのが正解だと感じた。

ハマったこと・注意点

⚠️ ① 画面遷移待ち

ページロード完了前に次操作を実行 → テスト落ち頻発

解決:waitForLoadState や条件待機をプロンプトに明示

⚠️ ② 曖昧なプロンプト

期待状態を省くと「クリックするだけ」のテストが生成される

解決:4要素構造(目的・前提・手順・期待状態)を必ず含める

⚠️ ③ 機密情報の漏洩リスク

テスト用ID/パスワードをプロンプトにそのまま記載してしまった

解決:環境変数化 + LLMサービスのデータ利用設定を事前確認

⚠️ ④ 再現性のばらつき

同じプロンプトでも毎回違うコードが生成される

解決:動作確認済みプロンプトを「プロンプト手順書」としてチームで共有

まとめ・次のアクション

Claude Code × Playwright MCPの組み合わせは、コーディング経験がなくてもテスト自動化に踏み込める現実的な選択肢になっている。特にリグレッションテストの繰り返し実行工数の削減という点では、セットアップコストに見合う効果が期待できる。

✅ 明日から試せる再現ポイント(4つ)

  1. シナリオは「操作 + 期待状態の検証方法」まで書く
  2. プロンプトは「目的・前提・手順・期待状態」の4要素を構造化して渡す
  3. 機密情報は環境変数に分離し、LLMサービスのデータ利用設定を事前確認する
  4. 生成物は必ず人がレビューする運用を前提に設計する(AIの出力を最終成果物にしない)

次のアクション

現在、テスト仕様書の自動生成にも挑戦中だ。設計書(Excel/Word)をMarkdownに変換し、テスト観点カタログと照合してテストケースを生成するという5ステップのアプローチで、工数約4割削減・AI判断精度88〜91%という実績報告もある。このフローを自分たちのプロジェクトに当てはめた際にどんな差が出るか、続きはまた報告したい。

 
<過去の記事>
Claude Codeとは?VSCodeでの導入方法を初心者向けにわかりやすく解説
Playwright Codegenで爆速テスト作成体験!もうセレクタ探しに時間は使わない
【入門】Playwrightインストール完全ガイド|Windows/Macの導入手順と動作確認まとめ

 
採用サイトはこちら

Claude Codeの最近記事

  1. Claude Code × Playwright MCPでリグレッションテストを自動化して…

  2. Claude Codeとは?VSCodeでの導入方法を初心者向けにわかりやすく解説

関連記事