2. 食品MES业务蓝图与测试依据

食品MES的测试与通用离散制造MES有本质差别。离散行业更关注工单进度、物料齐套和工序流转,而食品工厂的合规压力集中在四个地方:批次追溯、效期管理、配方保密、清洁消毒。这四项特点决定了业务蓝图必须写清什么,也决定了测试用例从哪里来、验收时拿什么作为判据。如果蓝图只画了“计划—执行—入库”的主流程,却没有把批次谱系、效期扣减、配方权限、清洗状态这些约束落到字段和状态机上,后续测试就只能测界面和按钮,无法验证系统是否真正支撑食品安全。

一、四个食品特点如何转化为测试需求

批次追溯要求系统能回答“这一包成品用了哪些原料批次、经过哪些工序、发往哪个客户”。落到蓝图上,必须定义批次号生成规则(如“原料代码+供应商代码+到货日期+流水号”)、批次正反向追溯的层级(原料批次→半成品批次→成品批次→发货单),以及混批、拆批、并批时的谱系记录方式。测试需求由此产生:给定一个成品批次,能否在可接受时间内列出全部上游原料批次和下游去向;反向给定一个可疑原料批次,能否圈定受影响成品范围。

效期管理不只是记录保质期。食品原料常有“到货日期、生产日期、保质期、复检期、先进先出建议出库期”多个时间点,半成品还有敞口存放时限。蓝图需要明确:效期由哪个字段驱动、到期前多少天预警、过期物料是否允许被工单领用、临期成品是否自动降级或锁定。测试时要构造边界数据,例如保质期剩余0天、剩余1天、已过期1小时,观察系统在领料、投料、入库、发货各环节的拦截行为是否与蓝图一致。

配方保密是食品企业特别敏感的一点。配方是核心资产,车间操作工不应看到完整配比,但必须知道“投哪几种料、按什么顺序、控制在什么范围”。蓝图应设计配方分层:研发端维护完整BOM和工艺参数,生产端只下发工序级指令和保密代号,称量环节由系统校验总量与允差而不显示单项明细。测试需求包括权限矩阵验证、脱敏字段检查、越权访问日志,以及配方变更后的版本冻结与追溯。

清洁消毒在食品行业属于生产状态的一部分。同一台灌装机从含乳产品切换到果汁产品,必须经过规定的CIP清洗并记录清洗参数(温度、浓度、时长)。蓝图要把设备状态扩展为“待机、运行、清洗中、已清洗待验证、禁用”等,并把清洗记录与下一批生产许可绑定。测试时要验证:未完成清洗验证的设备能否被工单占用;清洗记录缺失时批次能否放行。

食品生产特点 → 蓝图约束 → 测试依据 → 验收判据 批次追溯 谱系完整、正反可查 混批/拆批可还原 效期管理 多时间点、先进先出 临期/过期拦截 配方保密 分层BOM、脱敏下发 版本冻结与权限 清洁消毒 CIP参数、设备状态 清洗验证绑定放行 业务蓝图文档 URS 用户需求 业务要什么、合规底线 FDS 功能设计 字段、状态机、接口 蓝图流程 角色、单据、审批节点 接口与主数据 ERP/称量/设备采集 验收标准 可测量、可判定 追溯测试用例 成品→原料反查 原料→成品圈定 效期边界用例 剩余0天/1天/过期 领料与发货拦截 权限与脱敏用例 操作工不可见配比 越权访问留痕 清洗状态用例 未验证不可排产 记录缺失不放行 验收判据 追溯查询 ≤ 规定秒数 过期物料 拦截率 100% 配方字段 脱敏无遗漏 清洗未完成 排产拒绝 批次放行 证据链齐全 偏差须闭环 方可签署

二、URS、FDS、蓝图与验收标准的对应关系

很多项目把URS写成愿望清单,把FDS写成功能目录,结果验收时双方各执一词。正确的做法是建立一条可追踪的链条:URS提出业务需求与合规底线,FDS把它翻译成字段、状态和接口,蓝图流程说明角色如何操作,验收标准给出可测量的判定条件。四者应逐条编号对应,形成需求追踪矩阵。

以效期管理为例。URS写“系统应防止过期原料投入生产”;FDS写“物料主数据含保质期天数,收货时生成到期日,领料校验到期日≥当前日期,过期物料状态置为冻结且不可被工单引用”;蓝图流程写“仓管收货→系统计算到期日→质检放行→领料时系统校验”;验收标准写“构造到期日为昨日的原料批次,尝试领料,系统应拒绝并提示,且该批次在可用库存中不可见”。这样一条链下来,测试人员不需要猜,开发人员也不会漏做。

需要提醒的是,验收标准必须可测量。像“追溯要快”不是验收标准,“输入成品批次号后,在5秒内返回全部上游原料批次及对应供应商”才是。像“配方要保密”也不是标准,“以操作工角色登录,配方明细页面不显示各原料克重,仅显示保密代号与总量允差”才是。示例中的5秒属于合理假设,实际项目应结合数据量和硬件条件在URS阶段约定。

三、测试需求来源的梳理方法

测试需求不应只来自FDS。实践中至少有五个来源:一是URS中的合规条款,尤其是食品安全法规和客户审核要求;二是FDS中的功能点和状态机;三是蓝图流程中的角色交接与审批节点;四是接口清单,包括ERP物料同步、称量设备采集、标签打印;五是历史偏差与客诉记录,这类来源最容易被忽略,却最能暴露真实风险。建议在蓝图评审阶段就同步建立测试需求清单,每条需求标注来源文档编号和优先级,避免上线前临时补用例。

蓝图评审时让测试人员全程参与,重点盯三件事:每个业务对象是否有明确的状态定义、每个关键动作是否有前置校验、每条追溯链是否有字段承载。这三件事缺失,后期测试很难补救。

四、一个可执行的验收判据示例

下面给出批次追溯与效期联动的验收判据片段,可直接用于测试用例设计。示例数据为教学假设,不代表真实项目实测结果。

编号测试场景前置数据(示例)操作预期结果
AC-01成品正向追溯成品批次FG20250601-01,含原料RM-A、RM-B输入成品批次查询谱系5秒内列出两级上游批次、供应商、投料时间
AC-02原料反向圈定原料批次RM-A-0518,已用于3个成品批次输入原料批次查询去向完整列出3个成品批次及发货客户
AC-03过期原料拦截原料批次到期日为昨日,库存10kg创建工单并领料领料被拒绝,批次状态为冻结
AC-04临期预警原料剩余保质期2天,预警阈值3天查看库存看板该批次以预警色显示并进入待处理列表
AC-05清洗未验证排产灌装机状态为“已清洗待验证”尝试下达工单系统拒绝排产并提示清洗验证未完成

这张表的价值在于把“食品特点”变成了可执行的判定动作。测试人员照着做,开发人员照着改,验收会上双方对着同一份判据确认,而不是对着模糊的描述争论。业务蓝图的意义也正在于此:它不是给领导看的流程图,而是测试依据的源头。蓝图写得越具体,测试越有据可依,验收越少扯皮。

常见偏差:蓝图只描述正常流程,未定义异常分支(如混批后如何拆分谱系、清洗记录补录是否允许)。这类缺口在测试阶段会集中暴露,建议在蓝图评审时用“如果……怎么办”逐节点追问,把异常路径补进FDS和验收标准。