误区一:只测主流程,不测异常状态
从登录到下单、支付、发货、收货的主路径必须测,但主路径只是一个理想剧本。我还会测试取消订单与支付同时发生、库存不足时优惠券如何处理、退款失败后订单显示什么、物流单号重复提交会怎样、用户刷新页面是否导致重复创建订单。
异常测试不应该临时发挥,而要根据状态机列出来。订单至少有待支付、已支付、待发货、部分发货、已完成、退款中、已关闭等状态,每次状态变化都要明确触发条件、允许的下一状态、操作者和可逆性。
误区二:只看通过率,不看缺陷结构
“用例通过率98%”听起来很漂亮,但剩下的2%可能集中在支付回调、库存扣减、退款和权限控制上。与其看一个平均数字,我更关注未通过用例的业务影响、复现稳定性、临时规避方法和上线前后负责人。
我会把缺陷分为阻断交易、影响数据一致性、影响运营效率、体验瑕疵和文档缺失五类。文档缺失不一定阻断上线,却会持续增加后续维护成本,不能永远被标记为“低优先级”。
误区三:把监控当成上线后的事情
没有监控,系统出问题时只能靠用户投诉。验收阶段就应该确认关键指标是否可见,例如下单成功率、支付回调延迟、库存扣减失败数、退款积压量、接口超时比例、任务队列堆积量和错误日志增长趋势。
监控也不是图表越多越好。每个指标都要有阈值、通知对象和处理动作,否则报警只会让人麻木。我倾向于先建立十个以内的核心指标,再逐步增加诊断指标。
误区四:验收环境和生产环境差异过大
测试环境使用假支付、少量商品、单一仓库和固定账号,生产环境却有多渠道、多仓库、促销叠加和历史数据。差异越大,测试结论越难迁移。至少要对配置项、数据库版本、缓存策略、队列、权限和第三方回调方式做差异清单。
如果无法复制完整生产环境,我会挑选风险最高的部分做近似验证,并在上线计划中增加灰度、只读检查和回滚窗口,而不是把环境差异隐藏在“测试通过”四个字后面。
误区五:忽略批量操作和数据规模
一条商品记录能保存,不代表一万条商品能导入;一次订单能查询,不代表大促期间客服可以按条件快速筛选。批量导入、批量改价、批量发货、批量退款和大范围导出,往往更接近运营真实工作,也更容易触发超时、内存和锁等待。
我会要求明确批处理的单批上限、耗时预期、失败重试规则和结果下载方式。对重要数据,导入前必须预览,导入后必须有汇总校验,失败记录要能单独导出。
误区六:把权限测试简化为“能不能登录”
权限问题经常不是登录失败,而是用户能看到不该看的订单、能修改不该修改的价格,或者离职账号仍然可以操作。测试时应按岗位建立权限矩阵,区分查看、创建、编辑、审批、导出、退款、数据修复等动作。
我还会检查操作日志是否包含操作者、时间、对象、前后值和结果。只有这样,出现价格变化或库存异常时,团队才能回答“谁在什么时候做了什么”,而不是在群里猜测。
误区七:把交付文档当成形式
文档不是为了让项目看起来完整,而是为了让不在现场的人能够接手。部署步骤、配置项、数据字典、接口约定、回滚流程、常见故障和联系人都应该能被独立阅读。文档中如果写着“按之前方式发布”,那就等于没有写。
我会在验收前安排一次“陌生人接手测试”:让未参与开发的人按照文档完成一次测试环境部署或故障演练。过程中遇到的疑问,往往比文档审阅会议更能暴露真实缺口。
误区八:没有把维护责任写进合同和排期
如果合同只写“交付系统并提供售后”,双方对响应时间、修复范围、版本升级、第三方适配和数据处理的理解就可能完全不同。项目经理需要把服务边界写成可执行条款,例如问题等级、响应时限、修复目标、备份责任、版本支持周期和变更计费方式。
排期也要保留维护预算。上线后至少安排一段稳定观察期,让团队处理真实数据、优化告警和补齐文档,而不是项目一上线就解散所有人。