Test 是一个用于验证代码变更是否满足验收标准的技能。其核心理念是:证明真正重要的行为。构建通过或阅读源码可以作为佐证,但两者都无法证明用户可见的流程。
用途
该技能用于证明代码变更满足其验收标准,适用于测试或验证代码变更。它强调以验收标准为中心,通过自动化检查和真实浏览器验证来提供证据。
主要能力
- 读取任务、其来源规格(如存在)、变更的代码、现有测试以及仓库说明。
- 从任务或已审查的规格中获取验收标准,保留其原始措辞以及 AC-n、REQ-n 或 INV-n 标识符,绝不为了迁就代码而改写标准。
- 将每一条验收标准、引用的不变量以及受影响的失败路径按 ID 映射到证据。
- 测试变更后的行为以及重构必须保留的行为。
- 当自动化测试无法覆盖受影响的行为时,说明原因并提供其他证据。
- 在缺少证据的地方添加或更新有针对性的测试,断言应在变更行为被破坏时失败。
- 断言用户或调用方可观察到的行为,除非测试针对的是有文档记录的内部契约。
- 保持测试的设置和断言复杂度不超过场景本身所需。
- 运行能覆盖变更行为及受影响接口的最窄检查;当共享行为或接口发生变化时,运行更广泛的检查。
- 当浏览器渲染行为发生变化时,启动有文档记录的应用程序,并在真实浏览器中检查所需流程及受影响的失败。
- 当布局或响应式样式变化时,检查桌面端和移动端。
- 当交互变化时,检查键盘使用。
- 在每个流程中检查控制台错误和失败的请求。
- 捕获证据。阅读源码不构成浏览器证据。
使用方式
按以下格式报告每一条标准:
Criterion: <ID 或确切措辞> Result: Pass / Fail / Unverified Evidence: <命令、浏览器流程或产物> Gap: <仍未知的内容,或 None>
报告时先列出失败和未验证的标准,不要将它们隐藏在通过的检查之下。
适用场景
适用于需要验证代码变更是否满足验收标准的场景,尤其是涉及用户可见流程、浏览器渲染行为、布局或响应式样式变化、交互变化等需要真实浏览器验证的工作。
限制
- 不得削弱断言以使变更通过。
- 不得修复无关的失败。
- 如果所需的浏览器工具不可用,应将检查报告为受阻,除非用户明确接受手动例外。