引言:随着社会的不断进步,计算机技术得到了迅速发展,人们的生活和工作已经离不开计算机和软件,其在航空领域也发挥着重要作用。软件一旦发生故障,导致的后果是无法想象的,轻则遭受损失,重则剥夺生命,因此不能有一丝一毫的懈怠。为了进一步简化传统电子系统的结构,逐步减少直升机重量、机身体积、安装设备数量,降低连接复杂度,需要集成机电管理系统。机电管理专业的重点,是机械综合管理的发展产物。直升机电气机械综合管理系统的开发,会使系统软件的复杂程度加大。要想找到和解决故障问题,相关人员需设计合适的软件测试方法。
一、 嵌入式软件测试技术
嵌入式软件的单体测试,主要是使用综合开发环境或测试工具的全数字模拟器,找到单元编码期间不正确的地方。在极其特殊的情况下,可以使用驱动程序模块和固定模块来完成测试。嵌入式软件的组件测试,关系到软件和硬件的结合程度,以及组件的综合水平[1]。嵌入式软件的构成项目测试,主要是将软件加载到对应的硬件平台上,测试软件形成独立构成项目后的运行状态,确认软件和硬件的正确联合可以起作用,能够满足指定的性能要求。构成项目的测试必须在对象的机器环境中进行,可以用模拟模型代替架桥装置,或者使用硬件嵌入式模拟测试工具,构建测试用的测试环境。在嵌入式软件的系统测试中,将测试软件与硬件源合并,形成测试用的完整应用系统,确认整个系统符合开发任务书的要求。嵌入式软件的系统测试,对于测试环境有着严格的要求,必须在实际目标机器环境中运行,包括运行中的平台和交叉链接设备。
由于嵌入式软件设计开发的方法、技术、过程以及工具都与通用计算机软件不同,所以需要使用更先进的测试方法和工具对嵌入式系统进行测试。随着越来越多的领域使用软件来控制各种嵌入式设备,如何对嵌入式软件进行测试和验证,如何保证软件能够满足系统要求,就显得尤为重要。
二、 软件测试在机电综合管理系统中的必要性
直升机的机电综合管理系统软件是实时嵌入式软件,嵌入式实时软件测试是软件行业难以识别的,其理由之一是系统内的软件和硬件是紧密结合的。制作应用软件时,硬件资源的管理和使用需要引起重视,因为其决定了系统的品质、性能和效率。此外,许多嵌入系统需要长时间自主执行,完成特定任务。执行后,不需要手动介入和对话,因此需要提前进行手动测试[2]。并且,对于实时的编入系统和外界之间的信息交换,有着严格的要求。在某些时间点,一些运行必须在特定的系统状态下进行,特定的事件在序列到达时才发生。为了避免软件存在缺陷,需要慎重设计测试用例,并确保足够的测试覆盖。直升机的机电综合管理系统的软件开发,是软件设计者的工作,由于人们不能毫无缺陷地工作和沟通,所以出现错误是不可避免的。此外,通过持续强化电气机械式综合管理系统的应用软件功能,持续改善监控对象子系统的复杂度,应用软件的规模也在扩大,这些因素会导致错误的可能性增加。软件测试也是确保软件质量和可靠性的重要手段,可以发现很多隐藏的软件缺陷。在发现错误后,机电系统的项目经理和软件开发者可以分析错误的原因和错误的分布特性,找出当前使用软件过程中的缺陷,并加以改善。即使没有检测错误,该测试也很有价值,因为测试不仅仅是为了检测错误,验证MMS软件的正确功能也很重要,能够保证软件的正常功能[3]。
三、 分析具体的测试流程
(一)测试模型
基本上,软件开发的过程对应软件生命周期整体的测试模型。测试过程结束后,代码的静态分析将继续,软件的详细设计动态单元测试也不会停止组件测试。测试的组件将对组成项目的软件要求分析进行测试,然后测试的构成项目将针对系统要求进行测试,最后发布出来。
(二)测试阶段
结合我国直升机目前的情况,在直升机电气机械综合管理系统中,出现了很多的软件测试技术,包括文档检查、静态测试代码检查技术、动态测试黑盒和白盒测试技术。测试阶段的对象主要是单体测试和系统测试,在同一工作载荷下,单体测试通常由两种测试方式构成,分别是静态和动态,动态测试的适用范围比静态测试大一些,能够组成项目测试[4]。
电气机械管理计算机软件的单体测试,是为了确保单体测试环境的确立,独立测试代码内的最小单元(可以独立编译的程序模块)的正当性测试,由此,测试对象的软件单元可以独立执行。硬件的准备包括主控制计算机、机电系统模拟综合设备USI、航空电子系统模拟设备UICD和机电管理计算机;软件的准备包括电器管理计算机的“应用软件设计报告”和文件化设计程序,以及通过编译测试中的软件单元的源程序。
测试的主要内容如下:第一,代码检查:软件代码命名规则检查、编码形式检查、寄存器使用量检查、程序逻辑检查、算法检查、可变使用量检查、标准化检查等。第二,模块接口测试:需要检查包含数据通过测试的模块流测试、参数列表的模块接口、调用子模块的参数、整体数据以及文件的输入和输出操作。第三,本地数据结构检查:设计检查数据类型、初始化、默认值的测试用例[5]。第四,路径测试:选择测试模块内重要执行路径的测试用例。第五,错误处理测试:确认模块的错误处理功能中是否包含错误或缺陷。第六,边界测试:确认数据流中是否有出现错误的可能性,控制流与所确定的比较值的关系,是正好相等,还是大于或小于所确定的比较值。第七,计时测试:需要模块执行时间时才能进行。
(三)系统测试
选用常见的测试类型中的功能测试、性能测试、接口测试和结构覆盖,测试边界和异常的状态下软件的功能和性能,测试软件配置项之间以及配置项与硬件之间的接口,测试人机交互操作。
第一、功能测试,对系统设计文件中规定的各项软件功能进行以下测试,以验证系统是否达到所规定的要求:正常值的等价类输入数据检测;非正常值的等价类输入数据检测;边界值的输入数据检测。
第二、性能测试:软件在获得定量结果时计算的精确性;有速度要求时,计算完成功能的时间;软/硬件运行环境中的因素是否限制了软件的性能;系统的负载能力;系统运行时软件占用的空间;系统对并发事务和并发用户访问的处理能力。
第三、接口测试:系统内部接口的正确性和一致性;系统外部接口的正确性和一致性[6]。
数据处理类嵌入式软件,一般涉及到复杂的数学运算,这样就带来计算结果的正确性如何判断的问题。对于一组输入数据和结果数据,需要将输入数据输入仿真程序计算得到一个计算结果数据,将其与获取的结果数据进行比较,来判断程序运算功能的正确性。这里需要注意两个问题:第一,仿真程序的正确性;第二,仿真计算结果和采集实际结果的误差范围。
四、结束语
综上所述,直升机的机电综合管理系统功能日益强大,与此同时,对系统软件提出了更高的要求。不仅要求其能正常发挥功能,而且还要弥补自身的不足,降低故障发生的可能性。基于此,相关人员需要将嵌入式软件的测试理论和技术作为指导,结合实际情况,掌握机电综合管理系统软件的重点内容。系统测试能够在提高测试效率的同时,促进测试环境的开发,节省准备时间。测试工作的质量决定了机电管理计算机产品的品质,随着机械电子学的不断开发,相关人员需要对机械电子学管理系统的软件测试,进行更深层的研究,因为其在保证机械电子学管理系统的运行质量方面,有着不可替代的作用。
参考文献:
[1]王永红,王贺艳.嵌入式软件测试技术的探索与分析[J].计算机光盘软件与应用,2014,17(6):271-272.
[2]张义德,王国庆,杨平,张臻鉴.基于需求的航空嵌入式软件测试技术研究[J].计算机工程与设计,2002,23(10):4-7.
[3]胡一飞.嵌入式软件测试技术的研究及其在闪存文件系统测试中的应用[D].同济大学,2007.
[4]王伟,吴丽媛,谢剑斌,等. 嵌入式软件测试技术在机电综合管理系统中的应用[J].直升机技术,2018(2):64-67,72.
[5]胡尊帆,吴丽媛,李春雷,等. 直升机机电综合管理系统通用测试性试验平台设计[J].中国科技信息,2021(7):36-37.
[6]宋雁翔.航空嵌入式机载软件测试自动化的质量保证技术研究[D].四川:电子科技大学,2008.