关于 manual-testing
面向编码 Agent 的手动测试技能,将代码变更整理为有针对性的验证计划,并引导用户完成需要人工判断的检查。它要求先用工具验证,再请求手动检查。
主要功能
- 01制定精简的验证矩阵
- 02手动测试前先运行自动检查
- 03提供具体步骤与预期结果
- 04检查常见故障和回归路径
- 05总结已验证结果与待查项
适用场景
- 01验证需要目视检查的 UI 变更
- 02自动测试通过后检查修复
- 03引导用户进行真实设备测试
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ petekp/ claude-code-setup --skill manual-testing安装后在 Claude Code 中输入/manual-testing确认已加载。
详细介绍
手动测试
通过紧凑的验证闭环完成工作:先用工具尽可能验证所有内容,然后只让用户验证那些需要人眼、人手、设备或判断的部分。
不要让用户自行编写测试计划。带着他们逐步完成。
质量标准
在让用户做任何事情之前,先明确:
- 哪些内容发生了变化
- 预期行为是什么
- 哪些内容可以自动验证
- 哪些内容仍需人工检查
- 附近哪些行为可能受到回归影响
绝不要让用户“随便试试”或“告诉我能不能用”。请给出具体操作、指定界面或命令、预期结果,以及一组简短的常见结果选项供用户回复。
工作流
1. 制定验证矩阵
在运行任何操作之前,将变更转化为简短的验证计划。
针对每项变更的行为,记录:
- 主要成功路径
- 最可能的失败情况或边缘情况
- 一项相关的回归检查
- 验证负责人:工具或用户
使用如下简单的内部清单:
| 行为 | 正常路径 | 边缘情况/回归 | 验证方 |
|---|---|---|---|
| 保存设置 | 表单保存成功 | 验证错误仍能正常处理 | 工具 + 用户 |
矩阵应保持简洁,并聚焦于当前变更。
2. 先运行工具可验证的检查
在让用户参与之前,先完成所有自动化验证。
优先自行验证以下内容:
- 构建、编译、类型检查、lint、测试
- API 响应和状态码
- 文件输出、数据库状态、日志和副作用
- 命令行行为、退出码和生成的产物
- 如果工具可以验证,则进行浏览器自动化、截图、DOM 文本或网络行为检查
只有在结果取决于以下方面时,才让用户参与:
- 视觉正确性
- 动效、时序或使用感受
- 真实设备行为
- 跨浏览器差异
- 屏幕阅读器行为
- 需要人工交互的第三方流程
如果自动化检查失败,先停止并解决问题,再请求人工验证。
3. 准备用户操作路径
做好准备,让用户能够以最少的精力完成检查。
请提供:
- 确切的路由、URL、界面或命令
- 所需的任何初始状态
- 要执行的单一步骤
- 预期结果
- 回复内容
如果用户需要使用已运行的应用,请告知他们要打开的确切位置。如果可以安全地预先准备状态、数据或测试夹具,请自行完成。
4. 引导用户逐步完成原子化操作
以引导式步骤进行手动验证,不要一次性给出含糊的指示。
尽量一次只执行一个原子化步骤。对于简单的冒烟测试,最多将 2-3 项紧密相关的检查合并在一起。
使用以下结构:
Testing: [feature or fix]
Progress: Step N of M
Action: [exact thing to click, type, or inspect]
Expected: [what should happen]
Reply with one:
1. [expected outcome]
2. [common failure mode]
3. [second common failure mode]
4. Other
如果有结构化提问工具,请将这些回复选项转换为结构化提示。否则,用纯文本提问,并在问题中列出选项。
示例:
Testing: profile photo upload
Progress: Step 2 of 3
Action: Open `/settings/profile`, upload a PNG under 2 MB, and wait for the save state to finish.
Expected: The new avatar appears in the header and no error message is shown.
Reply with one:
1. Upload worked and the new avatar is visible
2. Upload finished but the avatar did not update
3. I saw an error message or spinner got stuck
4. Other
5. 覆盖恰当的范围
始终先测试发生变更的路径,然后检查最可能出问题的地方。
使用以下提示作为校准清单。
对于 UI 变更:
- 检查初始渲染
- 相关时检查加载、空白、错误、禁用和成功状态
- 检查交互控件的键盘/焦点操作路径
- 如果变更对布局敏感,检查移动设备或窄屏布局
- 检查文案、间距和明显的视觉回归
对于错误修复:
- 重现原始错误路径
- 验证问题不再出现
- 验证相邻路径仍能正常工作
对于 API 或后端变更:
- 验证正常路径的响应
- 验证无效输入或失败路径的行为
- 验证持久化副作用或下游状态变化
- 验证日志或错误中没有出现新的问题
对于命令行或本地工具变更:
- 验证成功路径
- 验证常见失败路径及退出码
- 相关时验证输出文件、stdout/stderr 和帮助文本
6. 像调试器一样处理故障
当用户报告问题时:
- 记录失败的具体步骤
- 记录预期行为与实际行为
- 留意可见的错误文本、日志或截图
- 判断是立即停止并调查,还是仅在完成剩余检查仍有价值时继续
更改代码前,先为故障提出 2-3 个合理的假设,让下一步调试有明确依据,而不是靠猜测。
如果故障导致无法确信更改有效,请停止手动测试并转入诊断。
7. 总结验证结果及尚存疑点
最后简要总结验证情况,区分已证实的内容与仍属假设的内容。
包括:
- 已运行的自动化检查及其结果
- 已完成的手动步骤及其结果
- 发现的 Bug 或回归问题
- 尚未验证的方面
- 建议的后续操作
指南
- 尽量减少用户的工作,尽可能多地由 Agent 完成
- 一次只让用户专注于一个上下文
- 优先提供具体的回复选项,而不是开放式问题
- 条件允许时,检查一条成功路径、一条失败路径,以及一个相关回归问题
- 充分使用工具后再请求人工验证
- 清晰地持续说明进展,让用户记住当前正在测试什么,以及哪些内容已经通过