核心定位
本技能提供跨语言、跨框架的测试编写通用规范,强调测试应验证真实行为而非模拟假设。核心主张包括:测试必须能够失败、优先使用真实对象而非模拟、每个测试只验证单一行为。
显著优点
实践导向的设计哲学
- 提出"三源覆盖法":从用户需求、实际实现代码、对外承诺三个独立来源推导测试用例,避免遗漏
- DAMP优于DRY原则:测试可读性优先于代码复用,允许显式重复以降低理解成本
- 测试金字塔量化指导:80%单元/15%集成/5%E2E的配比建议,可根据风险画像调整
反模式识别系统
- 系统梳理10+种常见测试反模式,包括模拟行为替代真实行为、测试框架本身、快照测试滥用等
- 专门识别AI生成测试的6种特征性异味(循环断言、过度宽泛匹配器、实现回声断言等)
- 提供具体诊断信号与修复阶梯,非仅原则性描述
缺陷修复方法论
- "证明-修复"模式:先写失败测试复现bug,验证失败原因正确后再修复
- 强调测试应暴露bug而非适配bug,禁止为通过测试而调整预期
潜在局限
框架特异性不足
- 明确声明为"通用规范",具体工具链(Vitest、PHPUnit等)需配合框架专属技能
- 部分建议(如"使用真实数据库")在CI环境中需要额外基础设施支持
执行成本较高
- 三源覆盖法要求维护需求-测试-实现的三向追溯,小型项目可能 overhead 过重
- "优先真实对象"原则与测试速度存在张力,需要工程判断
量化指标缺乏
- 测试金字塔比例为经验值,未提供风险画像评估的具体方法论
- 边缘案例清单为枚举式,未覆盖特定领域(如并发算法、分布式系统)的深度场景
适合人群
- 有基础测试经验、希望系统提升测试质量的开发者
- 代码审查者需要测试质量评估 checklist
- AI辅助编程场景下需要人工校验生成测试的审查者
- 团队正在建立或重构测试规范的技术负责人
常规风险
- 过度工程化风险:小型项目严格执行三源覆盖可能投入产出失衡
- 真实依赖稳定性:测试数据库、临时文件系统等真实依赖需保证环境隔离,否则导致 flaky tests
- 知识衰减:模拟对象的维护成本被低估,团队可能积累大量"技术债式"模拟
- 理性化抵抗执行难:文档提及需查阅理性化抵抗表,但实际执行依赖个人纪律,无强制机制