2. 地面站自动化测试需求分析
地面站自动化测试的第一步不是写脚本,而是把“系统应该做什么、在什么条件下做、做到什么程度算合格”转化为可验证的测试需求。需求分析的质量直接决定后续测试用例能否覆盖真实任务、能否被自动化执行、能否在评审中站得住脚。本节围绕四个需求来源——任务剖面、操作流程、接口协议、适航/安全要求——说明如何提取可测试需求,并给出需求追踪矩阵与测试项清单的编写方法。
一、四类需求来源与可测试化转换
任务剖面描述地面站在一次完整任务中经历的工作阶段,例如:任务准备、链路建立、航线上传、起飞、巡航监控、任务载荷控制、返航、降落、数据回传与任务讲评。任务剖面提供的是“场景与阶段”,本身不是测试需求,需要转换为带条件、带判据的条目。例如“巡航监控阶段应能持续显示无人机位置与姿态”可转换为:在链路正常、遥测更新率标称10 Hz的条件下,地面站应在1 s内刷新位置与姿态显示,位置显示误差不超过10 m(示例判据,实际以型号指标为准)。
操作流程描述操作员在地面站上的动作序列,如“选择航线→校验航线→上传→回读确认”。操作流程中的每一步都可能对应一个可测试的交互需求:按钮是否可点、前置条件不满足时是否禁止、操作后是否有明确反馈、异常时是否可回退。可测试化时要写清触发条件、操作、预期界面状态与数据状态。
接口协议是自动化测试最直接的抓手。地面站与飞控、载荷、链路设备之间通常通过MAVLink、自定义串口协议或UDP/TCP传输。协议文档中的消息ID、字段、周期、校验方式、超时重传策略都可以直接转为测试需求,例如“心跳包丢失3 s后地面站应进入链路异常告警状态”。
适航/安全要求通常以条款形式出现,如“不得在未确认航线校验通过的情况下允许上传”“链路中断后应给出声光告警并记录日志”。这类要求往往涉及禁止性行为和强制告警,测试需求要写成可判定的通过/失败条件,并保留证据(日志、截图、告警记录)。
二、需求追踪矩阵(RTM)的编写
需求追踪矩阵的核心是建立“需求—测试项—用例—结果”的双向链接。正向追踪回答“每条需求是否都有测试覆盖”,反向追踪回答“每个测试用例是否都能追溯到需求来源”,避免出现无来源的冗余用例或遗漏的安全条款。
建议字段包括:需求编号、需求来源(任务剖面/操作流程/接口协议/适航安全)、需求描述、前置条件、预期结果、判据、优先级、对应测试项编号、对应用例编号、执行状态、证据链接。需求编号建议采用“REQ-GS-类别-序号”格式,例如REQ-GS-IF-0012表示接口类第12条。测试项编号与用例编号分别独立,通过矩阵关联。
以下是一个可直接参考的RTM片段(示例数据,非实测结果):
| 需求编号 | 来源 | 需求描述 | 判据 | 测试项 | 用例 | 状态 |
|---|---|---|---|---|---|---|
| REQ-GS-IF-0012 | 接口协议 | 心跳包丢失3 s后进入链路异常告警 | 3 s±0.2 s内出现告警,日志含时间戳 | TI-LINK-003 | TC-LINK-003-01 | 待执行 |
| REQ-GS-OP-0007 | 操作流程 | 航线未校验通过时上传按钮禁用 | 按钮置灰且点击无上传报文 | TI-UI-002 | TC-UI-002-01 | 待执行 |
| REQ-GS-SA-0003 | 适航/安全 | 链路中断后声光告警并记录日志 | 告警触发,日志字段完整可检索 | TI-SAFE-001 | TC-SAFE-001-01 | 待执行 |
三、测试项清单的编写与自动化可行性判断
测试项清单是从需求池到用例之间的中间层,它把“要测什么”固定下来,但不展开具体步骤。每个测试项应包含:测试项编号、对应需求编号、测试类型(接口/UI/告警/日志/安全/性能)、测试目标、自动化可行性、优先级、依赖环境。
自动化可行性判断是本节的关键实践点。可按以下维度评估:接口是否开放且协议文档完整;测试点是否可通过脚本注入或读取;判据是否可自动断言(数值、状态码、日志关键字);是否需要人工目视确认(如声光告警的物理表现)。对于需要人工确认的部分,可设计“半自动”方案:脚本触发并采集截图/录音,人工复核后回填结果。
四、从需求到测试项的示例推演
以“链路中断告警”为例,完整推演一次:
- 来源识别:接口协议规定心跳周期1 s,连续3个周期未收到心跳则判定链路中断;适航要求规定链路中断必须告警并记录。
- 可测试化:前置条件为地面站与飞控已建立链路、心跳正常;操作为停止发送心跳或断开链路;预期结果为3 s±0.2 s内界面出现链路异常告警、日志写入含时间戳和链路状态的记录;判据为告警出现时间与日志字段完整性。
- 测试项:TI-LINK-003“链路中断告警测试”,类型为接口+告警+日志,自动化可行性为“可自动化”,优先级高。
- 用例设计:TC-LINK-003-01使用脚本控制心跳发送器,在第5 s停止心跳,采集地面站界面状态与日志文件,断言告警时间戳与心跳停止时间差在2.8~3.2 s之间。
- 追踪:在RTM中把REQ-GS-IF-0012、REQ-GS-SA-0003与TI-LINK-003、TC-LINK-003-01关联,执行后回填状态与证据链接。
五、需求评审与基线化
需求池、RTM和测试项清单完成后,应组织一次需求评审,重点检查:每条需求是否有唯一编号和明确判据;是否存在无法测试的模糊描述;安全相关需求是否全部被测试项覆盖;自动化可行性标注是否合理。评审通过后对需求池和RTM进行基线化,后续变更需走变更记录,避免测试执行阶段需求漂移导致用例失效。
基线化后的RTM应能回答三个问题:任意一条需求,能否在10 s内找到对应测试项和用例;任意一个用例,能否追溯到需求来源;任意一次执行结果,能否关联到具体需求和证据。做到这三点,地面站自动化测试的需求分析才算真正落地。