概述
随着目前大型复杂武器系统的研制和国家重点预研项目任务越来越多,开发与测试工作越来越重。作为智能化装备的核心,嵌入式软件的比重明显加大,开展自动化的嵌入式软件测试工作,已成为提升装备系统研发质量与研发效率的重要工作。
目前,装备嵌入式软件的自动化测试,更多的还是依赖代码级别的白盒测试工具;黑盒动态测试还主要是根据不同的装备需求,研发配套的工装系统,测试效率和测试深度都有很大缺陷。主要表现在以下几点:
▼ 通用性较差,测试实施的工作强度大,重复性工作频现,难以适应产品型号多样性的特点;
▼ 面对复杂的装备系统,无法将系统组成模块分割开进行单独测试,而且测试用例不支持复用,不利于回归测试;
▼ 无法完整的搭建被测设备的外围环境,测试的充分性难以保证,导致软件质量问题频发;
▼ 测试工装系统的搭建离不开开发人员的支持,违背测试和开发完全独立原则,测试可信度不高。
一、嵌入式仿真测试平台的实现
为解决上述问题,旋极信息推出自主可控的嵌入式仿真测试平台,主要用于构建适合多种接口形式的嵌入式软件半实物仿真测试环境,支持功能、性能、接口和边界等测试类型,用于完成装备嵌入式软件的系统测试和验收测试。采用的技术手段如下:
-
采用上下位机的系统架构
平台采用上下位机的系统架构,上位机采用一般工控机,安装通用操作系统,开发具有丰富人机交互能力的测试设计与调度软件;下位机采用CPCI/PXI架构的测控计算机箱和控制器作为测试实时主机,运行VxWorks实时操作系统,与被测系统构成闭环反馈的仿真测试系统。上位机所开发的实时仿真任务可以与VxWorks内核构成实时机运行的仿真程序。 -
采用虚拟仪器的软件架构技术
平台需要利用各类硬件板卡资源实现与被测件接口的交互,为满足互换性要求,平台利用虚拟仪器的概念,将硬件驱动层做进一步的抽象,独立形成满足POSIX标准的AD、DA、DI、DO、RS232/422/485、CAN、1553、RapidIO、ARINC429等驱动虚拟化层,软件采用分层架构,解决测试资源仪器的互换、软件模块插件化开发、外部系统与模型的扩展等问题。 -
协议与信号形式化描述与编译技术
为确保本系统能适应不同的待测系统,必须对通信协议进行通用化的描述,测试人员使用编程的方式对数据进行组包和解包。通用化描述最有效的方法就是定义一种协议描述语言。平台通过定义DPD信号与协议描述语言,利用词法分析、语法分析等技术,建立DPD语言的编辑器、编译器与解释器。有了协议描述语言的帮助,设计人员就可以使用编程的方式定义数据通信格式,并且在测试用例脚本和监控仪器中引用协议中的字段,对通信数据进行操作,自动化地完成对待测系统接口测试。 -
交联环境可视化描述与监控窗体设计技术
平台采用可视化建模技术来描述待测系统的输入和输出接口是。将待测系统及其外围环境的可视化模型描述分解为四个基本类型:待测系统、外围系统、通道、协议。在可视化建模时,提供标准的图形工具,从图形面板中直接选取后在绘制区绘制。在窗体设计时,需要开发类似集成开发环境可视化界面设计的窗体设计器,平台利用.Net中DesignSurface类所提供的框架与服务,解决窗体描述、控件布置、控件容器等多项技术问题。 -
测试数据利用与脚本化测试开发技术
平台对测试数据的生成主要通过人工智能最优化算法进行多因素组合数据生成,所生成的测试数据通过数据表对象、文件对象等形成测试数据池。在测试脚本化编程时,利用基于数据池的自动化测试架构,建立自动化测试脚本框架。测试脚本采用流行的Python脚本语言,在平台中集成Python解释器引擎;实时任务的建模与仿真,采用Simulink的RTW功能,实现模型的C代码生成,基于Linux的GCC工具链可以编译链接实时任务代码,通过下载器下载到实时下位机中运行。
图片示例:
二、嵌入式仿真测试平台的组成
WTest_RT系统由上位机、下位机与测试软件组成。上位机直接采用工控计算机;下位机采用CPCI/PXI架构的便携桌面测控计算机;CPCI架构便携测控计算机主要包括测试机箱、主控板和各类接口板卡;上位机和下位机构成实时级嵌入式仿真测试平台的测试硬件子系统。
WTest_RT软件部分采用构件化分层的软件开发框架,软件底层代码基于 GCC / CMake开发环境,采用C++语言开发;软件上层集成框架基于Micosoft Visual Studio 开发环境,采用C# 语言开发,形成下图所示的软件分层结构。
系统按从硬件到用户抽象层次逐步提高的方式设计,划分为应用层、管理层、变换层和执行层。
*应用层:*用户处理测试业务。对上,它为用户屏蔽系统的底层实现技术,使用户专注于测试本身而不必关注系统的技术细节。对下,它调用各种数据,发布测试脚本,指挥测试的启动或终止。
*管理层:*系统接收用户在应用层发出的指令,按逻辑单位调度和协调测试动作。对上,它为应用层屏蔽系统的部署细节,使应用层不必为部署差异而变化;对下,它将数据和指令分发到各个组件。
*变换层:*系统完成逻辑概念到物理实体的映射转换。对上,它为管理层屏蔽物理设备的工作细节,提供按逻辑单位组织的数据;对下,它向执行层发布具体的硬件操作指令。
*执行层:*系统执行实际的物理动作。对上,它回报物理设备输入的数据与状态信息;对下,它操作硬件与被测系统交互。
软件分设计态和运行态。系统工作于设计态时,不必进行完整软硬件部署。用于规划测试场景、设计测试方案、拟制测试用例、撰写测试脚本、准备测试数据、设计数据监控。
系统工作于运行态时,必须按测试方案设计要求,部署相关软硬件。用于实施测试方案,运行测试用例,执行测试动作,监控实时数据,获取测试报告,得出测试结果。运行态又可按其部署在被测件与用户之间的位置划分为控制端与执行端,其中执行端工作时无需人工值守。
三、嵌入式仿真测试平台的工作流程
使用WTest_RT平台进行装备嵌入式软件测试的步骤如下:
首先使用设备资源管理器进行设备资源规划,利用测试设计软件建立待测系统模型、设计测试用例及数据,形成测试方案文件。
测试调度台载入测试方案后,分别启动运行服务器、数据中心、数据监控器。
运行服务器对测试脚本进行解析,形成测试进程资源,通过实时上位机子系统编译、链接,下载到实时下位机中。
实时下位机将实时脚本装载,通过参数设置形成实时进程,实时进程在测试过程中,通过CPCI总线形式的各类板卡与被测系统交互。
测试执行的过程中,实时下位机进程向实时上位机部分报送各类数据到数据中心,由数据中心向数据监控器和调度工作台分发各类运行数据。
测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。
四、结论
嵌入式仿真测试平台是一款自主可控的平台,重点解决了多接口综合集成、测试设计通用户、测试脚本开发的便捷化、测试的自动化以及在闭环实时测试系统中与simulink、C++利用等方面的问题。非常适用于测试接口多,测试用例重复性很高,测试自动化要求高,以及已有模型simulink、C++搭载接口的应用场合。
(文章来源:旋极视界期刊)
相关工具查询访问:http://www.softtest.cn/
最后
以上就是谨慎花生为你收集整理的嵌入式仿真测试平台的应用的全部内容,希望文章能够帮你解决嵌入式仿真测试平台的应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复