无需编写代码的E2E测试 ── 使用 Claude Code 和 Playwright CLI 实现的自然语言测试自动化

はじめに
前言
こんにちは、カート決済部カート決済サービスAブロックの道場です。ZOZOTOWN内のカート機能や決済機能の開発、保守運用を担当しています。
大家好,我是购物车结算部购物车结算服务A区块的道场。负责ZOZOTOWN内购物车功能和结算功能的开发、维护与运营。
現在、ZOZOTOWNのカート決済画面はリプレイスが進行中です。既存システムとリプレイス後のシステムが並行して開発される中、既存システムへのさまざまな機能改修を、リプレイス側にも取り込む必要があります。その際、条件の組み合わせが膨大になるテストを手動で網羅的に実施することが現実的でなく、特に注文金額の計算結果の正確性を人間が1件ずつ確認するには大きなコストがかかっていました。
目前,ZOZOTOWN的信用卡结算画面正在进行系统重构。在现有系统与重构后系统并行开发的过程中,需要将现有系统的各项功能改进也同步纳入重构侧。在此过程中,由于条件组合极其庞大,手动进行全面测试并不现实,尤其是让人工逐一确认订单金额计算结果的准确性,需要耗费巨大的成本。
本記事では、Claude CodeとPlaywright CLIを組み合わせて、自然言語によるE2Eテストを自動化した仕組みをご紹介します。Confluence(Atlassian社が提供するナレッジ共有ツール)に自然言語でテスト手順を記述することでAIが自律的にブラウザを操作し、計算検証も含めてE2Eテストを完結させています。コードを書かずにテストを作成・実行できるため、テスト自動化の属人化解消にもつながりました。
本文将介绍结合Claude Code和Playwright CLI,实现自然语言E2E测试自动化的机制。通过在Confluence(Atlassian公司提供的知识共享工具)中用自然语言描述测试步骤,AI能够自主操作浏览器,完成包括计算验证在内的E2E测试。由于无需编写代码即可创建和执行测试,这也解决了测试自动化依赖特定人员的问题。
目次
目录
背景・課題
背景与课题
リプレイスに伴う二重開発とテストの課題
伴随回放的重复开发与测试挑战
冒頭の通り、ZOZOTOWNのカート決済画面ではリプレイスが進行中です。既存システムとリプレイス後のシステムが並行して動作する期間中、既存システムに対するさまざまな機能改修をリプレイス側へ取り込む必要があります。
如开头所述,ZOZOTOWN的购物车结算画面正在进行替换。在现有系统和替换后的系统并行运行的期间,有必要将针对现有系统的各种功能修改引入到替换侧。
これらの改修をすべて取り込み、条件の組み合わせが爆発的に増加するテストケースを検証する工数が大きな課題となりました。
将这些修改全部纳入,验证条件组合呈爆发式增加的测试用例的工序成为了一个重大课题。
たとえば、ある案件の機能を取り込む場合、以下のような因子が絡み合います。
例如,在引入某个项目的功能时,会组合以下因子。
- ユーザーの属性(性別・年齢 等)
- 用户的属性(性别、年龄等)
- 購入商品の種類・金額
- 购买商品种类与金额
- 割引・クーポンの有無
- 折扣与优惠券的有无
- ポイント利用の有無
- 积分使用的有无
- キャンペーン期間の内外
- 活动期间的内外
これらを組み合わせると、1つの案件だけで100件以上のテストケースが発生することもありました。さらに、各テストケースでは注文フローの複数画面(配送・支払い選択、注文の確認 等)で表示値の確認が必要です。そして、PC用の画面とスマートフォン(以下、SPと表記します)用の画面がそれぞれ存在するため、検証量は実質的にさらに倍になります。
将这些组合起来,仅一个需求就可能产生100个以上的测试用例。此外,在各个测试用例中,需要在订单流程的多个画面(配送・支付方式选择、订单确认等)确认显示值。而且,由于分别存在PC端画面和智能手机(以下记为SP)端画面,验证量实质上会再翻一倍。
カート決済画面では、注文金額の計算ロジックにさまざまな要素が関わっており、前述の通り案件ごとに条件の組み合わせが大きくなりがちでした。さらに、期待値は複雑な計算式で決まるため、人間が1件ずつ手計算したうえで画面の表示と照合するには多くの時間がかかっていました。
在购物车结算页面,订单金额的计算逻辑涉及各种因素,如前所述,每个项目的条件组合往往会变得庞大。此外,由于期望值由复杂的计算公式决定,人工逐一手动计算后再与画面显示进行核对需要耗费大量时间。
なぜ従来のE2E自動化では足りなかったのか
为什么传统的E2E自动化不够
ZOZOTOWNでは、手動テストに加えて品質管理部によるコードベースのE2E自動テストも活用しています。しかし、そのような従来のコード記述型の自動テストを使ったアプローチでは以下の課題がありました。
在ZOZOTOWN,除了手动测试外,我们还利用质量管理部基于代码的E2E自动测试。然而,在使用这种传统的代码描述型自动测试的方...