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

文档序号:9765892阅读:930来源:国知局
基于脚本的嵌入式软件仿真及测试一体化平台的构建方法
【技术领域】
[0001 ]本发明属于自动化测试领域,是针对飞行器机载嵌入式软件的自动化测试技术,涉及一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法。
【背景技术】
[0002]机载嵌入式系统复杂性的提高对装备软件的质量提出了更高的要求。在机载设备中,复杂任务通常需要多个设备交互合作完成。这就要求研制单位在开发测试过程中需要连接其他厂商的设备进行调试,导致资源协调周期冗长、项目进度无法得到保证。为了解决这一问题,出现了很多仿真工具平台,如Matlab,SCADE,Rhapsody等。开发人员借助这类工具实现了用仿真模型模拟外部交联设备,避免了多单位之间设备协调问题。
[0003]针对软件测试,目前型号研制过程中测试用例大多采用测试脚本的方式进行描述,测试脚本的引入可以减少测试人员的工作量,提高软件测试的可维护性以及测试的可重复性。嵌入式软件自动化测试领域有很多的测试脚本实现方案。如中国航空综合技术研究所研发的基于Python的实时脚本语言、北京航空航天大学研发的ESSTSL脚本语言、电子科技大学研发的CATScript脚本语言等。
[0004]但在研制一线仍然存在以下问题,一是传统的仿真工具平台使用门槛高,模型建立及校验周期长。二是采用传统的仿真工具平台进行仿真时,需要完成整个建模过程,其他单位积累的C/C++语言编写的模型库无法复用。三是目前的仿真及测试平台中由于采用不同的技术方案,测试和仿真过程相互隔离,导致测试脚本只能获取被测设备运行信息,无法获取与之交联的仿真模型的运行信息,因此,无法构建复杂场景的测试用例,测试不够充分。此外,由于测试脚本无法探测仿真模型在运行过程中的状态。导致最终测试用例不通过时,无法确定是仿真模型的问题还是被测设备自身的问题。
[0005]综上所述,传统的仿真和测试平台无法满足易用性、可复用性以及测试全面性的要求,因此,研究和实现一种解决上述问题的仿真及测试一体化平台具有重大的意义和紧迫性。

【发明内容】

[0006]本发明的目的是针对上述方法存在的问题,提出一种基于脚本的嵌入式软件仿真及测试一体化平台的构建方法,该方法的实现是基于主控机和实时处理机架构的嵌入式软件仿真测试环境,其中主控机是运行Windows系统的PC机,而实时处理机是运行VxWorks系统的工控机,
[0007]主控机部分,构建脚本开发模块及异常检测的模块,包括三个步骤:
[0008]步骤一、构建脚本开发模块,实现一个具备仿真模型导入功能的集成开发环境,用于开发测试用例脚本和仿真模型脚本;
[0009]首先在Visual Stud1开发环境中导入SintillaNet窗体控件,然后基于该控件提供的API接口实现脚本编辑、脚本自动补全、代码折叠、语法高亮、代码注释功能,然后,使用混合编程技术实现模型导入功能,实现在脚本中调用C/C++语言编写的仿真模型;
[0010]步骤二、构建异常检测模块,包括脚本解释器和语义检查模块,
[0011]对Python标准解释器进行仿真和测试扩展获得一个用于语法检查的脚本解释器,仿真扩展包括扩展数据发送、数据接收以及任务注册的接口,测试扩展包括扩展测试激励、测试反馈和任务注册的接口,通过扫描脚本中的仿真及测试接口参数的有效性,实现语义检查;
[0012]步骤三、集成脚本开发模块与异常检测模块,将异常检测模块链接到脚本开发模块中;
[0013]实时处理机部分,采用Tornado开发环境构建总线驱动模块、任务注册及调度模块以及实时脚本解释器,并在运行前加载到实时处理机,具体包括以下三个步骤:
[0014]步骤一、采用总线、数据帧和帧变量的组织方式构建总线驱动模块;
[0015]首先,根据总线通信协议为每条总线设置通信参数,调用实时处理机板卡驱动提供的API实现数据收发;其次,将实时处理机与被测设备之间通信的数据以数据帧和帧变量的形式进行组织,并建立数据帧与总线的映射关系;最后,以数据帧为单位构建通信任务,在运行前将通信任务添加到任务注册及调度模块的任务容器中;
[0016]步骤二、构建任务注册及调度模块,
[0017]使用链表和数组实现容纳任务的容器,并提供一个仿真任务、测试任务以及通信任务注册的接口,接下来,实现任务调度算法,按照任务的周期和运行时间对任务进行调度;
[0018]步骤三、采用移植的方式在实时处理机中构建一个实时脚本解释器,解释执行仿真模型脚本和测试用例脚本;
[0019]对于仿真部分,数据发送、数据接收接口在实现时,调用总线驱动模块的功能实现与被测设备之间的信息交互;任务注册接口实现时,将仿真模型任务添加到任务注册及调度模块的任务容器中;对于测试部分,测试激励接口在实现时调用总线驱动模块向被测设备发送测试指令;测试反馈接口在实现时调用总线驱动模块接收被测设备的实际测试结果;任务注册接口在实现时,将测试任务添加到任务注册及调度模块的任务容器中;
[0020]所述一体化平台中的仿真模型和测试用例均采用脚本语言进行描述;
[0021]所述主控机和实时处理机中的两个解释器对脚本语言的语法支持能力一致;
[0022]所述主控机部分步骤二中在扩展任务注册接口时,注册任务包括仿真任务、测试任务以及总线通信任务三种,其中,每种任务都包括周期型和事件型两种类型,且能够指定任务的起止时间;
[0023]所述实时处理机中,仿真模型脚本和测试用例脚本的执行均通过实时脚本解释器,仿真模型和测试用例可以通过脚本解释器建立信息交互。
[0024]主控机部分步骤二中的异常检测模块不仅包括脚本语法检查,还包括仿真及测试相关的语义检查。
[0025]实时处理机中,实时脚本解释器的是通过移植的方式构建,在移植的过程中,删除了与仿真和测试无关的模块。
[0026]在实时处理机中构建实时脚本解释器时,将脚本解释器与系统映像模块分离。
[0027]本发明具有的优点和有益效果,
[0028]本发明的实现是基于实时处理机和主控机的架构。在主控机上,测试用例和仿真模型采用测试脚本进行描述,并进行异常检测,经检测无误的脚本下发到实时处理机中。在实时处理机中,基于脚本实现了对被测设备的外部交联设备和测试设备的模拟。其中,仿真模型脚本模拟外部交联设备,测试用例脚本模拟测试设备。仿真模型和脚本和测试用例脚本都通过实时脚本解释器完成解析,并将所有的仿真和测试任务添加到任务注册及调度模块中,最后通过总线驱动模块实现与被测设备的交互。最终,基于脚本构建了一个嵌入式软件仿真及测试的一体化平台,满足了嵌入式系统研制过程中仿真及测试的要求,大大降低了仿真及测试的成本,具有很好的通用性。本发明的优点与积极效果还在于,
[0029](I)本发明中仿真及测试均采用脚本进行描述,并通过脚本解释器解析运行,最终由任务注册及调度模块统一管理,避免不同技术造成的仿真和测试相互隔离问题,便于更好的描述复杂的测试场景,测试用例覆盖更加全面,测试结果更加真实准确。
[0030](2)本发明中仿真模型采用脚本描述,使用人员无需学习复杂的建模工具,通过编写简单的脚本即可建立仿真模型,降低了使用门槛。此外,脚本开发模块中的模型导入功能,能够复用C/C++语言编写的模型库,大大缩短了仿真模型建立的时间。
[0031](3)本发明中的脚本模块被划分成两部分在不同的平台实现。脚本开发模块和异常检测在非实时的主控机中实现,提供良好的脚本开发体验和异常检测机制,实现了在仿真和测试执行前对脚本进行全面的异常检测,有效的解决了由脚本异常导致的仿真及测试中断问题。实时脚本解释器在实时处理机中实现,使构建的仿真模型脚本和测试用例脚本在执行时具备实时特性,仿真脚本所承载的数据收发以及测试脚本所承载的测试激励和结果收集的时间可以精确到lms,提高了仿真和测试的精度和准确性。
[0032](4)本发明在实时处理机中构建实时脚本解释器时,将脚本解释器与系统映像模块分离,便于启动时按需加载,提高了加载速度、减少资源占用。
[0033](5)本发明在实时处理机中采用移植的方式构建实时脚本解释器,降低了构建成本,构建的实时脚本具有很好的稳定性和通用性。
[0034](6)本发明提出的实时嵌入式测试脚本的构建方法具有普适性,适用于所有基于实时处理机和主控机架构的测试环境,可利用该方法在不同实时平台上构建不同的测试脚本。
【附图说明】
[0035]图1是本发明的示意图;
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1