ia-writing-tests

🧪 写出能暴露bug的测试,而非演示代码

通用测试编写规范:聚焦真实行为验证、反模式识别与理性化抵抗,适用于任何语言或框架的测试设计与覆盖率提升

收藏
3.8k
安装
1.1k
版本
4.2.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心定位

本技能提供跨语言、跨框架的测试编写通用规范,强调测试应验证真实行为而非模拟假设。核心主张包括:测试必须能够失败、优先使用真实对象而非模拟、每个测试只验证单一行为。

显著优点

实践导向的设计哲学

  • 提出"三源覆盖法":从用户需求、实际实现代码、对外承诺三个独立来源推导测试用例,避免遗漏
  • DAMP优于DRY原则:测试可读性优先于代码复用,允许显式重复以降低理解成本
  • 测试金字塔量化指导:80%单元/15%集成/5%E2E的配比建议,可根据风险画像调整

反模式识别系统

  • 系统梳理10+种常见测试反模式,包括模拟行为替代真实行为、测试框架本身、快照测试滥用等
  • 专门识别AI生成测试的6种特征性异味(循环断言、过度宽泛匹配器、实现回声断言等)
  • 提供具体诊断信号与修复阶梯,非仅原则性描述

缺陷修复方法论

  • "证明-修复"模式:先写失败测试复现bug,验证失败原因正确后再修复
  • 强调测试应暴露bug而非适配bug,禁止为通过测试而调整预期

潜在局限

框架特异性不足

  • 明确声明为"通用规范",具体工具链(Vitest、PHPUnit等)需配合框架专属技能
  • 部分建议(如"使用真实数据库")在CI环境中需要额外基础设施支持

执行成本较高

  • 三源覆盖法要求维护需求-测试-实现的三向追溯,小型项目可能 overhead 过重
  • "优先真实对象"原则与测试速度存在张力,需要工程判断

量化指标缺乏

  • 测试金字塔比例为经验值,未提供风险画像评估的具体方法论
  • 边缘案例清单为枚举式,未覆盖特定领域(如并发算法、分布式系统)的深度场景

适合人群

  • 有基础测试经验、希望系统提升测试质量的开发者
  • 代码审查者需要测试质量评估 checklist
  • AI辅助编程场景下需要人工校验生成测试的审查者
  • 团队正在建立或重构测试规范的技术负责人

常规风险

  • 过度工程化风险:小型项目严格执行三源覆盖可能投入产出失衡
  • 真实依赖稳定性:测试数据库、临时文件系统等真实依赖需保证环境隔离,否则导致 flaky tests
  • 知识衰减:模拟对象的维护成本被低估,团队可能积累大量"技术债式"模拟
  • 理性化抵抗执行难:文档提及需查阅理性化抵抗表,但实际执行依赖个人纪律,无强制机制

ia-writing-tests 内容

references文件夹
手动下载zip · 12.5 kB
anti-patterns-extended.mdtext/markdown
请选择文件