
多数团队的测试困境不是「写得不够多」,而是「写错了层」——把本该在单元测试覆盖的逻辑放进集成测试(每次跑测试都起数据库、起容器),导致测试套件越跑越慢,团队从「每次提交都跑」退化到「上线前才跑」,测试失去了反馈环的价值。测试金字塔(单元多、集成少、端到端最少)不是理论,是交付效率的工程约束。
写什么:纯逻辑函数(计算、解析、验证)、状态机转换、错误分类。不写什么:需要真实数据库行为的逻辑(事务隔离、锁竞争)。
写什么:ORM 映射与查询行为、事务与回滚、缓存失效策略、消息序列化兼容。不写什么:纯业务逻辑(该在单元测试覆盖)、完整用户流程(该在端到端测试覆盖)。
写测试前依次问:
测试策略的健康度看三个数:覆盖率趋势(单元测试覆盖率不掉,说明新代码在补测)、套件执行时间(单元套件 < 10s 是底线)、漏出缺陷(被测试覆盖了但线上仍出的 bug——它们通常集中在「层边界」上,指向集成测试的缺口)。
测试金字塔的本质:把验证成本压在最便宜的那层(单元),越往上层测得越准但越贵、越少。倒金字塔(大量端到端、少量单元)的团队,不是测试做得多,是每次提交都在等一套又慢又脆的测试套件——反馈慢了,质量就不会好。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。