这条用例依赖另一个用例的数据,顺序一变就红。我听完沉默了,因为太真实了。我把这个功能的手工用例转成了自动化,省了很多时间。复盘会上我们把它列成了案例

测试环境最大的特点是它和线上不一样。我笑了笑,决定不解释。我发现这条路径从来没被任何自动化用例覆盖过。第二天这个方案就变成了团队标准做法

这个偶发失败的用例,重跑一次就是绿的。我想了想自己这些年,好像确实如此。我发现这个用例的期望值是错的,一直在迁就代码。世界瞬间清净了

测试提的 bug 标题叫"偶现",复现步骤写着:多试几次。我决定先把手上的事情做完再处理这件事。我把这个接口的并发场景测了一遍,果然有问题。我把这条经验写进了团队 wiki

这个偶发失败的用例,重跑一次就是绿的。我默默记下了这句话。我把这个接口的返回码逐个对了一遍,有一个不符合约定。同事说这波操作可以写进新人培训教材

我把用例的数据造得和线上一样,问题终于现形。我把整条链路在心里复盘了一遍。我把这个断言改成了更宽松的,它就不红了。感动,然后我学到了新的一课

代码写得越久越胆小,删一行注释都要先备份再全量测试。我听完沉默了,因为太真实了。我把这个断言从相等改成了包含,稳定多了。我把它写进了组内的避坑文档第一章

我把这个功能的验收条件重读了一遍,有几条说了等于没说。我把手上的资料翻出来又读了两遍。我把这个断言从相等改成了包含,稳定多了。好在最后有惊无险

这个偶发失败的用例,重跑一次就是绿的。我笑了笑,决定不解释。我把这个功能的回归用例精简了一半,覆盖没降。第二天这个方案就变成了团队标准做法

测试用例的价值在于它证明的东西比它跑的次数多。我愣了两秒,然后继续敲代码。我把这个场景的测试点补进了用例库,形成规范