← AIバイブコーディングTips 一覧へ QA Automation / ZOZO TECH BLOGより

テストコードを書かないE2Eテスト

注文金額の組み合わせテストを、Confluenceに書かれた自然言語の手順のままClaude CodeとPlaywright CLIに実行させた事例がある。テストケースをコードに翻訳する工程を丸ごと外し、UI変更への追従コストとプログラミングスキル依存を同時に解こうとした設計を読み解く。

この記事で手に入るもの

自然言語のテスト手順をAIエージェントがそのまま実行する仕組みの全体像と、「AIが作った実行計画をレビューして解釈ミスを防ぐ」という検品ポイント、個人開発の検証ツールにも移植できる応用の仕方。

01 — 何が課題だったか

「組み合わせが膨大」をコードでカバーする限界

題材は注文フローの金額計算テスト。条件の組み合わせが膨大になり、1件ずつ人間が正確性を確認するには大きなコストがかかっていたという(ZOZO TECH BLOG)。

ここで従来型の解決策として使われてきたコード記述型のE2E自動テストにも、別の弱点がある。プログラミングスキルへの依存UI変更に追従するための修正コスト、そして書いた人にしか直せなくなるテストコードの属人化だ。「網羅性を上げるほど、保守できる人が減る」というジレンマが背景にある。


02 — どう解決したか

手順書を「実行可能な指示」に変える

コードを書く代わりに、自然言語のテスト手順をAIエージェントがそのまま実行する経路を組んでいる。

01

Confluenceの手順書がそのままテストコードになる

Confluenceに自然言語で書いたテスト手順を、Claude Codeエージェントが読み取り、Agent Skillsを参照しながら操作手順を標準化する。人間が読むための手順書と、AIが実行する指示が同じ1つの文書になる。

02

セレクタを固定しないから、UI変更に強い

要素の特定と操作にはPlaywright CLIのスナップショット機能を使い、その場で取得したref番号で要素を指定する。セレクタをテストコードに書き込まないため、DOM構造が変わっても直す箇所が発生しにくい。PC/SPの切り替えは設定ファイルで行い、別セッションでの並列実行にも対応する。

03

期待値はシステムと別実装で計算し直す

金額の期待値はTypeScriptの独立した計算サービスで事前に算出する。本番の計算ロジックをそのままコピーせずシステム側とテスト側の独立性を保つのが要点で、検証結果はSQL実行CLIで画像化し、Confluence操作CLIで結果を自動記載するところまでが一連の流れになっている。

ここが核心。テストケースを「コードで書く」のをやめ、「自然言語の手順をそのまま実行可能な指示に変える」という発想の転換。プログラミングスキル依存とUI変更への追従コストという、コード型E2Eテストの弱点を両方外している。


03 — 実績と、削っていない工程

「コードを書かない」は「レビューしない」ではない

実際に扱われたテストケース数は、案件Aでおよそ20件、案件Bでおよそ50件。注文フローの各画面をPC/SP双方で確認する規模で運用されている。

AIの解釈ミスは、実行前のレビューで検出テストケースプランの段階でAIが作った計画をレビューすることで、解釈ミスを事前に検出できた事例がある。実行してから間違いに気づく形にしていない。
期待値の独立性は妥協していない計算ロジックを本番実装からそのままテスト側にコピーすれば楽だが、それでは「同じ間違いを両方でする」バグを見逃す。だから期待値算出だけは別実装のまま維持している。
誰でも書けるが、誰も見ないわけではない自然言語でテスト手順を書けるようになった分、属人化は減る。ただしAIが作った実行計画を人が確認する工程は、コード時代と同じく残っている。

以前この場で書いた「AIの『できました』を信じない|3段階で検品する運用」と同じ構図がここにもある。自然言語でテストの敷居が下がるほど、実行前の計画レビューという検品ステップの比重はむしろ増える。


04 — 個人開発に持ち帰る

PDF・xlsx検証のようなミニ版に当てはめるなら

個人開発では注文フローほどの規模もMCP連携もないが、発想だけを抜き出せば移植できる部分がある。以下はまだ自分の環境で試していない、当てはめの仮案として書く。