4. 测试需求分析与用例设计

系统需求描述的是“航电系统应当具备什么能力”,而测试需求描述的是“我们如何证明这些能力确实存在且满足约束”。两者之间不是简单复制关系,而是一次可验证性转换:把“应支持”“应满足”“应能在某条件下工作”这类系统级陈述,拆解为可观察、可激励、可判定的测试条件。测试需求分析的核心任务,就是完成这次转换,并建立从系统需求到测试用例的双向追踪关系。

一、从系统需求到测试需求:先做可验证性分解

以一条典型的航电系统需求为例:“系统应能在惯导有效时,以不低于20 Hz的频率向显示单元输出姿态信息,姿态误差不超过0.5°。”这条需求包含功能、接口、性能、精度和前置条件五类信息。直接写一条“测试姿态输出”的用例无法覆盖它,必须分解为若干测试需求:

  • 功能测试需求:惯导有效时,姿态信息输出功能应被激活;惯导失效时,应给出有效标志或降级提示。
  • 接口测试需求:输出接口的协议格式、数据字定义、更新周期与接收端一致。
  • 性能测试需求:输出频率≥20 Hz,且在系统负载正常与高负载两种状态下均成立。
  • 精度测试需求:在给定姿态激励下,输出姿态与基准姿态的偏差≤0.5°。
  • 边界与异常测试需求:惯导数据超时、数据跳变、频率临界、姿态角跨越±180°时的行为。

分解完成后,每条测试需求都应具备“可激励、可观察、可判定”三要素。若某条测试需求无法找到激励点或观察点,说明系统设计阶段的可测试性不足,应反馈到需求或接口设计,而不是在测试用例里勉强绕过。

二、追踪关系:双向矩阵比单向列表更有用

测试需求追踪通常用需求追踪矩阵(RTM)表达。矩阵至少应包含:系统需求编号、测试需求编号、测试用例编号、覆盖类型、验证方法、当前状态。正向追踪回答“每条系统需求是否都有测试覆盖”,反向追踪回答“每条测试用例是否都能追溯到某条系统需求”。反向追踪尤其重要,它能发现两类问题:一是无源用例,即没有需求依据的冗余测试;二是需求遗漏,即用例存在但系统需求未定义,提示需求本身可能不完整。

覆盖类型建议区分:完全覆盖(功能、接口、性能、精度均有用例)、部分覆盖(仅覆盖功能,性能待补)、间接覆盖(通过系统级场景间接验证)。状态可设为“已设计、已评审、已执行、已通过、阻塞”。这样矩阵不只是台账,而是测试进展与风险的可视化依据。

系统需求 → 测试需求 → 测试用例 追踪与覆盖关系 系统需求 SR-01 姿态输出 功能与频率 SR-02 姿态精度 ≤0.5° SR-03 惯导失效 降级与告警 SR-04 接口协议 数据字与周期 测试需求 TR-01 功能激活 惯导有效/失效 TR-02 输出频率 ≥20 Hz TR-03 姿态精度 偏差≤0.5° TR-04 接口一致性 格式/周期/字定义 测试用例 TC-01 正常姿态输出与频率测量 激励:惯导有效,基准:总线记录仪 TC-02 姿态精度对比测试 激励:转台给定角,基准:转台读数 TC-03 惯导失效降级与告警 激励:断开惯导,观察:告警与标志 TC-04 接口协议与周期一致性 激励:总线监听,判定:数据字与周期 反向追踪:每条用例可回溯到测试需求与系统需求 正向追踪 用例映射 反向追溯

三、功能覆盖与接口覆盖:两条主线不能混

功能覆盖关注“系统是否做了该做的事”,接口覆盖关注“系统与外部/内部交联对象之间的数据是否正确、及时、完整地交换”。在航电系统中,接口覆盖往往比功能覆盖更容易被低估。以ARINC 429或AFDX总线为例,接口覆盖至少应包含:数据字标签与SDI/SSM位、刷新周期、源/目的标识、数据有效性标志、总线负载下的时延与丢包行为。若只测“功能能跑通”,很可能漏掉标签错位、周期抖动或有效位未更新这类问题。

建议为每个接口建立接口测试清单,逐项确认:物理层连接、协议帧格式、数据字映射、更新率、超时与重传策略、错误注入后的行为。功能覆盖与接口覆盖在用例层面可以合并执行,但在追踪矩阵中应分别标记,避免“功能通过”掩盖“接口未覆盖”。

四、边界与异常用例设计:等价类、边界值、场景法组合使用

边界与异常用例是发现系统脆弱点的关键。常用方法包括等价类划分、边界值分析、错误推测和场景法。以姿态角为例,有效范围设为-180°~+180°,则边界点包括-180°、-179.9°、0°、+179.9°、+180°,以及跨越±180°的跳变点。异常输入包括:惯导数据超时(如超过100 ms无更新)、数据跳变(单帧跳变超过10°)、频率低于20 Hz、数据字有效位为无效、总线负载突增导致周期抖动。

设计时可采用“正常—边界—异常—恢复”四类用例组合。例如:

用例编号测试条件激励/输入预期结果覆盖类型
TC-05姿态角边界转台给定+180.0°输出姿态为+180.0°,误差≤0.5°,无溢出边界值
TC-06跨越±180°转台从+179.5°连续转到-179.5°输出连续,无跳变超过0.5°,符号处理正确边界+功能
TC-07惯导数据超时断开惯导数据超过100 ms姿态标志置为无效,告警输出,显示降级提示异常
TC-08数据跳变单帧注入+15°跳变系统应抑制或标记该帧,不直接输出跳变姿态异常
TC-09输出频率下限系统高负载,测量输出周期频率≥20 Hz,周期抖动在允许范围内性能边界
TC-10恢复过程惯导恢复有效后重新接入姿态输出自动恢复,标志由无效转为有效,无残留告警恢复

表中TC-05至TC-10均为示例设计,实际阈值需依据系统需求与接口控制文件确定。边界值的选择应优先覆盖“刚好等于、刚好小于、刚好大于”三类点,异常用例则应覆盖“单点故障、组合故障、故障后恢复”三种情形。

五、用例设计成果:可执行的测试用例模板

测试用例最终要落到可执行层面。一个完整的航电测试用例至少应包含:用例编号、追踪的测试需求、前置条件、激励设备与激励方式、观察点与采集工具、判定准则、通过/失败判据、备注。下面给出一个可直接参考的示例结构:

用例编号:TC-02
追踪需求:TR-03(姿态精度≤0.5°)
前置条件:惯导有效,转台已校准,总线记录仪已启动
激励方式:转台依次给定 0°、+30°、-30°、+90°、-90°、+180°、-180°
观察点:显示单元姿态输出、总线记录仪原始数据字
判定准则:每个给定角度下,输出姿态与转台基准偏差≤0.5°
采样要求:每个角度稳定保持5 s,采样不少于100帧
通过判据:全部角度满足偏差要求,且无数据字有效位异常
备注:若某角度超差,记录该角度、偏差值、时间戳与原始帧
测试需求分析不是一次性工作。当系统需求变更、接口协议升级或发现新的异常模式时,应同步更新测试需求、追踪矩阵和用例集,保持“需求—测试—用例”三者一致。
常见误区:只做功能覆盖,不做接口覆盖;只测正常值,不测边界与异常;用例没有追踪编号,导致需求变更后无法评估影响范围。建议在用例评审时同时检查正向覆盖率和反向追溯完整性。

综上,从系统需求到测试需求的关键动作是“可验证性分解”,从测试需求到用例的关键动作是“覆盖类型标注与追踪绑定”,而边界与异常用例则是把系统从“能工作”推向“可信工作”的必要补充。三者结合,才能形成可评审、可执行、可追溯的测试需求与用例体系。