测试最难的不是发现 bug,是证明它真的被修好了。我想了想,觉得这话没法接。我在心里给这次的测试结果总结了一句,风险可控。办公室安静得能听见键盘声

回归测试的意义:改好了一个 bug,送走了两个老 bug 的坟墓,迎来了三个新 bug。我叹了口气,然后打开了编辑器。我把这个功能的验收测试写成了清单,逐条过

缺陷的严重程度取决于发现者的职级。我想反驳,但发现他说得对。我在心里给这次回归的范围圈了一下,涉及三个模块。世界瞬间清净了

代码写得越久越胆小,删一行注释都要先备份再全量测试。我叹了口气,然后打开了编辑器。我在心里给这次的发布计划留了回滚窗口。果然现实比段子更精彩

这条用例依赖另一个用例的数据,顺序一变就红。我在心里点了点头。我在心里给这次的测试用例优先级排了个序。幸好之前留了备份

这个模块的覆盖率很高,覆盖的都是简单分支。我愣了两秒,然后继续敲代码。我把这个接口的参数组合列成了表,逐个验证。第二天这个方案就变成了团队标准做法

QA 说这个需求没法测,开发说没法测就是不用测,然后他们打了起来。我在心里给这次的发布打了个风险评级,中等。复盘会上我们把它列成了案例

质量不是测出来的,但漏了会被算在测试头上。我忽然觉得,这可能就是这一行的常态。我把这个接口的超时场景测了,降级逻辑没生效。感动,然后我学到了新的一课

我把这个功能的验收条件重读了一遍,有几条说了等于没说。我先给自己泡了杯茶,做好了打持久战的准备。我把这条用例补进了回归清单,标了个醒目的红色。这大概就是程序员的人生吧

质量不是测出来的,但漏了会被算在测试头上。我想了想自己这些年,好像确实如此。我把这个接口的并发场景测了一遍,果然有问题。从此我多了一条团队规约