2026.06.06
本文字数:5201
预计阅读时长:14分钟
摘要
为解决机载软件测试中存在的测试覆盖不充分、测试效率低等问题,文章从软件功能特点和测试需求出发,利用数字化驱动的自动测试手段,进行虚实结合的机载软件自动化测试技术研究,提出基于半实物仿真测试环境的自动化测试系统,在保证目标软件运行真实性同时,实现自动化测试全过程,并以实际机载软件测试应用进行工程实践,结果表明通过该测试系统可有效提高机载软件测试效率和质量,确保机载软件可靠、按期交付。
关键词
虚实结合;自动化测试;半实物仿真;测试效率
作者:张絮,韩启,王媛
作者单位:中航工业一飞院,陕西 西安
DOI:10.12677/etis.2025.26035
1 引言
随着机载系统综合化程度不断提高,机载软件规模的逐年增长,软件测试对软件质量的重要作用愈加凸显。机载软件配置项、系统级测试主要在系统试验室目标机环境中进行,由于外部环境的局限性,往往在较多异常及边界情况下测试的覆盖不够充分[1],可能造成较多软件故障隐患,同时软件测试人员手工执行测试效率低,制约了测试工作的推进,给机载软件研制及交付带来了较大的压力,因此传统的软件测试手段已不能满足较短周期内高复杂度和高规模的机载软件测试要求了。
2 机载软件特点
航空机载系统普遍存在交联系统设备数量庞大,测试场景复杂,同时涉及较多人机交互行为。以综合显示控制应用软件为例,作为航空电子系统的显示终端,为飞行机组提供综合显示信息,完成综合控制。其显示画面类型多且变化多样、交联逻辑复杂、操作形式多变,对其可靠性要求越来越高[2],在软件测试中,应对其任务画面的显示和控制逻辑功能、接口等进行全面测试。
3 机载软件自动化测试环境
航空机载软件大多数属于重要级以上软件,必须在目标计算机运行环境中进行相应的黑盒测试,对此,机载软件自动化测试研究需建立在虚实结合的半实物仿真测试环境基础上。
半实物仿真测试环境采用真实机载系统设备,外围环境为系统仿真的数字化模型,以及总线监控、飞行战场环境、自动测试引擎等软件测试环境,通过机载网络板卡与机载系统设备交联,具有轻量化、部署灵活、可扩展能力强、能够快速构建等特点,由于半实物仿真测试环境采用了真实机载系统设备,保证了目标软件运行环境的真实性,将自动化测试技术与半实物仿真测试环境相结合,包括对机载软件显示画面和控制逻辑等的自动测试,从而可实现虚实结合的机载软件自动化测试需求。
4 虚实结合的机载软件自动化测试系统设计
虚实结合的机载软件自动化测试系统能够帮助测试人员快速与半实物仿真测试环境集成,灵活接入被测目标系统,支持根据软件需求快速或自动生成测试用例,自动生成可执行脚本并执行,自动记录测试结果,自动生成测试报告及数据管理等功能[3],进行便捷、高效的虚实结合的软件自动化测试。
自动测试系统架构采用分层式设计架构,分为测试用例设计层和测试用例执行层,在测试用例设计层,采用关键字驱动技术,通过对需求进行分析,基于需求快速设计基于关键字的测试用例集,可有效提高测试用例的复用性和可维护性[4]。在测试用例执行层,将测试用例依据映射表转译为测试脚本,通过测试引擎执行测试脚本,生成测试报告。

Figure1. Automated testing system architecture design diagram
图1. 自动测试系统架构设计图
自动测试系统架构设计如图1所示,自动化测试首先从关键字开始定义,定义具有工程意义的对象,如软件应用功能的信号定义“燃油量”、“飞行速度”等,测试用例设计同时定义一系列针对配置项、系统测试的动作库,如“设置”、“验证”等,利用关键字+动作即可进行测试步骤的编写,多个测试步骤形成测试逻辑,不同的测试逻辑对应不同的测试用例。
下一步,建立关键字与软件接口定义对应的映射表,确定二者的唯一对应关系,如设置速度SET_SPEED对应于DEVxx.BLKxx.SIGxx.speed。
在测试用例中,通过关键字引用映射表中的接口定义信号,将其转换为可执行的测试脚本,当软件接口定义发生变化而功能不变时,只需修改相应的映射关系列表,不需要对测试用例进行更改,从而减少了测试用例的维护工作量[5]。
执行端中具有测试引擎,该引擎根据关键字从映射表中获取对应的接口定义信号信息,对每个步骤进行解析,每个步骤中都包含动作,最终对动作进行执行,同时,将每个动作中的接口定义信号再次打包为总线消息块,该消息块对应于接口定义信号组包后的消息块,用于总线传输。
最终,每个消息块都按照动作执行,包括发送、等待等,作用到待测软件中,同时对其响应进行检测判别,获得测试最终结果。
建立如图2所示的机载软件自动化测试系统,在测试时,首先通过测试用例设计模块生成与需求对应的测试用例,并存储至数据库模块进行管理,在自动测试执行模块将测试用例转换为可执行测试脚本,通过接口模块与半实物仿真测试环境进行测试数据交互,获取测试脚本执行中数据激励或采集的接口定义信号及数值。对于具有显示画面的测试用例,可与外部图像识别模块通信,提供进行识别、判别所需的信息,并获取图像识别模块的返回信息。最后通过测试报告模块生成符合要求的测试报告。在测试过程中,可通过数据监控模块对测试过程数据进行可视化监控。

Figure2. Avionics software automated testing system functional architecture
图2. 机载软件自动化测试系统功能结构图
5 机载软件自动化测试平台构建
机载软件自动化测试平台可支持基于关键字的快速测试用例设计,并自动生成可执行测试脚本,能够提供被测软件真实目标环境及外部接口及工作环境的模拟功能,支持机载软件显示画面、控制逻辑等功能、接口测试及性能测试,具有测试管理、测试驱动以及测试报告生成等主要功能,能够对被测数据实时监控,并且根据不同测试环境需求进行快速集成、适配[6]。
测试平台由软件部分和硬件部分组成,其功能主要由测试用例设计工具、自动测试执行管理工具、接口适配工具组成,如图3所示。

Figure3. Avionics software automated testing platform functional composition
图3. 机载软件自动化测试平台功能组成
1)测试用例设计工具
测试人员可利用测试用例设计工具进行用例设计,包括多种标准动作库、处理流程等,根据测试需求定义关键字,扩展动作,完成用例设计。支持关键字映射关系生成,并将测试用例解析为可自动执行的测试脚本。
2)自动测试执行管理工具
支持测试计划制定,导入待执行的测试用例脚本,依据测试任务管理测试用例执行[2],测试完成后自动生成测试报告。
3)接口适配工具
接口适配工具可实现对全数字虚拟测试环境和半实物仿真测试环境的适配以及测试监控功能。
全数字仿真环境指机载软件部署运行于本地Windows系统的电脑环境中,一般在基于真实目标机的半实物仿真测试环境测试之前,在全数字虚拟环境中对软件程序进行调试和预测试,可尽早发现软件错误,由于自动化测试系统与被测环境的解耦设计,同一套测试用例同时可同时应用于两种测试环境中,进一步提高了软件测试效率和质量。
当软件测试运行在虚拟测试环境中时,利用该模块进行接口适配,完成对机载软件的数据激励和采集,从而实现自动测试回路;当需要在基于真实目标机测试环境中测试执行时,可通过一键式配置切换,实现对真实测试环境的数据激励,并通过数据采集或图像识别接口实现自动测试回路。在软件测试执行过程中实时对测试数据进行监控和回放。
测试平台运行工作原理如图4所示:首先在测试设计层实现对需求的分析,基于需求进行用例设计,依次生成测试用例、可执行测试脚本,在测试执行层建立测试任务,执行测试脚本,通过接口适配工具实现测试环境配置、数据激励和数据监控等功能,完成与虚拟或真实测试环境的通信,生成测试报告,最终完成整个自动测试过程。

Figure4. Working principle diagram of the test platform
图4. 测试平台运行工作原理图
6 机载软件自动化测试应用
在所构建的虚实结合的机载软件自动化测试平台上,选取航空电子系统某显示控制软件中的典型功能进行测试应用,包括测试用例设计、测试执行、测试报告生成等功能。
选取某系统子页面的转弯系统工作状态显示功能,作为软件中典型显示控制功能进行应用,该功能描述为:软件读取转弯系统工作状态信号,在转弯角度左下方正确显示工作状态字符,字符颜色根据信号中的“系统显示颜色”确定。
在基于关键字的测试用例编辑界面编写该功能对应的测试用例如图5所示,包含测试用例名称、用例说明、用例步骤及预期结果等,其中验证步骤采用图像识别对转弯状态的字符和颜色进行自动识别测试。

Figure5. Steering system operating status display test case
图5. 转弯系统工作状态显示测试用例
启动自动测试管理执行工具,建立相应的工程和测试任务,点击“运行”按键执行基于图像识别的自动测试,右侧显示测试过程中显示每一测试步骤运行情况,包括验证对象、期望值、识别结果图片和验证结果等,如图6所示,该测试用例所有步骤均通过,证明该软件功能满足相应设计要求。

Figure6. Comprehensive test result information
图6. 测试结果详细信息
图7 为测试结果实际截图(红色部分为被测元素“转弯状态”所打标记),通过在测试结果详细信息处点击结果图片进行人工核查与问题确认。

Figure7. Test results screenshot
图7. 测试结果截图
测试结束后,在相应路径下查看自动生成的测试记录及测试报告内容,生成报告格式满足相应标准要求,节省了测试人员编写报告的时间,缩短了测试周期。
7 应用结果对比
针对以上测试过程,对传统手工测试和自动化测试在测试设计、测试执行和测试报告编写时间的数据进行比较,具体见图8所示。

Figure8. Test time comparison chart for different test cases
图8. 测试时间对比图
通过实际工程应用表明,手工测试和自动化测试均能正确得到测试结果,根据图8数据对比,采用自动化测试比传统手工测试的总时间减少了约76%,很大程度提高了软件测试效率,减少了测试人员的工作量,具有明显优势。
8 结束语
虚实结合的机载软件自动化测试技术利用数字化驱动的自动测试手段,改变了传统的测试模式,所建立的测试系统在保证了测试结果有效性的同时解决了需求覆盖不全面的问题,利用自动化测试手段有效缩短了测试周期、提高软件测试效率,高效、便捷地辅助测试人员开展测试工作,确保了机载软件可靠、按期交付。
参考文献

[1]郭旺, 丁晓明, 唐海鹏, 等. 半实物环境下嵌入式软件通用测试平台研究[J]. 西南大学学报(自然科学版), 2015(4): 62-66.
[2]段海军, 赵根学, 陈福, 等. 航空电子设备自动测试系统的软件架构设计[J]. 计算机测量与控制, 2016, 24(9): 167-169.
[3]夏佳佳, 邹毅军, 周江伟, 等. 嵌入式软件自动化测试系统研究[J]. 计算机测量与控制, 2016, 24(4): 22-25.
[4]王军, 孟凡鹏. 基于关键字驱动的自动化测试研究与实现[J]. 计算机工程与设计, 2012, 33(9): 3652-3656.
[5]Alsmadi, I. (2008) Building a GUI Test Automation Framework Using the Data Model. VDM Verlag.
[6]李碧涵, 胡益诚. 机载嵌入式软件的自动化测试架构设计[J]. 电脑编程技巧与维护, 2019(6): 13-15.
本文由《嵌入式技术与智能系统》授权发表,原文刊登在2025年第6期。《嵌入式技术与智能系统》杂志由汉斯中文开源期刊学术交流平台出版,是一本关注传统嵌入式技术与新兴智能系统前沿技术最新进展的国际中文期刊,编委团队汇聚了国内知名嵌入式系统专家与学者。《嵌入式技术与智能系统》系开放获取期刊,目前是双月刊,以电子期刊方式出版。本刊已被长江文库、Google Scholar、Open AccessLibrary、WorldCat收录。阅读原文可下载本篇论文PDF版本。



长按识别二维码投稿
欢迎高校师生和企业专家给我刊投稿

相/关/推/荐


关注我们,了解更多精彩内容


夜雨聆风