小王刚改完登录页的手机号校验逻辑,一测,注册页崩了。老李上线前跑了一遍全量回归,花了3小时,结果漏掉一个支付回调的边界case,凌晨两点被客服电话叫醒……这些场景,你是不是也经历过?
别把回归测试当“再点一遍”
回归测试不是重新走一遍流程,而是精准验证“改了A,有没有意外搞坏B”。它像修水管——拧紧漏水的接口,得先关掉总阀,再检查隔壁厨房水龙头还出不出水。
挑重点,不盲目覆盖
刚入行时容易陷入“全量执行”的误区。其实80%的线上问题,集中在20%的核心路径上。建议优先覆盖:
• 用户高频操作(如下单、支付、搜索)
• 核心业务链路(如登录→选品→提交→支付→发货)
• 上次修改直接影响的模块及相邻模块
比如你改了优惠券计算逻辑,除了优惠券页本身,还得拉上购物车结算、订单确认页、甚至用户中心的优惠券列表——因为它们共用同一套计算服务。
自动化不是越多越好,而是越稳越值
写100个天天失败的UI脚本,不如维护好20个稳定跑在CI里的API测试。推荐分层做:
接口层(优先):响应快、稳定性高,适合验证核心逻辑
def test_coupon_discount_calculation():
resp = requests.post("/api/v1/calculate", json={"items": [{"price": 100}], "coupon_code": "SALE2024"})
assert resp.json()["discount"] == 20.0关键UI流(适度):只保主干路径,比如“登录→加购→下单→支付成功”,别覆盖所有弹窗和提示动画
测试数据要“活”,别靠手工造
每次跑回归前手动清数据库、重置用户余额、删历史订单?太耗时。建议提前准备几套轻量级测试数据集:
• 通用账号(已登录、有地址、有收货信息)
• 边界数据(余额为0、优惠券过期、库存为1)
• 隔离环境(Docker启动独立DB+Redis,每次测试后自动销毁)
别等上线前才回归,把它塞进日常节奏里
每天下班前5分钟,让CI自动跑一遍核心用例;PR合并前强制通过支付链路测试;新功能上线后,立刻补上对应模块的回归检查清单。回归不是项目尾声的补救动作,而是开发过程中的呼吸节奏。
最后提醒一句:没有银弹。再好的实践,也要配合团队实际节奏来调。今天先挑一个最痛的点试起来——比如把你常改又常出问题的那个模块,单独拎出来建5个稳定API回归用例。跑通一次,心里就踏实一分。