基于全数字的航空机载软件验证平台研究

2018-07-04 02:56,,
计算机测量与控制 2018年6期
关键词:测试用例软件测试软件

,, , ,

(中国航空工业集团公司成都飞机设计研究所,成都 610091)

0 引言

航空机载软件验证工作贯穿机载系统从研制、使用到升级维护的整个生命周期,涉及不同的学科和领域,相互交叉。近年来,随着科学技术的迅速发展以及高新技术在新一代战斗机中的大规模运用,航空机载系统的能力不断提升,系统的综合化程度和复杂度也越来越高,导致机载软件验证也成为了一项复杂的工作[1]。因此,航空机载软件的验证应与软件的设计同计划、同实施,建立有效的技术及管理手段,以保证航空机载软件整个生命周期的验证工作顺利开展。

文献[1]指出,大部分的错误是在系统综合、项目试飞及使用维护阶段发现的。为减少系统综合、地面试验以及试飞的压力,应在软件配置项、系统级对软件逻辑、接口、性能等技术指标进行充分的验证。目前,机载软件配置项、系统测试主要依赖各专业的半实物仿真综合试验台,试验台搭建过程中主要考虑的是设计调试及系统综合验证的要求,对软件验证要求的支持不充分;仿真综合试验台除支持企业内专业完成科研任务外,还需为其他单位的系统综合集成,定型鉴定测评提供支撑,受硬件资源限制,试验台资源十分紧缺;机载软件系统级验证涉及电、液、油等专业交叉仿真,开环验证系统已经无法满足系统交互需求,需要考虑构建一套多学科联合仿真的机制来保障验证效果。

软件验证是机载软件研制生命周期的重要一环,应提倡尽早开展软件测试,从软件需求分析阶段开始,同步开展软件测试工作,即软件开发与验证的协同。但是传统的机载软件验证大多仍采用的是V模型或螺旋迭代模型的方式,软件测试滞后于开发,即系统设计、软件需求分析、软件设计、软件编码期间,软件验证部门可能无法从事任何工作;只有软件研发部门将软件需求、设计或代码移交给软件验证部门,才能进行下一步的工作。

随着虚拟仿真技术的日渐成熟及工程中的大量应用,飞机数字化功能样机、虚拟飞行试验、飞机虚拟维护保障等在行业内早已不是新闻。通过虚拟仿真技术,被测软件可完全脱离真实目标机运行在虚拟目标系统中,能充分进行有效的软件验证;在资源或进度紧缺的情况下,利用虚拟仿真系统可以使软件开发验证工作协同并行,加快软件研制周期。可以预见全数字、虚拟化是未来机载软件验证技术发展的趋势。机载系统仿真相关学科发展可谓迅速,飞机设计所各专业均逐步建立起所研制系统的全数字仿真环境,为实现各部门之间的仿真环境资源共享及软件开发验证协同,作为软件测试部门,重新开发实现所有专业的全数字仿真环境难度较大。针对现状,最好的方案是在保持原有各专业的仿真系统自治的情况下,实现系统之间的信息交互。

针对以上问题,需充分发挥飞机设计所各专业的优势,设计一套开放的互联架构,实现专业已有资源和经验的整合,构建基于全数字仿真的软件验证执行环境;为实现软件测试自动化,多学科联合仿真,需在执行环境之上,构建软件验证主控环境[2];为实现软件开发验证协同,需将软件验证过程纳入企业内精益研发平台进行管理,需打通已有测试管理平台与主控环境的数据接口,重新制定软件开发验证的协同流程,并将已有数据进行融合。

本文提出了一种全数字航空机载软件验证平台的设计方案,机载软件验证平台分为执行层、主控层和管理层。在执行层,基于企业内各专业已有的全数字仿真系统、多学科仿真模型,设计了一套以数据为中心的框架,实现系统之间的互联互通;在主控层,考虑软件测试要求及测试的可读性、可维护性需求,提出了采用基于测试场景的测试用例设计方法,实现测试场景与测试用例数据的分离,这对验证工作的分工安排、工作交接维护具有较大的意义;在管理层,对已有的企业级测试管理系统进行扩展,增加开发、验证人员协同工作模块,打通软件需求、设计、测试项、测试场景、测试用例的关联关系,实现开发验证的协同管理。

1 机载软件验证平台应用场景

假定某单位的系统室A、软件室B、软件测评中心C需要及时交互信息从而完成某机载系统的软件研制工作。部门之间的业务交互关系如图1所示。交互需求为:

图1 部门业务场景图

1)系统室A负责某系统的设计工作。

2)软件室B负责该系统的软件需求分析、设计及代码实现工作。

3)软件测评中心C负责该系统软件的测试工作。

4)系统室A向软件室B提供系统环境用于软件开发设计工作。当系统室A对系统环境发生更改时,需要将及时将更改情况反馈给软件室B,以保证系统与软件技术状态的一致性。

5)软件室B使用系统环境进行软件需求、设计、代码实现工作。软件室B与系统室A确认软件开发产品符合要求后,将系统软件交付给软件测评中心C进行测试。当软件室B对该系统软件发生需求、设计或代码更改时,需要及时地把系统及软件的信息反馈给软件测评中心C。软件室B接收软件测评中心C反馈的测试状态及问题单,如果问题修改涉及到系统,则把问题单反馈给系统室A;如果问题不涉及系统,则软件室B把问题进行处理,然后将问题单处理情况反馈给软件测评中心C。

6)软件测评中心C对软件室B交付的软件工作产品进行技术状态确认后,在系统环境上进行软件的相关验证工作。软件测评中心C在验证工作过程中,同步将测试项与软件需求、设计的追踪关联、测试用例、软件问题等过程数据反馈到测试管理系统。软件测评中心C通过测试管理系统跟踪确认软件问题的处理情况。软件测评中心C调用测试管理系统进行回归测试。

另外,在型号不同的研制阶段,软件验证场景包括以下:

1)C阶段。该阶段软件需求、代码C型件初步确定,系统真件仍在验证过程中。在真件未能到位的情况下,使用全数字仿真方式,能够模拟被测系统的硬件环境,有利于软件测试的尽早介入,可尽早明确测试功能及运行环境的需求、进一步确定测试方法,开展测试项分解、测试场景设计工作。

2)S阶段。该阶段软件需求,代码S型件需反复迭代开发验证。并且系统真件已交付到软件专业,主要用于软件开发调试及系统试验等工作。这时软件开发、测试存在测试资源上的冲突,可能会导致软件测试工作进度受到影响。通过全数字仿真与快速原型系统(RCP)相结合的方式,具有不受被测系统真实环境印象,易于实施、易于复制,环境需求低、成本相对较低的特点,在此基础上加入多学科仿真,将外围交联系统的仿真模型与虚拟仿真目标机一起,形成闭环的软件验证系统,软件配置项、系统级的功能、接口的验证工作可以在全数字仿真与RCP环境开展,一定程度缓解测试环境资源冲突的问题。

3)D及P阶段。该阶段软件需求、代码基本稳定。软件及其成品进入定型及批产阶段。为保证与真实环境一致性,软件确认测试、软件定型大多数采用半实物仿真方式开展。但该阶段飞机各项科研试飞工作仍在继续,软件仍需排故、升级及维护保障。该阶段时间要求比较紧,专业希望系统确认与软件验证工作能够同时进行。使用全数字仿真环境,能够将大部分软件功能验证工作在虚拟仿真条件完成,不受真实环境影响。

2 机载软件验证平台架构

由于各专业的全数字仿真目标系统、多学科仿真模型、分布式软件应用以及测试管理系统采用的软件架构、操作系统、通信方式不相同,系统之间无法直接进行交互,所以,需要在这些目标机、模型、软件应用及系统之下,建立一套通信机制,实现现有试验资源的数据交互,并且具备兼容性,兼容其他设备的数据网络,具备可配置性,支持模型、设备的动态加载。

数据分发服务DDS(Data Distribution Service)是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的Qos服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求[3]。

基于对以上型号机载软件验证场景的分析,作者从组织级软件开发验证协同、统筹角度出发,考虑发挥企业专业优势,整合已有全数字仿真系统、仿真模型资源,结合飞机设计所软件测评质量流程等因素,提出并实现了面向新机的机载软件验证平台方案。机载软件验证平台按照功能划分,自底向上分为:执行层、主控层、管理层。平台架构图如图2所示。

图2 平台架构图

3 机载软件验证平台执行层设计

执行层是软件配置项、系统级验证、多学科仿真验证的执行环境,为软件验证提供全数字仿真目标系统、仿真模型以及节点之间的交互,并实现与主控层的数据通信[4]。

各专业的仿真目标系统、仿真模型在进行交互的过程中,存在以下特点:所使用的协议及数据类型大多有所差异,总线通信的数据格式存在多样性;仿真目标机、仿真模型通常分布在不同区域或网段,且存在动态加载的需求,传统的网络通信模型不能满足要求;嵌入式软件验证对实时性要求高,精度要求达到微秒级,那么要求仿真目标机、仿真模型及验证主控层之间保持良好的同步要求[5]。

使用开源项目OPEN DDS实现执行层的中间件。针对以上的特点,为保证验证执行层的有效运行,需要统一系统之间的消息格式;建立基于发布、订阅的通信适配机制,支持执行层、主控层、管理层各节点的动态加载,以及节点之间的实时通信。

3.1 统一消息格式

统一消息格式是指建立一张全局的、涉及所有仿真系统、模型的系统参数表,并为每个参数分配唯一的ID。在配置完成订阅发布机制后,主控层根据系统参数表生成相应的配置表,并将该配置表发送到对应的仿真目标系统及模型,从而建立起接口信号表参数与配置表的映射关系,实现数据的交互。

表1~4说明了接口信号表、系统参数表及子系统配置表的转换关系说明。

表1 接口信号表

源目的地信号名称信号标识号燃油机电计算机油温状态Msg0机电计算机燃油伺服阀1控制信号Msg1机电计算机燃油伺服阀2控制信号Msg2

表2 全局数据参数表

表3 机电计算机配置表

表4 燃油系统配置表

3.2 建立基于发布/订阅的适配机制

机载软件验证平台的执行层、主控层、管理层通过DDS通信技术进行交互。由于主控层、管理层的已有应用程序使用企业服务总线(ESB)作为总线,那么将采用DDS通信技术的执行层接入到ESB总线时,必然要面对简单对象访问协议(SOAP)消息与DDS报文间的消息转换问题。因此需要设计一种通信转换的适配器作为ESB与DDS总线间连接的桥梁,实现SOAP消息与DDS之间的信息转换。适配器设计结构如图3所示[6]。

图3 适配器结构

4 机载软件验证平台主控层设计

相当长一段时间内,国防军用软件的验证工作都是“研制能力推动”。特别是在软件配置项测试、系统测试环节上,基本上是研制出什么软件试验环境,软件自测试、软件定型/鉴定测评就用什么环境。

在机载软件验证平台中提出主控层的概念,目的是将型号软件验证要求固化到主控层的流程和方法中, 增强软件验证工作的独立性。主控层对上承接管理层,为软件开发验证协同管理提供数据支持;对下调度执行层的各仿真目标系统和仿真模型,执行软件测试及仿真。

主控层通过Eclipse集成开发环境搭建框架,集成了商用软件测试工具进行功能实现。

主控层的主要功能包括测试场景、测试用例设计、测试脚本发布、测试结果记录、仿真系统构型管理等功能。

4.1 测试自动化

主控层集成了某商用测试工具实现机载软件配置项测试场景、测试用例的分离设计、执行。

具体步骤如下:

1)分析典型测试场景,制定软件测试场景建模规范。嵌入式软件系统中常见的4种场景模式包括:基本场景模式、关键事件驱动场景模式、定时事件驱动场景模式和时间片事件驱动场景模式[7]。通过使用场景建模规范,将相似的场景归类到相应的场景模式中,可指导测试设计人员进行测试场景建模。

2)场景分析建模。这个过程等价于软件测试项分解过程。测试设计人员依据被测软件的文档进行分析,对被测系统进行软件测试场景建模,并构建测试场景树。测试场景树的结构与软件需求的组织形式类似,以被测系统作为场景树的根节点,每个不能再分解的测试子项作为场景树的叶子节点。测试场景通过转换,生成对应的场景状态如图4所示。

3)测试用例生成。测试执行人员基于场景状

态图设计并生成测试用例,测试用例的覆盖率应满足逻辑路径覆盖的准则。

4.2 仿真系统构型管理

执行层通过DDS将分布式的仿真目标系统及仿真模型关联在一起,由于执行层面向组织级的机载系统软件验证工作,不同的系统在进行软件验证时,会用到相同的目标系统及仿真模型,这些相同的目标系统及仿真模型,有可能中间件的要求是不一样。因此,需要按照逻辑将执行层划分为若干个仿真系统构型节点,并通过主控层的仿真系统构型管理模块进行配置。仿真系统构型如图5所示。

图5 仿真系统构型示意图

5 机载软件验证平台管理层设计

飞机设计所软件测试管理系统是为面向型号机载软件验证而建立,包括型号测试管理、项目管理、计划管理、实施管理、测试数据监控分析、测试过程资产管理等功能。

机载软件验证平台的管理层是在原有企业级测试管理系统的基础上,根据飞机设计所软件研制业务流程,增加软件开发验证协同管理模块,增加测试管理平台与主控层的接口交互功能,测试用例、软件问题、软件测试项等测试过程数据的交互。管理层结构如图6所示。

图6 管理层结构图

软件开发协同管理模块为业务流程的各个角色提供一个集需求分析、设计、仿真、数据管理及知识管理的一体化测试工作台面。对用户来说,实现验证过程所涉及的干系人在统一工作平台的高效协同工作,将测试数据、人员、业务紧密集成在一起,形成项目和测试活动可追踪、可控制和可重复的管理机制。实现基于仿真分析、多学科优化的软件测试过程;实现基于机电、飞管、任务系统软件最佳验证实践的封装,以及基于测试模板的快速标准测试流程构建。

6 平台搭建以及实现

为了验证本文设计的软件验证平台的高效,将其应用于某型号机载机电软件开发及验证的全生命周期中。在C阶段,利

软件测评中心C应用其全数字仿真方式,模拟被测系统的硬件环境,使软件测试工作尽早介入。在S阶段,通过全数字仿真与快速原型系统(RCP)相结合,并在此基础上加入多学科仿真,完全满足了软件验证的需求,并缓解了测试环境资源冲突的问题[8]。在D及P阶段,前期采用全数字仿真环境,将大部分软件功能验证工作在虚拟仿真条件完成,后期的软件确认测试、软件定型则采用半实物仿真方式或者在真实机载环境中开展。经验证,此验证平台的搭建与之前软件设计、开发与验证脱离的模式相比,极大地提高了软件验证效率以及软件质量安全性[9]。

7 结论

用全数字仿真技术及数据分发服务,建设全数字航空机载软件验证平台,可以大大缓解企业的综合试验台的压力,使得企业内测试资源得到最大程度的合理利用;可以收集型号软件测试过程数据,建立型号软件验证知识经验库;对成品单位及软件测评单位,可开展多地远程协同软件验证。这对飞机设计所提升软件管理水平、研制能力,优化测试资源配置有着深刻的意义。

参考文献:

[1] 蒲小勃.现代航空电子系统与综合[M].北京:航空工业出版社,2013.

[2] 陈真勇, 唐 龙, 唐泽圣, 等. 以鲁棒性为目标的数字多水印研究[M]. 北京:北京化学出版社,2002.

[3] 卞华星,陈 丹,庄 毅.DDS在飞机协同设计系统中的应用[J].计算机与现代化,2015(5):35-39.

[4] 任昊利,等. 数据分发服务——以数据为中心的发布/订阅式通信[M].北京:清华大学出版社,2014.

[5] 蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.

[6] 郑 凯.飞机综合航电系统集成验证平台互联技术研究[J].航天科学技术,2015(36):43-44.

[7] 韩德强,冯云贺,王宗侠,高雪园.基于Simics的嵌入式系统的研究与开发[J].航天科学技术,2015(2):32-34.

[8] 杨广华,齐 璇,施寅生.基于场景模式的嵌入式软件测试用例设计[J].计算机工程,2010(15):89-91.

[9] 熊志刚,李 晶,苏振扬,等. 一种DDS 与ESB 通信转换的适配器模型[J].计算机工程,2015(2).

猜你喜欢
测试用例软件测试软件
软件测试方向人才培养“1+X”融合研究
基于相似性的CITCP强化学习奖励策略①
禅宗软件
测试用例自动生成技术综述
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
软件对对碰
关于 Web 应用系统的软件测试的研究
即时通讯软件WhatsApp
测试工时受限的测试策略研究