回归套件 60 条用例全绿,手工一验新上线的优惠券功能就报错,查下来用例读的还是三个月前的数据库快照,coupon 表压根不存在。日志里能对上时间点,这种反而好排。
测试基线一直没人更新,表结构变了几次,快照没跟着重建。用例断言只看接口返回码,字段缺失也能过,问题就漏到了线上。这一点先确认清楚,后面就不用反复试。
mysqldump --no-data site_prod | mysql site_test # 或导入前比对 information_schema 的表数量
「回归数据过期」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
处理上按这个顺序:每次发布前从生产脱敏导出一份新基线,覆盖旧快照;用例里加表结构和字段非空的断言,别只判断 200;把快照版本号写进测试报告,过期的直接标红;关键链路补一条端到端用例,走真实下单。
结果对不对很好判断,回归报告里的快照日期是本周,新功能用例能在基线里查到 coupon 表并通过。
