ESITest测试平台在某型电子监测仪软件测试中的应用

2016-03-22 05:36中国船舶重工集团公司第七一研究所叶祥明
电子世界 2016年2期
关键词:测试环境嵌入式软件软件测试

中国船舶重工集团公司第七一〇研究所 叶祥明



ESITest测试平台在某型电子监测仪软件测试中的应用

中国船舶重工集团公司第七一〇研究所叶祥明

【摘要】利用通用嵌入式系统软件测试平台(ESITest)建立了某型电子监测仪的软件测试环境,通过在ESITest平台中开发测试用例脚本,实现了电子监测仪嵌入式软件的自动化测试,提高了电子监测仪嵌入式软件测试的覆盖率和可靠性。

【关键词】嵌入式软件;软件测试;测试环境;脚本编码

1 引言

某型工程机械的电子监测仪是集微电子技术、计算机技术、数字显示技术和电子传感技术为一体的嵌入式设备,主要用于变速油压、燃油液位、发动机转速、制动气压、冷却液温度、蓄电池电压等信息的采集处理,并实现对全车各部件的状态监控与管理。为了完成该型电子监测仪的嵌入式软件测试,利用通用嵌入式系统软件测试平台(ESITest),模拟电子监测仪需要处理的9路DI信号、2路脉冲信号和7路DA信号,通过ESITest测试平台的测试用例脚本编码功能,实现了电子监测仪的功能、性能、负载以及连续运行时间等软件的自动测试任务,确保了电子监测仪嵌入式软件运行的可靠性。

2 电子监测仪的测试需求分析

2.1电子监测仪的外部接口

电子监测仪是工程机械装备的一个重要零部件,是适应工程机械装备使用的电子化、数字化、信息化发展的高技术产品,主要用于工程机械的各类信号采集和状态监控管理,具有数据采集、接口通信、参数设置、信息报警等功能。图1为该型电子监测仪的外部接口关系图。

图1 电子监测仪外部接口关系图

电子监测仪通过航插接口接收5类输入信号,输出2类输出信号。

第一类输入信号是4~20mA标准电流型信号,共7路,用于采集变速油压、燃油液位、油温、油压、制动气压等传感器的信号。

第二类输入信号是脉冲信号,共2路,用于实现发动机转速、车速的信号采集处理。第三类输入信号是数字量输入信号DI,共9路,为24V的高低电平,用于滤油器、空气滤清器、转向灯、远光灯等状态量的采集。

第四类输入信号是模拟电压信号,只有一路,为蓄电池电压的采集输入量,电压范围0~36V。

第五类输入信号是来自于CAN总线的通信接口,用于接收外部发送来的各种指令。

电子监测仪输出2路的灯光报警信号,为TTL电平的数字量输出信号。另外1路输出信号为CAN总线输出,需要将采集到的各类信息,通过CAN总线发送给工程机械的仪表终端,用于完成各类信息的显示处理。

2.2测试需求分析

为了开展对电子监测仪嵌入式软件的全面测试,除需要对单个功能逐项测试外,还需要将多路输入信号与输出信号全部连接起来进行长时间的自动化测试[1,2],模拟电子监测仪的实际运行情况,检验电子监测仪嵌入式软件对多路信号的采集处理以及CAN总线的通信处理,确保最终发布的电子监测仪嵌入式软件能可靠运行。

除了对电子监测仪开展长时间的自动化综合测试外,在电子监测仪功能中,还有2项功能为报警输出的时间性能要求,第1项是发动机油压的报警延时,另外1项是变速箱油压报警延时,这两项报警延时都要求当油压低于设定的最低阈值时,5秒内发出灯光报警。

3 ESITest测试平台介绍

3.1ESITest概要描述

通用嵌入式系统软件测试平台(ESITest)是北京凯云创智软件技术有限公司研制的一款高度集成的可用于嵌入式系统软件测试的综合测试平台,具有测试工程管理、测试交联环境仿真建模、应用协议描述与编译处理、测试用例脚本编码、测试监控窗体设计、测试执行过程控制、测试结果分析等功能[3]。

ESITest测试平台主要用于支持嵌入式软件配置项级别和系统级别的动态验证测试,能够对嵌入式系统外部各类接口(CAN、AD、DA、DI、DO、RS232、RS422)进行输入模拟和输出监视,可以完成软件配置项单接口、多接口和多配置项的系统测试,具有携带方便、配置灵活的特点,可适应不同类型的嵌入式系统测试要求。

图2 ESITest测试平台的软硬件组成

3.2ESITest的系统组成

ESITest测试平台由硬件部分和软件部分组成,如图2所示。硬件部分由PC机和各类USB接口设备组成,USB接口设备包括CAN通信设备、1553B通信设备,RS232、RS422/485串口通信设备,DA转换设备,AD采集设备,DI/DO设备,继电器模块、虚拟示波器和波形发生器等。软件部分主要包括测试设计软件、测试执行服务器软件、测试执行客户端软件、设备资源管理软件以及USB接口设备所提供的辅助调试软件。

USB接口设备一端与客户端PC的USB接口相连,另一端与待测系统的特定接口相连。客户端PC机负责运行测试执行客户端软件,实现与待测系统的接口互联,处理测试数据。服务器端统一进行测试设计和测试执行控制。多台PC机构成C/S结构的分布式系统,从而组成不同规模需求的测试环境。

3.3平台使用流程

利用ESITest测试平台进行嵌入式系统软件测试的主要流程如下。

(1)首先在设备资源管理软件中对通信设备及设备下的通道进行维护,生成资源配置文件,供测试设计软件进行设备规划时使用;

(2)使用测试设计软件创建测试方案、测试项目,在测试项目下创建仿真模型,添加待测系统、外围系统、通道、协议,创建设备规划、PC规划,设计测试监控窗体;

(3)使用测试执行服务器软件,打开测试方案,监听客户端的连接请求,建立与客户端的连接,形成分布式的测试网络结构;

(4)使用测试脚本编写测试用例,测试用例执行时发送测试数据经客户端到USB设备,最终到达待测系统中,并接收经由客户端返回的待测系统数据;

(5)选择编写好的测试用例脚本执行,在测试执行过程中,服务器端和客户端均能打开测试监控窗台,实时对测试执行中的通信数据显示和保存;

(6)测试用例脚本执行完成后,如果测试用例脚本中具有预期结果与实际结果判断的逻辑,则会自动给出本次测试执行是否通过,如果脚本中没有预期结果与实际结果的判断逻辑,事后可以对记录的测试数据进行分析,判断本测试用例脚本是否执行通过。

4 ESITest平台在电子监测仪测试中的应用

4.1测试环境搭建

图3为利用ESITest测试平台搭建的电子监测仪综合测试环境,测试环境由1个服务器端、2个客户端、2块AD/DA板卡(EM9636BD)、1块继电器板卡(USB2211)、1块虚拟波形发生器卡(DDS3005)、1块DI/DO板卡(USB-7660B/2)、1块CAN通信板卡(GY8508)组成。

图3 电子监测仪的ESITest测试环境搭建

服务器端通过USB连接两个EM9636BD,通过隔离模块将EM9636BD的0-5V模拟电压输出转为0-20mA的模拟电流输出,共7路;同时通过第2块EM9636BD 的DI输入接收电子监测仪的2路报警输出信号;通过ESITest测试平台客户端1连接1个继电器模块USB-2211,通过继电器开关的闭合模拟24V的开关量信号共9路,此开关量信号由24直流电源供电;同时客户端1再连接1块CAN总线GY8508板卡,用于与电子监测仪之间实现CAN通信交互;通过ESITest测试平台客户端2连接1个任意波形发生器USB-DDS3005产生驱动USB-7660B/2的时钟信号,由USB-7660B/2分频产生2路计数器输出,通过ESITest测试平台客户端设置分频的计数值用于驱动产生发动机转速和车速的脉冲信号。

4.2基于ESITest的测试设计

搭建好硬件测试环境后,需要利用ESITest测试平台开展测试设计工作。首先在ESITest测试平台中进行测试交联环境仿真建模,添加外围系统以及7 路DA(模拟量输出)通道、1路DI(数字量输入)通道、9路DO(数字量输出)通道、2路CTO(计数器输出)通道和1路CAN通信通道。并为每个通道设置相应的属性和添加相应的协议。DA通道属性设置为:输出模式:物理值,输出范围:0V-10V,通道号:1-4;DO通道属性只需设置通道号1-9;CTO通道:工作方式:方式3(输出方波),计数初值:100,通道号:1-2。CAN通道:波特率:115200bps,过滤模式:双滤波,过滤屏蔽码:0xFF、0xED、0xfd、0xbe。

为设备规划添加所用到的板卡设备,添加好设备后,将交联环境建模的各个通道分别绑定到相应的板卡设备上,2路CTO通道绑定到USB7660B/2上,7路DA与1路DI通道绑定到2块EM9636BD上,9路DO绑定在USB-2211继电器板卡上,CAN绑定在GY8508板卡上。然后将规划好的硬件板卡与测试计算机终端相连,建立PC规划方案,通过三台笔记本电脑作为测试服务器与客户端,设置各个测试终端的IP地址与端口号。

图4 ESITest测试平台交联环境建模

为每个通道连线编写应用层的协议,对于AD、DA、DI、DO以及CTO通道,其协议只包括一个字段,定义为Segment Data StandardUInt8Default=0即可,对于CAN总线接口,按照CAN应用协议的定义用ESITest测试平台提供的通信协议描述编辑器描述如下:

Protocol ExtendedFrame

Segment LenRandomUInt Length=4

#数据长度

Segment h1 RandomInt Length=2 Format=Complement

#保留

Segment FrameType Boolean

#帧类型

Segment FrameFormatBoolean

#帧格式

Segment ID StandardUInt32 ByteOrder=Big

#ID

Segment LQYWD StandardUInt8Default=0

#冷却液温度

Segment ZLQWD StandardUInt8Default=0

#中冷器温度

Segment YYYW StandardUInt8Default=0

#液压油温

Segment BJQYW StandardUInt8Default=0

#变矩器油温

Segment h2 StandardInt32 Format=Complement

#保留

End

最后,为了方便对测试数据的观测,在三个测试终端上分别建立数据监控窗口,在监控窗口设计时,对于每个监控控件,只需要直接绑定协议描述语言中的字段变量,就可以实现测试过程中的自动监控。

图5 电子监测仪测试执行中的ESITest监控窗体

4.3连续运行时间测试

编写电子监测仪连续运行时间的python测试用例脚本[4],主要代码如下:

tm=8*60*1000

#设置连续运行8小时

steptm=4000

#设置每4秒改变一次输入模拟

N=tm/400

#求取运行的次数

for i in range(N)

#多次循环以测试连续运行情况

DA1_P.P1.DA.Value = DA1[i]

#为通道协议赋值

DO1_P.P1.DO.Value = DO1[i]

CTO1_P.P1.CTO.Value = CTO1[i]

DA1_P.Write()

#进行通道输出

DO1_P.Write()

CTO1_P.Write()

CAN1.Read(true)

#等待从CAN总线中读取响应数据

Assert(CAN1.ExtendedFrame.LQYWD.Value= DA1_P.P1.DA.Value/65536*100)

#判断是否通过

Sleep(steptm)

#等待steptm ms,以进行下一循环测试

测试用例脚本编写非常简单,用户只需要编写很短的几行代码,就可以完成较复杂的自动化测试。在该测试用例脚本中,设置tm为需要运行的时间,这里设置运行8小时,就可以连续不断地开展对电子监测仪的测试,并且不同通道的数据可以根据事先设置的数组取值,确保了连续运行时间测试时对不同的数据输入达到覆盖率的要求,同时还可以在脚本中加入测试用例是否通过的判定语句。测试执行时,只需要在ESITest测试平台选择编写好的测试用例脚本进行执行,执行的过程中可以打开不同的监控窗体监控通道的数据变化情况。如图5所示。

4.4报警时间性能测试

为测试油压报警延时,需要利用ESITest测试平台模拟报警事件,并计算出从电子监测仪接收到超出阈值的信号到电子监测仪输出报警信号的时间,验证电子监测仪的报警延时时间是否在允许的误差范围内。主要的测试脚本编码如下:

DA1_P.P1.DA.Value = 3050

#设置模拟的油压信号,使其超出阈值范围

a = HNow()

#取出当前时间

DA1_P.Write()

#输出给电子监测仪

while 1:

#等待报警输出DO为高点平

DI1_P.Read(True)

if DI1_P.P1.DI7.Value == 1:

b = HNow()

break

printfb-a

#输出给控制台时间性能值

Assert(b-a<5000)

#判断是否满足5s的要求

在服务器端运行该测试用例脚本后,就可以输出相应的报警延时时间值,可以多次运行取出最大值、最小值以及平均值,以此来作为报警延时的时间性能测量结果。

5 结束语

ESITest测试平台提供了高度集成的测试设计开发环境,具有测试项目管理、交联环境仿真建模、应用协议描述、测试资源规划、实时监控设计、测试用脚本开发及管理、测试执行、测试数据统计及分析、测试报告生成等功能,分布式的系统架构使其具有极强的扩展能力,可灵活组件不同规模要求的测试环境。利用ESITest测试平台所完成的某型工程机械电子监测仪的自动化测试任务,极大地提高了电子监测仪嵌入式软件测试的覆盖率和可靠性,通过ESITest测试平台服务器的统一时钟管理优势,实现了电子监测仪油压报警延时的时间性能测试,为电子监测仪的报警反应时间性能指标验收提供了技术手段。

参考文献

[1]William E Lewis. Software testing and continuous and quality improvement[M]. Florida CRC Press,2000:41-45.

[2]薛冲冲,陈 坚.软件测试研究[J].计算机系统应用,2010,20(2).

[3]陈策,胡勇,郭久武等.基于USB-LAN的通用嵌入式软件测试平台[C].全国抗恶劣环境计算机第二十四届学术年会,2014(9).

[4]吴超,李玲,张燕.python脚本在整车控制系统HIL测试中的应用[J].上海汽车,20129(2).

叶祥明,江西瑞昌人,工程师,目前主要从事装备软件测试工作。

作者简介:

猜你喜欢
测试环境嵌入式软件软件测试
全数字仿真测试环境在航天软件测试中的应用研究
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
基于人工智能的模块化嵌入式软件开发研究
雷达航迹处理测试环境构建方法研究
网络设备自动化测试设计与实现
EXCEL和VBA实现软件测试记录管理
全景相机遥控器嵌入式软件V1.0 相关操作分析
软件测试工程化模型及应用研究
基于Eclipse的航天嵌入式软件集成开发环境设计与实现