| name | test-checklist |
| description | 在代码修改完成后生成测试清单,并逐项引导用户完成手工验证。
触发条件(满足任一即触发,不要等用户提醒):
- 用户提到"测试清单"、"test checklist"、"测试计划"、"要测什么"、"验证清单"、"整理测试"、"来个清单"
- AI 刚完成代码编写/修改/bug 修复,改动涉及功能行为或用户可见变化时——主动提议,不要立刻开始生成测试清单,要先向用户确认是否需要进行测试
- 用户描述了一个改动后,询问或暗示需要验证时
- 任何代码变更完成,需要确保无回归问题时——主动提议,不要立刻开始生成测试清单,要先向用户确认是否需要进行测试
即使改动看似很小(新增一个控件、改了一个配置项),也应主动提议——小改动同样可能引入回归问题。基于 test/template/test_template.md 模板,适用于 AFA(明日方舟帧操小助手)项目手工测试流程。
|
测试清单生成与引导
基于 test/template/test_template.md 模板,分析代码变更后生成测试清单,然后逐项引导用户完成测试。
工作流程
阶段一:分析变更
- 运行
git diff 查看当前分支相对于 main 或 develop 的所有变更
- 运行
git log 查看当前分支的提交历史,理解改动意图
- 判断用户的输入中是否已包含对改动内容的描述
情况 A:用户已描述了改动内容
- 将用户描述与代码分析结果交叉验证
- 用一句话简述你理解的改动范围,然后直接进入阶段二
- 只有当代码分析与用户描述明显矛盾或无法对应时,才停下来向用户确认
情况 B:用户未描述改动内容
- 分析代码找出最近的变更
- 用 1-2 句话总结你理解的改动范围
- 主动向用户提问确认——确认后再进入阶段二
- 确定英文主题名(如
about_page、fps_options),用于生成文件名 test_[主题].md
阶段二:生成测试清单
读取 test/template/test_template.md 获取最新模板,然后按以下规则填充:
判断生成模式:
- 初次生成:该分支尚无测试清单 → 按完整模板生成全新文件
- 增量追加:已有测试清单文件(含
test_ 或 finished_test_ 前缀)→ 在对应章节位置插入 ## 追加测试 小节,标注 > 对应更改:[本轮修改的简短描述],只追加新测试项,不覆盖已有内容
测试环境:
- AFA 版本:从
src/lib/base/version.ahk 读取
- AHK 版本:AHK版本,注意不是AFA的版本,请从
docs/ahk_docs 文档获取或者向用户确认当前的AHK版本,确认后再填写
- Windows 版本:从 AGENTS.md 或用户确认
- 测试日期:当天
单元测试(对单个控件/功能的独立验证):
- 为每个新增或修改的 GUI 控件创建测试项:存在性、默认值、选项正确性
- 为每个新增或修改的配置项创建测试项:默认值、有效值范围
- 测试项格式:
- [ ] **操作**:[用户可直接执行的操作] + - [ ] **预期**:[可直接观察到的预期表现]
集成测试(跨模块交互流程验证):
- 识别完整用户流程,列出涉及模块、前置条件、操作步骤、预期结果
- 必须覆盖异常路径:网络失败、文件缺失、进程退出、无效输入等
回归测试(相关但未改动的功能):
生成文件:保存为 test/test_[主题].md,告知用户路径。
阶段三:引导测试
引导粒度:按功能点/流程分组呈现,一个分组下的所有测试项一次性列出。用户可以说"这个分组全部通过"。
测试项描述:对测试项进行通俗易懂的说明,明确测试此项的原因和目的
即时标记:用户每次反馈后,立即用更新文件——将通过的测试项的 - [ ] 改为 - [x]。不要等到阶段四才批量标记。
用户的反馈可能是:
- "通过" → 该分组全部标记为
[x]
- "不通过" / 描述异常 → 标记为
[x],同时在 ## 问题反馈 区域记录具体现象
- "跳过" → 保持
[ ],标注原因
bug 修复后,标注问题为"已解决",并在追加测试中补充对应的回归验证项。
进度提示:每完成一个章节后告知进度(如"单元测试完成。接下来集成测试")。
阶段四:完成与归档
- 展示汇总:总测试项数、通过数、失败数、跳过数
- 归档前验证:扫描文件内容,确认所有通过的测试项已标记为
[x]。如有遗漏,立即补标
- 询问用户选择:
- 全部通过:将文件重命名为
test/finished_test_[主题].md
- 存在问题:保持原文件名,修复后继续在同一文件中追加测试
- 如果是追加测试全部通过,直接在原文件基础上修改(已改名则保持 finished_ 前缀)
注意事项
- 生成的测试项要具体可操作,避免抽象描述
- 引导测试时保持耐心,不要催促用户
- 用户表示暂时无法测试某项时,允许跳过
- 所有文件读写操作针对
test/ 目录
- 增量追加不改动已有测试项的
[x] 状态——只追加新内容
- 追加测试的归档:如果原文件已是
finished_ 前缀,直接在文件中追加并通过后保持 finished_ 前缀