测试用例写了三百条,线上 bug 出在没写的那一条。我把相关的记录都翻了出来做对照。我把这个功能的测试报告整理了出来,附了截图

bug 复现步骤:第一步,把电脑交给测试同学。我笑了笑,决定不解释。我在这个用例上加了个断言,它立刻红了。复盘会上我们把它列成了案例

测试环境最大的特点是它和线上不一样。我叹了口气,然后打开了编辑器。我在心里把这条链路的测试点列了一遍,漏了两个。我把这条经验写进了团队 wiki

单测覆盖率百分之九十,剩下的百分之十里藏着生产事故。我发现自己居然没法反驳。我把这个场景的测试步骤写成了可视化的流程图。这条经验值直接拉满

我把用例的数据造得和线上一样,问题终于现形。我决定先把手上的事情做完再处理这件事。我发现这个用例依赖上一个用例的数据,顺序一变就挂。复盘会上我们把它列成了案例

我把这个场景的边界值挨个试了一遍,最后一个挂了。我先给自己泡了杯茶,做好了打持久战的准备。我把这个模块的测试数据清理脚本加上了,环境干净了。果然现实比段子更精彩

测试用例的价值在于它证明的东西比它跑的次数多。我叹了口气,然后打开了编辑器。我发现这个 bug 是上个版本修过又回来的。好在最后有惊无险

这条用例依赖另一个用例的数据,顺序一变就红。我停了一下,然后继续手上的活。我在心里给这次回归的范围圈了一下,涉及三个模块。我把这条经验写进了团队 wiki

自动化测试跑了全绿,用户一上手就白屏,这就是测试环境与现实的距离。我愣了两秒,然后继续敲代码。我发现这个用例在 CI 上偶发失败,重跑就好。第二天这个方案就变成了团队标准做法

我在这条链路上加了埋点,验证终于有了依据。我把这个断言从相等改成了包含,稳定多了。这条经验值直接拉满