4. 自动化测试体系架构设计
航电计算平台的自动化测试体系不是“一台电脑加几根线”的简单组合,而是一套从测试意图到测试结论逐层传递、逐层收敛的分层系统。分层的核心目的,是让每一层只关心自己最擅长的事:上层关心“测什么、判据是什么”,下层关心“怎么激励、怎么采样、怎么把物理量变成可判读的数据”。如果层次划分不清,测试脚本里就会混入大量硬件地址、通道号和采样率,导致换一块接口板就要重写全部用例。
本节围绕五个层次展开:测试系统分层架构、测试执行器、测试控制器、被测件接口适配层、数据采集与分析层。它们的关系可以用下面的结构图表示。
4.1 分层架构的设计原则
分层的第一原则是依赖单向:上层依赖下层的抽象接口,下层不感知上层的存在。测试执行器调用“设置离散量输出”这样的逻辑操作,而不是直接写“往0x2A0地址写0x01”。第二原则是层内聚、层间松:每层内部可以自由替换实现,只要接口契约不变。第三原则是数据与控制分离:控制路径负责“什么时候做什么”,数据路径负责“采到了什么”,两者在时间戳上对齐,但不在代码里耦合。
以某型航电计算平台测试为例,测试用例描述“在ARINC 429通道1上发送标签0x123、数据字0x0000A5,延迟50ms后读取离散量输入通道D3,期望为高电平”。执行器解析这条用例后,向控制器发出“发送429帧”和“读取离散量”两个逻辑指令;控制器根据当前资源占用情况,将429帧分配到实际板卡端口,将离散量读取分配到另一块IO板;适配层完成协议打包和电平转换;采集层在50ms后采样并回传结果。整个过程,用例作者不需要知道板卡型号和端口号。
4.2 测试执行器:用例的解析与调度
测试执行器是“测试大脑”,负责把测试用例翻译成可执行的步骤序列,并管理执行状态。一个实用的执行器通常包含四个模块:用例解析器、步骤调度器、断言引擎、结果记录器。
用例解析器读取结构化测试用例。推荐使用YAML或XML描述,便于版本管理和自动生成。以下是一个简化的用例片段示例:
case_id: TC_PWR_001
description: 电源上电后离散量D3应在50ms内变高
steps:
- action: set_discrete
channel: D3
value: low
- action: power_on
rail: 28V
- action: wait
ms: 50
- action: read_discrete
channel: D3
expect: high
tolerance_ms: 10
步骤调度器按顺序执行,但需要处理三类特殊情况:等待类步骤(不占用CPU,用定时器唤醒)、并行类步骤(多个激励同时下发)、条件分支(根据上一步结果决定下一步)。断言引擎负责比对实测值与期望值,支持精确匹配、范围匹配、趋势匹配三种模式。结果记录器将每一步的原始数据、时间戳、判定结果写入结构化日志,供后续分析层使用。
4.3 测试控制器:资源调度与时序同步
控制器解决的是“多个测试资源如何协同工作”的问题。航电测试中常见的资源包括:ARINC 429发送/接收卡、1553B总线仿真卡、离散量IO板、模拟量采集板、可编程电源、继电器矩阵等。控制器维护一张资源表,记录每个资源的占用状态、能力描述和当前配置。
时序同步是控制器的关键职责。例如,要测试“1553B命令发出后10ms内429数据应更新”,控制器需要先触发1553B发送,记录发送时刻T0,然后在T0+10ms触发429接收采样。如果两块板卡不在同一时钟域,还需要引入硬件触发线或IEEE 1588时间同步。实际工程中,建议将同步误差控制在测试容差的1/5以内。若容差为10ms,则同步误差应小于2ms。
4.4 被测件接口适配层:从逻辑通道到物理信号
适配层是“翻译官”,把控制器发出的逻辑指令转换为被测件能识别的物理信号,同时把被测件输出的物理信号转换为采集层能处理的数据。适配层通常包含协议转换、通道映射、电气隔离和信号调理四个子模块。
协议转换负责将逻辑帧转换为具体总线协议帧。例如,逻辑指令“发送429标签0x123,数据0x0000A5”需要转换为:标签8位、源/目的标识2位、数据19位、奇偶校验1位,共32位,再按ARINC 429的 bipolar return-to-zero 编码调制到差分线上。通道映射维护一张逻辑通道到物理端口的映射表,例如“429_CH1 → 板卡A端口2”。电气隔离用于保护测试设备和被测件,常见隔离电压为500V或1500V。信号调理包括放大、衰减、滤波、阻抗匹配等,确保信号在采集层量程范围内。
4.5 数据采集与分析层:从原始采样到可判读结论
采集层负责多通道同步采样、时间戳对齐、数据缓存和预处理。采样率的选择遵循奈奎斯特准则,但工程上通常取信号最高频率的5~10倍。例如,离散量信号边沿上升时间约1ms,则采样率建议不低于5kHz。时间戳对齐采用统一时基,所有通道的采样点都标记同一个时钟源的计数值。
分析层完成三项工作:特征提取、判据比对、趋势分析。特征提取从原始波形中计算上升时间、过冲、稳态值、纹波峰峰值等参数。判据比对将特征值与用例中定义的期望范围比较,输出通过/失败/警告。趋势分析则对多次测试的同一参数进行统计,观察是否出现漂移。例如,某电源模块的28V输出在连续10次测试中分别为28.02V、28.01V、28.03V、28.00V、28.02V、28.04V、28.01V、28.03V、28.02V、28.05V,均值28.023V,标准差0.014V,虽然单次都在28V±0.1V范围内,但标准差偏大,提示需要关注滤波电容状态。
最后需要强调,分层不是目的,而是手段。对于小型测试台,可以适当合并控制器和适配层;对于大型分布式测试系统,则可能需要在控制器和适配层之间增加“资源代理层”。架构设计的判断标准始终是:测试用例是否易于编写和维护、测试结果是否可复现、更换硬件时是否需要重写用例。满足这三条,分层就是有效的。