误区一:只测成功路径
成功路径最容易准备,也最容易让项目产生虚假的安全感。供应链的价值恰恰体现在异常时仍然可控:库存不足怎么办,仓库已出库但订单回调失败怎么办,重复回调怎么办,取消请求晚于出库怎么办。
改法:每个成功场景至少配一个边界场景和一个恢复场景,并写出系统最终应达到的状态。
误区二:用接口文档代替契约评审
文档有 URL、有参数,不等于团队理解一致。很多争议都来自“状态可以传什么”“空值表示什么”“金额单位是什么”这类业务问题,而不是代码问题。
改法:让产品、业务、测试和研发共同评审示例请求与示例响应,把一个真实业务故事映射到字段。
误区三:把联调全部压到最后
如果等所有模块开发完成才开始联调,接口问题会和页面问题、部署问题、数据问题同时出现。团队难以判断阻塞来自哪里,项目时间表也会失去可信度。
改法:采用纵向切片,先打通一条最小可用链路,再扩展商品、仓库、拆单、退款等复杂场景。
误区四:遇到问题就临时改字段
临时加字段、改变枚举含义、把错误码当成功返回,短期可能让当前用例通过,长期却会破坏版本兼容。尤其是异步事件,一旦老消费者和新生产者并存,隐性变更会造成难以回放的问题。
我的处理原则是:如果只是新增可选字段,可以按照兼容策略推进;如果改变既有字段含义、删除字段或改变状态顺序,就必须升版本、写迁移方案并通知所有消费者。联调现场的口头决定,必须在当天回填到契约库。
误区五:用“没有投诉”证明稳定
没有投诉只说明问题可能还没有被发现。供应链系统需要主动观察接口成功率、业务失败率、重复消息数、回调延迟、库存差异和对账差异。指标应该能连接到行动,例如重复消息连续升高时触发消费幂等检查,而不是只做一个漂亮的看板。
如果暂时没有完整监控,我会先用人工抽样建立基线:每天选取固定数量订单核对订单、库存、履约和物流状态,连续观察一段时间,再逐步自动化。