十条自动化测试全部通过,一打印报价单,日期却仍然显示成“年、月、日”。这期用上期的 XichuQuoteLite 报价工具,做一次 Codex + Playwright 的本地自动化测试实验:从需求、计划和人工审查开始,独立核算预期,执行浏览器测试,再用失败记录、Trace 和真实 PDF 交叉验证。
被测项目:上期:用 Claude 把 Excel 报价流程做成网页工具 · XichuQuoteLite 源码与运行说明 ↗。这是同一个报价工具的后续测试实验,没有另建一个项目。
资料范围:公开仓库是上期被测项目,不是本期完整实验包。本期测试脚本、提示词和完整复现包暂未公开下载。以下介绍实际流程、结果和官方参考资料。
先分清楚:7通过3失败,与10项全绿
第一轮先让 Codex 根据需求和独立核算数据提交计划,再生成十条局部测试,由真实 Playwright 浏览器执行。结果是7条通过、3条失败:其中两条是备注字段定位问题,另一条是零折扣显示格式的预期问题。这三项不能直接记成三个产品 Bug。
人工审查修正定位与零的显示预期后,金额、税额和合计等有效断言保留,十条局部测试全部通过。但这套测试没有包含后来补充的空日期打印断言。全绿只能说明已经写下的这些检查通过,不能证明未覆盖的风险不存在。
预期要独立核算:600→540→70.20→610.20
金额答案在执行前用独立的十进制计算确定,没有调用报价工具自身的计算函数。先核对业务公式和舍入顺序,再让测试比较页面实际结果。
| 步骤 | 独立计算 | 预期结果 |
|---|---|---|
| 小计 | 3 × 200.00 | 600.00 |
| 折扣10% | 600.00 × 10% | 60.00 |
| 折后税基 | 600.00 − 60.00 | 540.00 |
| 示例税率13% | 540.00 × 13% | 70.20 |
| 合计 | 540.00 + 70.20 | 610.20 |
不能把“页面现在显示多少”直接写成正确答案。这里的税率仅是虚构报价数据中的示例计算规则。
补充明确标准,再检查空日期打印
本期补充的验收标准是:报价日期和有效期留空时,打印中各显示一条横线。D6确实是上期记录的真实历史问题,但没有证据证明这条明确规则已经写在原始需求里。因此,不能把这段实验讲成“AI完全不知道问题,却自主发现了未知生产Bug”。
追加用例清空两个日期,切换打印媒体,检查真正可见的结果。补充标准后的同一套件,在旧版上得到10通过、1失败,在历史修复版上得到11条通过。两个日期的失败断言属于同一条用例,不应当作两个Bug;11项通过也只验证这组回归条件,不是整个产品的质量认证。
Trace与真实PDF要互相核对
Trace用于确认操作步骤、打印媒体切换和失败断言;真实PDF用于核对纸面最终输出。原生日期控件的占位文字不一定出现在标签正文里,DOM文字为空不代表PDF纸面为空。
本次另外生成并检查PDF、提取文字、对照打印态截图,确认旧版日期位置出现“年、月、日”,与本期补充的横线标准不符。浏览器和语言环境可能影响占位显示,因此历史版本对照保持相同测试文件、数据、断言与浏览器条件,只切换被测地址。
Codex在本期做的是只读分析
把失败、测试代码、明确规则和证据交给新的 Codex 上下文后,它只提供分析建议,没有修改权限。官方 Planner、Generator、Healer 没有在本期自主执行,也没有一次自主修复代理的完整实战可供宣称。
审查AI建议或改动时,要确认它没有把错误实际值改写成预期、删掉检查或放宽条件;跳过的用例也要单独列出。最后仍须回到业务规则、实际输出与同条件回归。
五项AI自动化测试审查清单
- 需求与断言:需求能否对应到每条断言,未定义的规则有没有澄清?
- 独立预期:预期是否独立确认,尤其是金额、折扣和舍入顺序?
- 覆盖缺口:计划和实际代码各覆盖什么,还有哪些高风险场景没有测试?
- 失败证据:核对操作、预期和实际证据,区分环境、脚本和业务问题;涉及打印时检查真实输出。
- 修订与回归:逐行审查AI改动,用同一套条件重跑,将跳过用例单独列出。
可以从自己本地项目的一条金额计算或状态保存流程练习:先明确需求、独立确定预期,再让AI辅助设计与编写测试,执行后审查断言、截图和Trace,涉及打印时另核对PDF。固定数据和浏览器条件,为每轮保留独立报告,避免旧草稿污染结果。
视频章节
- 00:00 十项通过,Bug为什么还在?
- 00:28 给AI的真实需求与提示词
- 00:57 第一轮计划:人工怎样审覆盖?
- 01:23 Playwright实跑:7通过、3失败
- 01:48 修订后10通过,仍有什么没测?
- 02:16 独立金额预期:600→540→70.20→610.20
- 03:07 补充空日期打印标准
- 03:52 旧版11项中1项失败
- 04:34 Trace与真实PDF交叉验证
- 05:28 Codex只读分析:建议是否合理?
- 06:16 同一套件验证历史修复:11项通过
- 07:03 如何在本地复现测试流程?
- 07:48 五项AI自动化测试审查清单
- 08:42 从一次实验到日常测试
已公开的参考资料
- Episode 009:被测报价工具的开发过程与现有入口
- XichuQuoteLite:上期被测项目源码与运行说明 ↗
- Playwright官方:编写测试与断言 ↗
- Playwright官方:Trace Viewer ↗
- Playwright官方:测试报告 ↗
实验边界:全部实验使用虚构数据与本地隔离环境。本期测试脚本、提示词和完整复现包未公开下载;没有发布新的实验Demo或GitHub Actions流程。测试结果只对应展示的局部条件,不代表完整覆盖、全产品认证或未经记录的效率提升。