1. 测试数据分析平台需求拆解

在动手写第一行 MATLAB 代码之前,需求拆解决定了整个平台能走多远。很多测试团队一开始就急着做数据导入和绘图,结果做到一半发现:不同试验台的数据格式对不上、报告模板改一次要动十处代码、工程师和主管要看的其实是两种完全不同的东西。这些问题的根源都不在编程,而在需求边界没有划清。本章围绕四个维度展开:测试场景、数据来源、分析目标、报告交付,并在此基础上明确平台的功能边界与用户角色。

一、先锁定测试场景,而不是先锁定功能

测试场景回答的是"这套平台到底为哪类试验服务"。同样是测试数据,台架耐久试验、整车道路载荷谱采集、零部件温循试验,三者的数据节奏、通道数量、关注指标完全不同。需求拆解的第一步,是把场景写成可判断的句子,例如:

  • 场景A:电机台架稳态效率测试,采样率 1 kHz,通道约 20 个,单次试验 30 分钟,关注效率 MAP 与温升曲线。
  • 场景B:整车道路载荷采集,采样率 200 Hz,通道 60 个以上,单次记录 2 小时,关注雨流计数与损伤等效。
  • 场景C:电池包温循试验,采样率 1 Hz,通道 40 个,持续 7 天,关注超温报警与循环一致性。

把场景写成这样的句子后,"平台要不要支持流式读取""要不要做分段批处理""内存峰值大概多少"这些问题就能直接推导出来,而不是靠拍脑袋。场景描述里必须包含采样率、通道数、单次时长三个量,它们直接决定后续的数据处理架构。

二、数据来源决定了导入层的复杂度

数据来源是需求拆解中最容易被低估的一环。实际项目中常见的数据来源包括:

来源类型典型格式关键难点
台架采集系统MDF4 / TDMS / CSV通道元数据、单位、时间戳对齐
CAN / 总线记录BLF / ASC / MAT报文解码、信号按 DBC 还原
手工记录表Excel / CSV字段不统一、缺失值、单位混用
历史数据库SQL / Parquet按试验编号检索、增量拉取

需求拆解时要明确:平台是"只读一次"还是"需要反复回读"?如果同一批数据要被多个分析模块反复使用,就应该在导入阶段做一次标准化,落成统一的中间格式(例如统一时间基准、统一单位、统一通道命名),后续分析只面向中间格式。这一步不做,后面每个分析函数都要重复处理格式差异。

建议在需求阶段就定义一份"通道字典":通道名、物理量、单位、量程、采样率、是否必填。它是导入层与分析层之间的契约,也是后面自动生成报告表头的基础。

三、分析目标要区分"看什么"和"算什么"

分析目标常被笼统写成"数据分析",但真正可落地的是把它拆成两类:一类是给人看的可视化结果,一类是给判断用的量化指标。以电机台架效率测试为例:

  • 可视化:转速-扭矩-效率 MAP 云图、母线电流随时间曲线、冷却液进出口温差曲线。
  • 量化指标:峰值效率、高效区面积占比、稳态段平均效率、温升速率(℃/min)。

这两类目标对平台的要求不同。可视化要求绘图函数可配置、可批量出图;量化指标要求计算逻辑可复用、可单元测试。需求拆解时应把每个分析目标写成"输入通道 + 计算方法 + 输出形式"的三元组,例如:温升速率 = 对冷却液出口温度在稳态段做线性拟合,输出斜率与 R²。写成这样,开发时几乎可以直接翻译成函数。

四、报告交付:谁看、看什么、多久看一次

报告交付是需求拆解的收口环节。它决定了平台的输出接口,也反过来约束前面的分析目标。需要明确三件事:

  1. 交付对象:试验工程师关注过程曲线与异常点;项目主管关注结论指标与是否通过;客户关注合规项与签字页。
  2. 交付形式:Word/PDF 正式报告、HTML 交互页面、Excel 数据附表,三者往往并存。
  3. 交付节奏:单次试验后即时出、每日汇总、还是阶段评审时批量出。

节奏尤其关键。如果是"单次试验后即时出",平台就必须支持一键触发、自动命名、自动归档;如果是"阶段批量出",则可以接受人工挑选数据、手动补充结论。这两种节奏对应的自动化程度差别很大,必须在需求阶段就定下来。

五、功能边界与用户角色

把上面四个维度收拢,就能画出平台的功能边界。下面这张图把测试场景、数据来源、分析目标、报告交付串成一条需求链路,并标出各环节对应的用户角色与平台职责边界。

测试数据分析平台需求链路与功能边界 测试场景 台架 / 整车 / 温循 采样率·通道数·时长 决定处理架构 角色:试验工程师 数据来源 MDF4 / TDMS / BLF Excel / SQL / Parquet 通道字典标准化 角色:数据管理员 分析目标 可视化:MAP / 曲线 量化:效率 / 温升 / 损伤 输入+方法+输出三元组 角色:分析工程师 报告交付 Word / PDF / HTML 即时 / 批量 自动命名归档 角色:主管 / 客户 平台功能边界(虚线内为平台职责) 导入与标准化 格式解析·单位统一·对齐 分析与计算 指标函数·批处理·缓存 可视化与出图 模板化·批量·交互 报告生成与归档 模板填充·命名·版本 边界之外(不由平台承担) 采集硬件配置·传感器标定·试验执行 试验结论的工程判断与签字责任 关键约束(需求阶段必须确认) 内存上限·单次数据量·出报告时限 通道字典版本·报告模板版本

图中虚线框内是平台职责,虚线外是明确不做的部分。把"不做什么"写清楚,比写"要做什么"更能防止项目失控。例如采集硬件配置、传感器标定、试验执行本身都不属于分析平台;试验结论的工程判断与签字责任也应由人承担,平台只提供数据与图表支撑。

六、用户角色与权限的对应关系

需求拆解的最后一步是把角色落到操作上。常见角色有四类:试验工程师负责导入数据、选择分析模板、触发报告;分析工程师负责维护分析函数与通道字典;数据管理员负责数据归档与检索;主管与客户只读报告。角色不同,对平台的接口要求也不同——工程师需要批量脚本入口,主管需要稳定的报告输出,客户需要不可篡改的交付件。把这些写进需求,后续做界面和权限时就不会反复返工。

需求拆解阶段最容易犯的错误,是把"分析目标"写成功能清单(如"支持画图""支持导出")。功能清单无法判断对错,而"输入通道 + 计算方法 + 输出形式"的三元组可以。建议每个分析目标都按三元组写一遍,写不出来的,说明还没想清楚。

把本章的四维链路落到一份可执行的需求确认单上,通常包含:场景清单(含采样率、通道数、时长)、数据来源与格式清单、通道字典初稿、分析目标三元组列表、报告交付对象与节奏、角色权限表、以及明确的边界外事项。这份确认单不需要很长,但每一项都要能被验证。它是后续所有开发工作的基准,也是第2章开始搭建工程骨架时的直接输入。