基于脚本的嵌入式软件仿真及测试一体化平台的构建方法_3

文档序号:9765892阅读:来源:国知局
以及测试用例脚本中的测试任务,总线驱动模块中的通信任务。仿真和测试任务以脚本中注册的任务为调度单位,通信任务以数据帧为调度单位。下面通过实例讲述任务注册及调度模块的实现方式,如图3所示。I)所有的任务被添加到任务注册及调度模块中,如图3中,图中包含2个测试任务Tl和T2,2个仿真任务SI和S2,以及两个通信任务Fl和F22)将所有的任务按照周期分组,上述任务共分成4组,分别是5ms周期的Tl,10ms周期的SI和F2,15ms周期的T2和S2,30ms周期的FU3)求周期的最大公约数,然后以最大公约数为最小周期进行任务调度。此实例中5ms、I Oms、15ms和30ms的最大公约数为5ms。以5ms为周期扫描所有任务,如果当前时刻所对应的毫秒数能够被任务的周期整除,则执行该任务。如图3中,在5ms时亥Ij,TI的周期能够被5ms整除,此时执行TI。同理,在30ms时刻,T1、S1、F2和FI的周期都能够被30ms整除,此时,四个任务同时执行。
[0055]通过上述方式,任务注册及调度模块完成对所有仿真任务、测试任务及通信任务的管理。
[0056]步骤三、采用移植的方式在实时处理机中构建一个实时脚本解释器,解释执行仿真模型脚本和测试用例脚本。
[0057]仿真模型和测试用例具有不同的用途,仿真模型模拟了被测设备的外部交联设备,是被测设备正常运行的基础。仿真模型脚本接收被测件的仿真指令,通过脚本中描述仿真模型根据当前系统的信息进行仿真计算,最终获得仿真结果后发送给被测设备。当系统中仿真模型脚本与被测设备正常运行后,可以通过运行测试用例脚本对被测设备进行测试。仿真模型和测试用例虽然用途不同,但实现时都通过改变帧变量的方式对被测设备施加影响。底层实现原理相同,下面重点阐述测试用例脚本的实现方式。测试用例脚本中的测试激励主要完成测试输入值的改变,将输入值添加到输入帧变量列表,然后通过总线下发给被测系统。测试反馈主要完成测试结果的收集,被测软件的输出结果被接收并存放在输出帧变量列表,测试脚本需要查表获得需要的帧变量值。通过判断预期值与实际值是否相同,实现对被测软件功能、性能等指标的测试。最后阐述任务注册的实现过程,在实时处理机中,测试脚本承载的测试行为被封装成一个个独立的测试任务,测试任务分为两种,一种是周期型任务,另一种是事件型任务。周期型任务是在测试执行过程中按规定周期重复运行。事件型任务是在指定时间到达时执行一次。无论周期型任务和事件型任务,都需要接收任务注册及调度模块的统一调度,这就需要实现一个扩展的注册函数,将脚本任务注册到任务注册及调度模块中。注册函数主要将任务按照类型、执行时间以及周期等信息注册到任务注册及调度模块的任务列表。测试开始后,任务注册及调度模块根据任务的时间特性根据调度算法调用测试脚本函数。
[0058]为了清晰的描述测试脚本与实时处理器中其他模块之间的协作关系。图4中的示例展示了从测试脚本启动到测试激励发送到结果反馈的全过程。I)实时处理机中的主应用程序启动实时脚本解释器,根据路径通过FTP协议从主控机中加载测试脚本。2)启动脚本开始执行,执行脚本中的的reg_task函数。3)将测试任务注册到任务注册及调度模块,接收任务注册及调度模块的统一调度。4)调度模块按照调度策略在特定的时刻激活测试任务。执行脚本中定义的测试任务函数!Flap-Slapji1delc3S)执行测试任务,调用in ject_var函数,将测试输入帧变量通过总线驱动模块发送到被测系统完成测试激励。6)调用feedbaCk_Var函数,通知总线驱动模块,收集测试输出帧变量的值。7)将结果反馈获得的帧变量值发送给测试脚本模块。
[0059]通过上述步骤,脚本解释器、任务注册及调度模块以及总线驱动模块相互协作,完成了对被测系统的测试。最终实现了实时处理机模拟真实的测试设备。
【主权项】
1.一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法,该方法的实现是基于主控机和实时处理机架构的嵌入式软件仿真测试环境,其中主控机是运行Windows系统的PC机,而实时处理机是运行VxWorks系统的工控机,其特征在于, 主控机部分,构建脚本开发模块及异常检测的模块,包括三个步骤: 步骤一、构建脚本开发模块,实现一个具备仿真模型导入功能的集成开发环境,用于开发测试用例脚本和仿真模型脚本; 首先在Visual Stud1开发环境中导入SintiIIaNet窗体控件,然后基于该控件提供的API接口实现脚本编辑、脚本自动补全、代码折叠、语法高亮、代码注释功能,然后,使用混合编程技术实现模型导入功能,实现在脚本中调用C/C++语言编写的仿真模型; 步骤二、构建异常检测模块,包括脚本解释器和语义检查模块,对Python标准解释器进行仿真和测试扩展获得一个用于语法检查的脚本解释器,仿真扩展包括扩展数据发送、数据接收以及任务注册的接口,测试扩展包括扩展测试激励、测试反馈和任务注册的接口,通过扫描脚本中的仿真及测试接口参数的有效性,实现语义检查;步骤三、集成脚本开发模块与异常检测模块,将异常检测模块链接到脚本开发模块中;实时处理机部分,采用Tornado开发环境构建总线驱动模块、任务注册及调度模块以及实时脚本解释器,并在运行前加载到实时处理机,具体包括以下三个步骤: 步骤一、采用总线、数据帧和帧变量的组织方式构建总线驱动模块; 首先,根据总线通信协议为每条总线设置通信参数,调用实时处理机板卡驱动提供的API实现数据收发;其次,将实时处理机与被测设备之间通信的数据以数据帧和帧变量的形式进行组织,并建立数据帧与总线的映射关系;最后,以数据帧为单位构建通信任务,在运行前将通信任务添加到任务注册及调度模块的任务容器中; 步骤二、构建任务注册及调度模块, 使用链表和数组实现容纳任务的容器,并提供一个仿真任务、测试任务以及通信任务注册的接口,接下来,实现任务调度算法,按照任务的周期和运行时间对任务进行调度;步骤三、采用移植的方式在实时处理机中构建一个实时脚本解释器,解释执行仿真模型脚本和测试用例脚本; 对于仿真部分,数据发送、数据接收接口在实现时,调用总线驱动模块的功能实现与被测设备之间的信息交互;任务注册接口实现时,将仿真模型任务添加到任务注册及调度模块的任务容器中;对于测试部分,测试激励接口在实现时调用总线驱动模块向被测设备发送测试指令;测试反馈接口在实现时调用总线驱动模块接收被测设备的实际测试结果;任务注册接口在实现时,将测试任务添加到任务注册及调度模块的任务容器中; 所述一体化平台中的仿真模型和测试用例均采用脚本语言进行描述; 所述主控机和实时处理机中的两个解释器对脚本语言的语法支持能力一致; 所述主控机部分步骤二中在扩展任务注册接口时,注册任务包括仿真任务、测试任务以及总线通信任务三种,其中,每种任务都包括周期型和事件型两种类型,且能够指定任务的起止时间; 所述实时处理机中,仿真模型脚本和测试用例脚本的执行均通过实时脚本解释器,仿真模型和测试用例可以通过脚本解释器建立信息交互。2.根据权利要求1所述的一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法,其特征在于,主控机部分步骤二中的异常检测模块不仅包括脚本语法检查,还包括仿真及测试相关的语义检查。3.根据权利要求1所述的一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法,其特征在于,实时处理机中,实时脚本解释器的是通过移植的方式构建,在移植的过程中,删除了与仿真和测试无关的模块。4.根据权利要求1所述的一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法,其特征在于,在实时处理机中构建实时脚本解释器时,将脚本解释器与系统映像模块分离。
【专利摘要】本发明属于自动化测试领域,是针对飞行器机载嵌入式软件的自动化测试技术,涉及一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法。本发明的实现是基于实时处理机和主控机的架构。在主控机上,测试用例和仿真模型采用测试脚本进行描述,并进行异常检测,经检测无误的脚本下发到实时处理机中。在实时处理机中,基于脚本实现了对被测设备的外部交联设备和测试设备的模拟。其中,仿真模型脚本模拟外部交联设备,测试用例脚本模拟测试设备。仿真模型和脚本和测试用例脚本都通过实时脚本解释器完成解析,并将所有的仿真和测试任务添加到任务注册及调度模块中,最后通过总线驱动模块实现与被测设备的交互。
【IPC分类】G06F11/36, G06F9/455
【公开号】CN105528290
【申请号】CN201510885404
【发明人】周汉清, 李海峰
【申请人】中国航空综合技术研究所
【公开日】2016年4月27日
【申请日】2015年12月4日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1