全部洞察
技术
回归测试自动化:不用搭上一整个 Sprint
代码库几乎没有测试时从哪里入手:先覆盖关键路径,在 CI 中运行快速测试,再用一套不拖慢团队的方法逐步推进。
回归,指的是一项原本正常的功能在某次改动后失效。回归测试的作用,就是赶在客户之前发现它。许多年轻团队的问题在于:代码库增长得比测试快,要补上欠账,似乎需要一整个谁也腾不出来的 Sprint。
下面是一种小步交付、逐步推进的方法。
1. 从代价最高的路径入手
列出一旦出故障损失最大的五条路径:注册、登录、产品的核心操作、数据导出和通知推送。每条路径配一个端到端测试,就已经护住了最要紧的部分。
2. 先固定现有行为,再动手修改
对于老代码,先写特征测试(characterization test):它们描述代码现在做什么,而不是应该做什么。之后再修改代码,一旦某个行为发生变化,您马上就能知道。
3. 让测试套件保持快速
慢的测试套件最终会被关掉。在持续集成中,把运行时间控制在几分钟内:
- 用单元测试覆盖业务逻辑;
- 用少量集成测试覆盖数据库和 API 调用;
- 端到端测试少而精,只留给关键路径。
4. 每个 pull request 都运行
不会自动运行的测试,什么也保护不了。把测试套件接入 CI,测试失败就阻止合并。
5. 不稳定的测试立即处理
随机失败的测试,会让团队习惯于忽视失败。先将它隔离,修复根因(等待时间、执行顺序、共享数据),再放回测试套件。
AI 能派上什么用场?
AI 适合根据现有代码和工单起草测试:边界情况、测试数据、特征测试。但它不能代替评审:一个本身有错却能通过的测试,比没有测试更糟。规则与人写的代码相同:每个测试都以 pull request 的形式提交,由您的团队评审后再合并。
要点回顾
- 覆盖五条关键路径,胜过一个空有数字的高覆盖率。
- 测试要快,并在每个 pull request 上运行。
- 对不稳定的测试零容忍。
我们以 pull request 的形式交付测试和迁移,由您的团队评审并合并:看看我们能为技术团队做什么。