调试与质量 · 修复与防回归
回归测试Regression Test
回归测试把曾经的故障锁成一条会失败的用例;红叉要拦合并,不能为了绿色删掉它。
先认出 CI 里这一行,再看它能不能拦住旧故障
下面就是锁定 BUG-184 的那条用例。跑改动后失败会写在该行并拦住合并;删掉它,套件变绿,旧坑却漏了。
·套件里没有锁
回归测试专门锁定曾经出现过的故障。红叉写在这一行上;为了绿删掉它的原因是想让套件变绿,下一步必须加回用例才能恢复拦截。
知识点:锁的是旧故障,不是新功能
上面的 CI 行已经演示了核心关系,这里只给可复用的命名。
- 回归用例描述曾经发生过的故障,而不是「页面能打开」。
- 失败必须能拦住合并;变绿不能靠删用例。
- 修登录、升级表单库、改样式时都要继续跑这一行。
什么时候用、怎么用
issue 关闭后、相关代码还可能被动到时,把复现步骤写成回归测试。
- 信号:同类修复第三次出现,或有人说「这以前修过」。
- 不适用:还没有稳定复现,或用例依赖本机手工数据。
- 最短路径:用原复现步骤写成断言 → 放进 CI → 失败即拦合并。
正反例:同一 BUG-184,只改 CI 里有没有锁
目标都是不让「网络失败清空邮箱」回来。差别只在红叉能不能拦住合并。
旧故障一回来就能看见,不会在发布后才被用户撞到。
套件变绿不等于坑被填上;下一次改样式就会把旧故障带回来。
快速自测
登录修复已经合并,CI 全绿,但没有针对旧故障的用例。最大的风险是什么?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。
下一步学
和本知识点经常一起出现的概念。