Claude Code + PlaywrightでSalesforceテストを自動化する

Claude CodeにはPlaywright MCPという仕組みがあり、ブラウザ操作を自然言語で指示できます。私たちのチームではこれをSalesforceのテスト自動化に活用し、手動テストの負担を大幅に削減できることがわかりました。本記事では、その実践的なアプローチとノウハウを共有します。

Claude CodeへのMCPサーバー接続の仕組みについては、OutlookのMCP設定に関する記事でも詳しく解説しています。

全体の仕組み

テスト自動化のフローは大きく3つのフェーズに分かれます。

  1. 準備フェーズ:テストシナリオの設計とテストデータの選定
  2. 実行フェーズ:Claude Code + PlaywrightによるSalesforce操作の自動実行
  3. 確認フェーズ(Human-in-the-loop):ユーザーによる修正方針の確認・承認

重要なのは、テスト実行とテスト設計を別のステップとして分けることです。Claudeに一度にすべてを任せようとすると精度が落ちるため、事前設計を丁寧に行うことが成功のカギになります。

Claudeにテスト対象を教え込む

Claude CodeがSalesforceを正しく操作するには、事前に必要な情報を読み込ませる必要があります。以下の3種類のドキュメントが有効です。

  • 操作マニュアル:画面の操作手順や業務フローを記載したドキュメント
  • チケット内容:BacklogやJiraなどのタスク管理ツールに記載されたチケット(何をどう修正するかの文脈)
  • ソースコード:プロジェクト上のコードを参照させることで、Claudeが仕様を理解しやすくなる

これらを組み合わせることで、Claudeは「どの画面で」「何を」「どのように」操作すべきかを理解し、精度の高いテストを実行できます。

テストシナリオの設計

テスト実行前に、以下を明確にしておきます。

  • テストシナリオ:どの機能を、どの順序で、どの条件でテストするか
  • テストデータ:どのデータを使ってテストするか
  • 期待結果:テスト後にどういう状態になっていれば成功か

シナリオは「ハッピーパス(正常系)」から始めるのが得策です。まず基本的な操作を一通り自動化し、その後エラー系や境界値のケースに広げていくと、Claudeに覚えさせる範囲を段階的に管理できます。

Human-in-the-loopの設計

テストを完全自動化することも可能ですが、重要なポイントでユーザーの確認を挟む設計(Human-in-the-loop)が実用的です。私たちは「SFチケットフロー」というスキルを作成し、以下のような流れで運用しています。

  1. チケット番号を入力してフローを起動
  2. Claudeがチケット内容を解析し、テストシナリオと修正方針を提示
  3. ユーザーが内容を確認して「OK」を出す
  4. Claudeが最後まで自動実行する
Human-in-the-loopの流れ:テスト指示入力→Claudeがシナリオ解析→確認が必要な操作で停止→Playwrightで自動実行→結果を報告

「修正方針の確認」という確認ポイントを設けることで、誤った方向での自動実行を防ぎつつ、手作業を最小限に抑えられます。エラーが発生した場合も、Claudeが原因を特定して一時的にフラグをオフにするなどの対処を自動で行ってくれます。

どこに確認ポイントを入れるかは、操作の「取り返しがつかない度」で判断するのが良いでしょう。データの書き込みや送信を伴う操作の前には必ず人の目を入れるのが安全です。

スキル化でノウハウを蓄積する

Claude Codeで試行錯誤した操作手順は、スキルとしてまとめておくことで次回以降の作業が格段に楽になります。

スキル化のプロセスは以下の流れが効果的です。

  1. まず手動でClaudeに指示しながら操作を完成させる
  2. やり取りのログを振り返り、うまくいった指示・手順を抽出する
  3. それをスキルファイルとして保存する
  4. 次回からはスキルを呼び出して同じ操作を再現する

新機能が追加された際にはスキルのマニュアル部分を更新することで、Claudeが新しい画面・操作に対応できるようになります。スキルは「一度作って終わり」ではなく、プロダクトの成長とともに育てていくものです。

精度を高める3つのコツ

実際に運用してみてわかった、Claude + Playwrightのテスト精度を高めるポイントです。

① 情報は多いほど精度が上がる

操作マニュアルだけでなく、実際のチケット内容やソースコードも一緒に渡すと、Claudeが文脈を理解して適切な操作を選択できます。「どの画面で何を確認すべきか」という判断材料が増えるためです。

② テストデータは事前に確認する

テスト環境にデータが揃っているか事前に確認しておきましょう。Claudeは「データがない場合は別の方法を試す」という柔軟な対応も取れますが、あらかじめ必要なデータが用意されていると大幅に安定します。

③ 失敗から学んでスキルを更新する

Claudeが操作で詰まった場面や、想定外の画面遷移が起きた箇所は、スキルファイルに補足情報として追記します。失敗のパターンを蓄積することで、同じ問題が繰り返されなくなります。

RPAとClaude Codeの使い分け

Claude Code + PlaywrightとRPAはどちらもブラウザ操作を自動化できますが、得意な領域が異なります。

観点Claude Code + PlaywrightRPA
実行速度比較的遅い(AIが判断しながら動く)高速(あらかじめ決めた操作を実行)
柔軟性高い(新機能・例外にも対応可)低い(新機能追加ごとに修正が必要)
向いているテストチケット単位の修正確認・新機能テストハッピーシナリオ・全体フローのリグレッション
コスト構造APIトークン従量課金ライセンス固定費

私たちがたどり着いた結論は、「チケット単位のテストはClaude、全体シナリオはRPA」という使い分けです。両者を組み合わせることで、速度と柔軟性を両立できます。既存の安定した処理はRPAに任せ、新機能や例外ケースはClaudeが対応するという役割分担が現実的です。

まとめ

Claude Code + PlaywrightによるSalesforceテスト自動化のポイントをまとめます。

  • テスト設計と実行は分けて行う:シナリオとデータを先に決めてからClaudeに実行させる
  • マニュアル・チケット・ソースコードを活用して教え込む:情報が多いほど精度が上がる
  • Human-in-the-loopで安全に自動化:取り返しのつかない操作の前に確認ポイントを置く
  • スキル化でノウハウを資産に変える:失敗も含めてスキルに蓄積し、繰り返さない
  • RPAとClaudeを使い分ける:チケット単位はClaude、全体シナリオはRPA

まだ試行錯誤の段階ですが、すでに手動テストと比べて大きな効率化を実感しています。使いながらスキルを育てていくアプローチで、継続的に改善を進めています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です