1. 航空软件测试平台开发导论

航空软件与普通商业软件最大的区别,不在于代码规模,而在于它一旦失效可能直接威胁飞行安全。因此,航空软件从需求、设计、编码到验证,都处在适航审定体系的约束之下。理解自动化测试平台为什么必须存在、应该具备哪些能力,需要先看清三个前提:软件在机载系统中的分类、DO-178C 对测试活动的硬性要求,以及人工测试在满足这些要求时的现实瓶颈。

一、航空软件的分类:等级决定测试强度

在机载系统中,软件并不是按“功能重要不重要”笼统划分,而是按失效后果的严重程度分级。DO-178C 沿用 DO-178B 的软件等级(Software Level)体系,从 A 到 E 共五级:

  • A 级:软件失效会导致飞机灾难性失效,例如电传飞控律计算、主飞行显示的关键姿态解算。
  • B 级:失效会导致危险性失效,例如部分告警与保护功能。
  • C 级:失效会导致较严重的失效,例如客舱压力控制的非关键环节。
  • D 级:失效仅导致轻微影响,例如部分维护信息显示。
  • E 级:失效不影响飞机安全,也不增加机组工作负荷,通常不参与适航审定目标。

等级直接决定测试的“证据强度”。A 级软件要求满足 DO-178C 表 A-7 中全部目标,包括语句覆盖(SC)、判定覆盖(DC)和修正条件/判定覆盖(MC/DC);B 级要求 SC 与 DC;C 级只要求 SC。这意味着同一段代码,若从 C 级升到 A 级,测试用例数量可能增加数倍,且每个判定中的每个条件都必须独立影响判定结果。测试平台若不能自动统计覆盖率并定位未覆盖的条件,A 级软件的验证几乎无法收敛。

二、DO-178C 对测试的核心要求

DO-178C 并不规定“必须用什么工具”,但它规定了必须产生的验证证据。与测试直接相关的目标集中在验证过程(Verification Process)中,可归纳为四条主线:

  1. 需求覆盖:每个高层需求与低层需求都必须有测试用例对应,且能双向追溯。
  2. 结构覆盖:按软件等级达到 SC、DC 或 MC/DC,并分析未覆盖代码的原因。
  3. 独立性:验证活动应由非开发者执行,或至少由独立于开发过程的人员确认。
  4. 可重复与可追溯:测试用例、测试结果、工具版本、配置项必须形成可审计的记录链。

这些要求落到工程上,就是大量重复的用例执行、结果比对、覆盖率采集和证据归档。以 MC/DC 为例,一个含 4 个条件的判定,理论上需要构造满足“每个条件独立影响判定”的用例组合,人工设计容易遗漏,执行后还需逐条核对真值表。这正是自动化测试平台的价值入口。

三、自动化测试平台的价值与核心能力

航空软件自动化测试平台不是简单的“脚本批量跑用例”,而是围绕适航证据链构建的工程系统。它的价值体现在三方面:把重复执行交给机器,把覆盖率与追溯关系自动关联,把测试结果固化为可审计的证据包。一个可用的平台通常需要具备以下核心能力:

  • 测试用例管理:用例与需求 ID、软件等级、配置项绑定,支持版本冻结。
  • 测试执行引擎:驱动目标机或仿真环境,按序执行用例并采集输出。
  • 结果判定与比对:支持期望值比对、容差判定、超时与异常捕获。
  • 覆盖率采集:与插桩工具或目标机调试接口配合,统计 SC/DC/MC/DC。
  • 追溯与报告:自动生成需求—用例—结果—覆盖率的追溯矩阵和审定报告。
  • 配置与版本管理:记录被测软件版本、工具版本、测试环境配置,保证可重复。

下面用一张结构图说明平台各能力模块与适航证据之间的对应关系。图中左侧是 DO-178C 的验证目标,右侧是平台模块,中间通过数据流连接,体现“目标驱动模块、模块产出证据”的关系。

DO-178C 验证目标与自动化测试平台能力映射 DO-178C 验证目标 需求覆盖与双向追溯 高层/低层需求 → 用例 结构覆盖 SC/DC/MC/DC 按 A/B/C 级递进 验证独立性 非开发者执行与确认 可重复与可审计 版本、配置、记录链 结果判定与异常分析 期望值/容差/超时 自动化测试平台模块 用例与需求管理 需求ID绑定 · 版本冻结 覆盖率采集与分析 插桩/调试接口 · 未覆盖定位 独立执行引擎 目标机/仿真环境驱动 配置与版本管理 软件/工具/环境快照 结果判定与报告 追溯矩阵 · 审定证据包 产出证据 需求追溯矩阵 需求↔用例↔结果 覆盖率报告 SC/DC/MC/DC 统计 执行记录 时间戳 · 执行者 配置基线 版本快照 异常分析记录 未覆盖原因说明

四、从人工到自动:一个可感知的对比

假设某 A 级飞控软件有 1200 条低层需求,人工执行一轮回归测试约需 3 人周,覆盖率统计靠插桩工具导出后手工整理,追溯矩阵用电子表格维护。当需求变更 5% 时,人工需要重新识别受影响用例、重跑、重新统计,周期长且容易漏项。引入自动化平台后,用例与需求 ID 绑定,需求变更可自动标记受影响用例;执行引擎在夜间批量跑完,覆盖率与追溯矩阵自动刷新。测试人员的工作从“执行与抄录”转向“分析未覆盖原因与判定异常”,这才是平台真正的价值所在。

需要强调的是,自动化测试平台本身若用于适航审定,也可能被认定为“验证工具”。按 DO-178C 的工具鉴定(Tool Qualification)要求,若工具的输出被用来替代人工验证活动,且工具可能引入未被检测的错误,则需按相应等级进行工具鉴定。因此平台在设计之初就应保留工具需求、工具验证记录和版本控制,避免后期返工。

五、本课程要解决的问题