- 一、 系统描述
1、拟选厂商简介
凯云联创(北京)科技有限公司(简称:凯云科技)成立于2014年,核心业务是为军方、航空航天、中电、兵器、船舶、核工业、核物理、院校、交通、水利水电、通信以及金融等行业提供软件测试工具与测试服务,并承接软件开发、系统集成及信息技术服务。凯云科技前身是北京凯云创智软件技术有限公司,始创于2005年,自主研发了超过40项拥有全部知识产权的软硬件产品,是国家级高新技术企业、北京市双软认定企业。
凯云科技自创建以来,始终致力于国产自主可控软件测试类产品的研究、开发及培训推广,为国内军用、工业、民用以及院校培训教学提供具有国际领先水平、通用性强、可靠性高、应用成本低的通用嵌入式系统测试及管理环境,同时积极引进国内外先进技术。主要产品覆盖软件测试业务全过程,其中有自主研发的嵌入式系统测试平台系列产品、嵌入式系统测试教学实训平台、软件测试项目管理系统、测试数据生成与管理软件等,引进产品包括各类源代码分析测试、功能测试、性能测试、安全性测试等工具。
基于长期在嵌入式系统及软件测试领域的研究与创新,凯云科技目前已发展为国内软件测试类产品和服务的主要供应商,公司总部位于中关村丰台园区,并在上海、西安、成都设有办事处。在全国有包括:航天、航空、兵器、电子、船舶等400余家高端客户,在装备软件工程与质量检测方面,拥有优异的业绩和良好的口碑。
2、设备组成
ETest_RT系统主要由硬件部分与软件部分组成。硬件部分由上位机和实时下位机组成,上位机采用商用便携计算机,下位机采用PXI测控计算机。上位机安装Windows操作系统,运行设备资源管理、测试设计、测试调度、运行服务器、数据中心、运行客户端、实时动作下载调试器;下位机安装实时操作系统,运行装载器模块、实时进程模块、上传器模块;下位机通过各类PXI接口板卡与被测系统相连。
ETest_RT系统的硬件结构原理图如图3-1所示。
图3-1 ETest_RT硬件结构原理图
ETest_RT采用构件化分层的软件开发框架,软件底层代码基于 GCC / CMake开发环境,采用C++语言开发;软件上层集成框架基于Micosoft Visual Studio 开发环境,采用C# 语言开发,形成图3-2所示的分层结构。
系统按从硬件到用户抽象层次逐步提高的方式设计,划分为应用层、管理层、变换层和执行层。
应用层:用户处理测试业务。对上,它为用户屏蔽系统的底层实现技术,使用户专注于测试本身而不必关注系统的技术细节。对下,它调用各种数据,发布测试脚本,指挥测试的启动或终止。
管理层:系统接收用户在应用层发出的指令,按逻辑单位调度和协调测试动作。对上,它为应用层屏蔽系统的部署细节,使应用层不必为部署差异而变化;对下,它将数据和指令分发到各个组件。
变换层:系统完成逻辑概念到物理实体的映射转换。对上,它为管理层屏蔽物理设备的工作细节,提供按逻辑单位组织的数据;对下,它向执行层发布具体的硬件操作指令。
执行层:系统执行实际的物理动作。对上,它回报物理设备输入的数据与状态信息;对下,它操作硬件与被测系统交互。
软件分设计态和运行态。系统工作于设计态时,不必进行完整软硬件部署。用于规划测试场景、设计测试方案、拟制测试用例、撰写测试脚本、准备测试数据、设计数据监控。
系统工作于运行态时,必须按测试方案设计要求,部署相关软硬件。用于实施测试方案,运行测试用例,执行测试动作,监控实时数据,获取测试报告,得出测试结果。运行态又可按其部署在被测件与用户之间的位置划分为控制端与执行端,其中执行端工作时无需人工值守。
图3-2 ETest_RT软件架构图
使用ETest_RT平台进行装备嵌入式系统软件测试的步骤如下(见图3-3所示):
首先使用设备资源管理器进行设备资源规划,利用测试设计软件建立待测系统模型、设计测试用例及数据,形成测试方案文件。
测试调度台载入测试方案后,分别启动运行服务器、数据中心、数据监控器。
运行服务器对测试脚本进行解析,形成测试进程资源,通过实时上位机子系统编译、链接,下载到实时下位机中。
实时下位机将实时脚本装载,通过参数设置形成实时进程,实时进程在测试过程中,通过PXI总线形式的各类板卡与被测系统交互;
测试执行的过程中,实时下位机进程向实时上位机部分报送各类数据到数据中心,由数据中心向数据监控器和调度工作台分发各类运行数据。
测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。
图3-3 ETest_RT使用基本流程图
(1)硬件部分
硬件由上位机和实时下位机组成,上位机采用商用便携计算机,下位机采用PXI测控计算机。接口板卡通过PXI接口直接同连接到测试下位机中,构成可满足多种类型接口要求的测试环境。主要硬件部分的指标如下:
① PXI机箱
- 紧凑型9槽PXI机箱,带1个系统槽、1个触发总线触发槽和7个 PXI/Compact PCI外设槽
- 0°C至+50°C的宽温工作范围
- 41.6dBA超低运行噪音
- 智能机箱管理
- 5.9kg轻量铝/钢结构
- 尺寸:280mm×177mm×303mm
- 350W工业级交流电源
- 电源、温度和风扇监控LED
② PXI控制器
- Intel® Core™ 2 Duo P8400 2.53GHz处理器
- 支持VGA+DVI 双显示
- 双通道 DDR3 SODIMM 16GB
- 系统最大吞吐量 132 MB/s
- 集成SATA 硬盘250G
- 集成 I/O
- 可编程看门狗定时器
③ 1553B总线板卡
- 双通道多功能,每通道为双冗余的A、B通道
- 支持1M/2M/4Mbps及用户自定义波特率
- 帧间隔和消息间隔时间可软件设置
- 支持时间戳,分辨率1μs
- 支持自测试、错误注入
- 支持中断、支持外触发
- BC模式(总线控制器)
- BC帧可编程
- 消息间隔可编程
- 非周期性消息可动态插入
- 数据双Buffer
- 可编程
- BusA、BusB可选
- 支持分支跳转消息
- 支持错误注入
- RT模式(远程终端)
- 单数据Buffer
- 双数据Buffer
- 子地址循环数据Buffer
- 非法命令可编程
- 支持错误注入
- BM模式(总线监视器)
- 100%消息记录
- 监视数据可编程过滤
- 接收时间戳
④ ARINC429总线接口板卡
- 通道数:灵活配置通道数,最大8发8收
- 通讯速率:100Kbps,12.5Kbps,50Kbps,48Kbps,98Kbps
- 字间间隔:4bits,可程控
⑤ CAN总线板卡
- 2通道
- 通讯速率:支持1Kbps~1Mbps之间的任意波特率
- 支持双向传输,CAN发送、CAN接收
- 兼容CAN2.0A和CAN2.0B协议
⑥ RS232/RS485/RS422总线接口板卡
- 通道数:灵活配置通道数,最大4通道
- 通讯速率:最高8Mbps
- 通讯协议:RS232/422/485(可软件设置)
⑦ 模拟量输入AD
- 8通道并行采样
- ADC分辨率:16位
- 最大采样速率:100KS/s
- 量程档程控
- 容量存储:4MSa/通道
⑧ 模拟量输出DA
- 8通道模拟输出
- DAC分辨率:16位
- 16通道TTL/COMS数字IO, 输入/输出可程控
- 2通道32bit计数器
⑨ 数字量输入/输出
- 32通道TTL/COMS电平兼容数字I/O
- 每通道光电隔离
- 最高传输速率1MHz
- 大容量存储4MB/通道
⑩ 上位机
- CPU: 双核 i5-6200U 2.3GHz
- 内存:DDR4 2133MHz,8GB
- 固态硬盘:256GB
- 显示屏幕:14英寸,分辨率1920*1080
- 独立显存:2GB
(2)设计工作台
设计工作台对待测系统及其对外接口进行建模,进行协议编辑及分析、创建测试监控、建立硬件规划、创建及管理测试用例,确定测试要准备的接口设备数量。其主要功能包括:
- 进行测试方案管理,针对测试方案的操作有:新建方案、打开方案、保存方案。
- 每个测试方案中,可以包含一个到多个测试项目,多个测试项目的存在使得每个测试方案可以完成多个测试项目的设计,便于开展多个配置项到系统的集成测试。
- 测试项目有新建、重命名、删除和查看属性的操作。
- 用图形化的方式对被测系统、外围系统及被测系统对外接口进行描述,包括接口数量和接口类型,包括RS422、1553B、CAN、AD、DA、DI、DO、CT、Freq-CT、TCP等类型;能够设定接口参数。
- 创建接口协议,并使用协议描述语言进行协议描述,包括报文包头、包尾、校验等,描述各个字段类型及编码方式,以及分支、循环等结构。
- 为了适应各种数据通信的需要,协议字段具有丰富的类型,包括:整形(无符号和有符号,8位/16位/32位/自定义长度)、浮点型、布尔类型、条件语句类型、分支语句类型、计算字段、校验字段、数组字段。
- 创建测试监控,描述实时数据监控的监控内容和显示形式,并可设定报警条件。
- 用户可以在测试监控模块添加测试监控并在监控面板上添加数据监控仪器,通过不同的类型监控仪器绑定协议字段或者字段按照某种公式运算的结果,从而在运行时通过监控仪器指针或数值的改变直观地显示出测试通讯时数据的变化。
- 测试监控工具栏管理所有的测试监控仪表,包括数字表仪器,圆盘仪表,曲线图,枚举类型等。选择合适的监控仪表,将其拖拽到监控面板的合适的位置,即可添加该监控仪表到监控面板上。用鼠标拖拽监控仪表的边缘,即可调整其大小。
- 打开“属性”标签页,可以修改测试仪表的属性。其中最重要的属性是“协议段”属性,表明了该监控仪表的数据来源。
- 通过“协议段”属性右侧的展开按钮,可以打开“绑定数据协议”对话框,其中显示当前项目中的仿真模型中的所有的协议和协议段。
- 测试仪表的数据源,既可以是一个协议字段,也可以是若干个协议字段组成的公式。
- 在“绑定数据协议”对话框下部的输入框中输入协议字段,或协议字段组成的公式。双击需要的字段名称,可以添加该字段名称到自定义公式的光标所在位置。
- 创建测试硬件规划,确定测试需要使用的接口板卡设备,以及接口板卡设备对应的资源。
- 创建测试用例,并提供测试用例的管理方式,包括分组、删除、重命名等。
- 创建测试用例的内容,包括使用测试脚本描述测试的过程,包括变量定义、条件语句、循环语句、输出语句、数学运算、函数定义等。
- 提供测试脚本的扩展接口,能够实现向待测件的数据交互和数据自动解析,将比特流解析成具有意义的用户数据。
- 提供时序控制的方式,能够按照一定的时序进行规定的操作。
- 提供运行环境设置方式,设置测试运行期间的仿真模型服务器、数据中心服务器、测试执行服务器和客户端的IP地址和端口号。
- 提供对标准输入输出监控进行配置的功能,确定标准输入输出监控的类别配置。
- 提供测试脚本执行方式,能够运行用户选择的测试脚本;用户能够选择终止脚本运行。
- 能够查看输出信息及错误信息。
(2)测试运行服务软件
测试运行服务软件包括测试调度台、运行服务器和数据中心,它们是与客户端软件相配合,驱动测试数据,进行自动化测试执行。主要实现以下功能:
- 提供进程调度服务后台运行程序,在进程调度代理的帮助下,根据测试设计软件的设计,在测试主机上启动测试执行、客户端、服务器等进程,并通过进程调度服务协调各个软件的运行逻辑。
- 提供仿真模型服务器后台运行程序,通过仿真模型服务器解析测试设计所建立的仿真模型,实现测试执行时数据收发的仿真解析服务。
- 提供数据中心服务器后台运行程序,在测试用例执行过程中,在数据中心服务器中集中统一处理通道中的收发收据,确保数据监控的分布式实现。
- 提供用例服务器后台运行程序,解析处理测试设计中所编写测试用例的执行过程。
- 提供标准输入输出监控窗口程序,可以显示仿真模型服务器、数据中心服务器、客户进程以及用例服务器运行过程中的调试信息。
- 解析测试脚本中的变量定义、条件语句、循环语句、输出语句、数学运算、函数定义等语句,进行相应的操作。
- 解析测试脚本扩展接口,实现向待测系统进行数据发送/接受和数据解析。
- 解析测试脚本,按照时序控制要求进行操作。
- 在测试启动时记录所有输入数据;在测试过程中记录所有输入/输出数据;在测试完成后自动生成汇总报表。
- 按照用户要求即时停止测试用例的执行。
- 记录并显示测试用例的执行结果。
(3)运行客户端和数据监控器
运行客户端介于测试执行服务器与上位机之间,执行通信代理,负责数据的转发和客户端测试过程的管控,为上位机提取环境数据。数据监控器则以虚拟仪表或图表方式显示当前测试数据。两个模块主要实现以下功能:
- 管理实时子系统,建立实时子系统与运行态控制端之间的连接关系。
- 为实时子系统提供运行资源。
- 登录测试服务软件后,显示测试设计软件设计的全部测试监控界面,可选择一个或多个测试监控面板进行测试监控。
- 运行指定的测试监控,在测试执行过程中实时显示指定的测试数据,提供数字仪器、仪表盘、枚举项、曲线图等数据监控方式。
- 可以实时显示测试执行中的测试数据;
- 可以以解析后的协议数据格式显示测试数据,也可以以二进制、八进制、十六进制显示测试数据。
- 可以设置数据过滤条件,实现界面显示特定数据的功能。
- 可以设置数据报警条件,当出现某种特性数据时,软件以醒目的形式显示出满足报警条件的数据。
- 可以进行数据查询,可以查询某个时间段的报文,也可以查询某个协议字段的数据。
- 可以对指定的数据进行统计,也可以查看数据曲线图。
(4)设备资源管理
设备资源管理软件模块提供了系统支持的测试设备及通道的管理功能,提供了系统设备扩展的接口。其主要实现以下功能:
- 添加、删除系统设备。
- 修改系统设备的数量。
- 添加、删除设备包含的通道。
- 修改设备包含的通道的数量及类型。
- 保存设备信息到设备资源文件中,在测试设计软件中使用。
(5)运行态执行端实时上位机
运行态执行端是实现实时性的关键子系统,包括实时上位机和实时下位机。其形态如图3-4所示(虚线框是系统的其它部分):
图3-4 运行态执行端形态
实时上位机有环境管理、编译器、下载调试器、数据格式化等模块。
- 环境管理模块,管理所有输入的元数据。这些数据用于脚本解析、数据格式化。环境管理的设计是集成性原则所要求的。环境数据目前已知有如下类别:设备规划、协议描述、仿真模型和动作脚本。
- 编译器,综合环境管理所提供的元数据,编译产生可供下位机实时操作系统运行的二进制代码。由于主要的编译工作在设计态时即已完成,这里主要是链接。编译器工作的主要内容有:将测试模型提取为“实时动作脚本语言”对象;全局优化;链接仿真模型、协议描述语言、RASL三个部分,加入主框架,形成实时程序;当系统被置于调试状态时,嵌入调试信息。
- 下载调试器将编译器编译的结果发送到下位机。当系统处于调试状态时,对实时动作脚本进行调试。调试器支持以下功能:远程调试、程序载入、程序挂接、手动中断、断点设置、变量观察和单步执行。
- 数据格式化,对上传给数据中心的数据进行格式化处理,主要是利用环境管理数据还原名称与结构等元数据。
(6)运行态执行端实时下位机
运行态执行端实时下位机包含装载器、实时进程和上传器等模块。
- 下位机装载器,从上位机接收程序,设置环境,载入并启动代码。可以接收上位机指令,通知程序关闭。当系统处于调试状态时,启动调试 stub 供上位机调试器连接。
- 下位机实时进程,由装载器启动上位机程序启动生成,它具体完成实时测试动作。实时进程的代码主框架固定,以静态库的形式存放在上位机的编译器那里。在主框架中嵌入仿真代码、测试动作代码后形成完整的程序。所以实时进程具有通用的基本通信能力,包括可接收装载器的关闭指令,可向上传器发送相关数据。当系统处于调试模式时,实时进程会包含必要的调试代码。
- 下位机上传器从实时进程接收数据,并异步向上位机上传。
(6)辅助工具
工具软件提供了嵌入式系统测试时部分常用的软件工具,主要包括以下软件模块:
- 曲线数据生成工具:具有曲线数据编辑、坐标选择、曲线数据读取、曲线数据存储等功能,配合测试执行软件,提供一种测试数据生成手段。
- 测试数据记录与查看工具:在测试执行时,可记录测试执行中的数据,供测试执行结束后查看与分析,包括协议选择、数据过滤、报警条件设置功能。
- 应用协议生成工具;提供应用协议的表格化编辑功能,可以设置协议的字段组成、字段类型、字段默认取值等。
- CRC插件诊断器与CRC插件生成器:提供CRC校验算法的设计功能,可设计自定义的CRC算法,诊断其算法正确性,并最终形成协议描述语言中的CRC字段算法插件。