使用说明
使用Claude Code的AI辅助QA工作流程
许多QA工程师陷入了手动测试的循环,几乎没有留下什么 是时候培养自动化技能了。本项目探讨了人工智能如何辅助工具 可以处理手动测试的执行负担,使QA工程师能够 向左移动,投资自动化,专注于更高价值的工作。
- 一个展示人工智能辅助的项目
plan -> generate -> runQA工作流程 作为Claude Code的子代理和技能而构建。 - 规划者子代理探索实时应用程序并编写结构化的测试计划, 生成器子代理将该计划转换为剧作家页面对象 specs,runner子代理执行套件并报告结果——每个 用斜线命令调用的stage。
旨在展示实用的QA自动化技能,包括代理设计, 测试计划和AI辅助测试执行。
这个项目是如何建造的
克劳德担任战略层 --架构决策、代理和 技能设计、模式评估和方法验证。
Claude Code的子代理充当执行层 --探索应用程序, 编写Playwright代码并运行测试,每一项都限定在一个范围内 责任。
人类策划了这两件事 --决定构建什么,何时构建, 以及输出是否可接受。
这种三方协作——人类+战略人工智能+执行人工智能——是人工智能辅助工程中一种有意的工作方式。
这个项目展示了什么
- 使用Claude Code子代理驱动真正的浏览器(通过
claude-in-chromeMCP工具)用于探索性测试规划 - 设计组成管道的单一责任子代理和技能
- 从实时应用探索中生成结构化测试计划
- 使用页面对象模型和夹具将测试计划转换为Playwright自动化测试
- 纯粹在Playwright中实现的具有安全意识的测试设计(会话/cookie检查、输入验证、未经身份验证的路由检查)
- 与共享身份验证会话
auth.setup.ts和storageState - 可重用、可审计的管道工件——每个计划和运行都会得到一个已提交的降价报告
- 通过REST API与测试管理工具集成
工程决策
这些是我做出的人工智能没有建议的决定:
.env获取凭据 --AI默认为硬编码值。使用.env是基于现实世界安全实践的深思熟虑的选择。- 文件夹结构 --the
pages/,fixtures/,ai-testing/,.claude/架构是由工程师设计的,而不是生成的。 - 带夹具的页面对象模型 --被确定为失踪 AI生成了规范。我指导了实施。
- 共享身份验证会话 --将登录重复识别为模式问题
并指导
auth.setup.ts+storageState实施。 - 子代理和技能作为承诺的工件 --版本控制决策 代理/技能定义,使工作流可重复和可审计。
- 每个功能单独的页面对象 --导演
EmployeeListPage作为 分离类而不是合并到AddEmployeePage. - 按测试类别划分覆盖率 --指示发电机进行生产 每个功能单独的E2E/安全/集成规范文件,而不是一个 未分化的斑点。
- 所有提交和提交消息 --版本控制决策、检查点 时间和变化描述始终是人类的选择。
技术栈
| 工具 | 目的 |
|---|---|
| 剧作家 | 浏览器自动化和测试运行器 |
| TypeScript | 测试编写语言 |
| Claude Code | 子代理+计划、生成和运行测试的技能 |
claude-in-chrome MCP |
用于规划者/生成器实时应用探索的浏览器驱动 |
| Claude(Claude.ai) | 战略人工智能层——架构和代理/技能设计 |
| OrangeHRM演示 | 测试中的应用程序 |
| GitHub操作 | CI/CD(计划中) |
项目结构
ai-qa-workflow/
├── .claude/
│ ├── agents/ # Claude Code subagent definitions
│ │ ├── qa-planner.md # Explores the app, writes a test plan
│ │ ├── qa-generator.md # Plan -> Playwright code
│ │ └── qa-runner.md # Runs tests, writes a run report
│ └── skills/ # Slash-command entry points
│ ├── qa-plan/SKILL.md # /qa-plan <feature>
│ ├── qa-generate/SKILL.md # /qa-generate <feature-slug>
│ ├── qa-run/SKILL.md # /qa-run <feature-slug|all>
│ └── qa-feature/SKILL.md # /qa-feature <feature> (full chain)
├── ai-testing/
│ ├── test-plans/ # Planner output — one file per feature
│ └── test-runs/ # Runner output — one file per run
├── pages/ # Page Object Model classes
│ ├── AddEmployeePage.ts
│ └── EmployeeListPage.ts
├── fixtures/ # Custom Playwright fixtures
│ └── baseTest.ts
├── playwright/ # Playwright-specific artifacts
│ └── .auth/ # Auth session storage (gitignored)
│ └── user.json # Session state — never committed
├── tests/ # Playwright spec files
│ ├── auth.setup.ts # Shared auth session setup
│ └── add-employee/
│ ├── add-employee.e2e.spec.ts
│ ├── add-employee.security.spec.ts
│ └── add-employee.integration.spec.ts
├── playwright.config.ts
├── tsconfig.json
└── .envExample # Environment variable template
工作流是如何工作的
1.计划-- qa-planner
/qa-plan <feature> 调用 qa-planner 子代理。它登录直播
应用程序通过 claude-in-chrome,探索目标特征,并编写
结构化测试计划 ai-testing/test-plans/[feature-slug]-plan.md —
场景分为E2E、安全和集成类别,每个类别都有
ID、先决条件、步骤和预期结果。它不写代码。
2.生成-- qa-generator
/qa-generate <feature-slug> 调用 qa-generator 子代理。上面写着
计划、重用或创建功能的页面对象,注册夹具
在 fixtures/baseTest.ts,并为中存在的每个类别写入一个规范文件
计划下 tests/[feature-slug]/.它跑 npx tsc --noEmit 抓住
在切换之前键入错误,但不会执行套件。
3.跑步-- qa-runner
/qa-run <feature-slug|all> 调用 qa-runner 子代理。它在运行
npx playwright test,解析通过/失败/不稳定的结果,并写入运行
向...汇报 ai-testing/test-runs/YYYY-MM-DD_[feature-slug]-run.md.
全链条-- qa-feature
/qa-feature <feature> 背靠背跑完所有三个赛段
功能,暂停以显示每个阶段的输出。
认证
tests/auth.setup.ts 每次测试运行使用来自的凭据登录一次 .env,
将会话保存到 playwright/.auth/user.json,并且所有测试都重用它。
身份验证文件是gitignored的——它包含重新生成的实时会话Cookie
每次跑步。生成的规范从不添加自己的登录步骤。
入门指南
先决条件
- Node.js 18+
- 克劳德代码与
claude-in-chromeMCP工具可用 - OrangeHRM演示证书(公开--请参阅
.envExample)
设置
git clone https://github.com/NewLara/ai-qa-workflow.git
cd ai-qa-workflow
npm install
npx playwright install chromium
cp .envExample .env
# Edit .env with your credentials
运行管道
来自此仓库中的Claude Code会话:
/qa-plan Add Employee
/qa-generate add-employee
/qa-run add-employee
或者在一个命令中运行整个链:
/qa-feature Add Employee
直接运行自动化测试
# Run all tests
npx playwright test
# Run all specs for one feature
npx playwright test tests/add-employee/
# Run a specific spec
npx playwright test tests/add-employee/add-employee.e2e.spec.ts
# Run with browser visible
npx playwright test --headed
# Run in debug mode
npx playwright test --debug
# Run in UI mode
npx playwright test --ui
在被测应用程序
Orange人力资源管理 --开源人力资源管理系统
网址: https://opensource-demo.orangehrmlive.com
资格证书: 看 .envExample
因其现实的企业工作流程而选择——员工管理、休假 请求、用户角色——反映真实世界的QA场景。不是玩具应用程序。
QA管道参考
| 技能 | 子代理 | 输出 |
|---|---|---|
/qa-plan <feature> |
qa-planner |
ai-testing/test-plans/[feature-slug]-plan.md |
/qa-generate <feature-slug> |
qa-generator |
pages/, fixtures/baseTest.ts, tests/[feature-slug]/*.spec.ts |
/qa-run <feature-slug|all> |
qa-runner |
ai-testing/test-runs/YYYY-MM-DD_[feature-slug]-run.md |
/qa-feature <feature> |
所有三个,都被锁住了 |