国产特种计算机自动测试控制系统设计∗

2021-06-28 07:04:06石钊铭胡哲琨陈敬东
舰船电子工程 2021年6期
关键词:自动测试测试用例特种

石钊铭 胡哲琨 陈敬东

(1.海装驻武汉第四军事代表室 武汉 430205)(2.武汉数字工程研究所 武汉 430205)

1 引言

特种计算机是用于特定工业领域的专用计算机,其功耗、体积、可靠性、实时性往往受到严格约束,需要在高温、潮湿、震动等特定环境下保持长时间和高可靠运行,并完成各类数据处理、信息传输、实时控制等任务。相较于一般的通用计算机而言,特种计算机在可靠性和稳定性方面的要求更为严格,因此在特种计算机的研制和生产过程中通过高效手段来测试和验证其性能就更为重要。

近年来,随着我国对工业领域信息安全问题日益重视,基于国产CPU和国产操作系统的特种计算机被越来越多地应用于各类工业领域[1~2],国产特种计算机的性能和可靠性也受到了更多的关注。由于指令集和编程接口等方面的差异,以往的计算机测试工具和测试系统并不能对国产特种计算机实施全面而有效的测试和检验,因此研制一套面向国产特种计算机的自动测试控制系统,实现对国产特种计算机功能和性能的测试验证,并通过批量控制手段提高试验效率,对把控国产特种计算机的性能和可靠性从而保障其领域应用效能具有重要意义。

在计算机测试系统方面,目前已开展多种研究。赵源[3]利用多线程技术有效提高了自动测试系统的吞吐率;李姗[4]面向航天器综合电子系统提出了一种可重构扩展的模块化通用测试系统;云颖[5]对基于CAN总线的星载软件测试系统进行了研究;王雷[6]提出了一种高铁/地铁信息处理系统应力加速验证方法,加快了可靠性评估过程。

本文设计了一套面向国产特种计算机的自动测试控制系统,该系统根据配置的批量被测计算机信息及测试项生成测试命令,并按照测试控制通信协议将命令发送给被测计算机。被测计算机根据接收到的测试命令执行相关测试用例,并将测试结果反馈给自动测试控制系统以存入数据库。所有测试执行完毕后,自动测试控制系统根据数据库中存放的结果生成测试报表。此外,基于心跳机制实现了测试状态监测功能,能够及时发现试验过程中的宕机等故障,从而使自动测试控制系统能够适用于特种计算机长时间可靠性试验场景。试验表明,本文设计的自动测试控制系统能够对国产龙芯、申威特种计算机实施测试控制,可满足不同架构的国产特种计算机批量测试与验证需求。

2 自动测试控制系统架构

为了对不同指令架构的国产特种计算机实施批量测试控制,本文提出了如图1所示的面向国产特种计算机的自动测试控制系统架构,主要包括测试控制系统和批量的被测计算机,两者通过通信网络相连。

图1 自动测试控制系统架构

测试控制系统主要实现测试用例配置、测试命令生成、测试状态监测、测试结果收集、测试报表生成等功能。其中:1)测试配置面板提供测试配置界面,测试配置信息包括每台被测计算机的名称、IP地址以及在该被测计算机上需要执行的测试项。2)测试命令队列是一组相互独立的队列,每个队列分别对应到每台被测计算机,其包含的测试命令根据配置信息产生。3)控制端通信模块负责测试控制系统与被测计算机之间的通信,具体包括命令报文的组装和发送,以及结果报文和心跳信息的接收和解析。4)心跳检测模块维护每台被测计算机的心跳记录,若某一被测计算机的心跳计时发生了超时,则表明该被测计算机在测试中发生了故障,此时触发相应的心跳超时处理例程,以停止对该被测计算机的控制并产生报警。5)测试数据库保存每台被测计算机的测试结果,并对结果进行对比、合格判定及合格率统计,最终生成测试报表。

在被测计算机中:1)被测端通信模块接收来自控制端通信模块的命令报文,对其进行解析后从测试用例集中调用相关的测试用例;此外,被测端通信模块还负责结果报文的封装和发送。2)心跳计时模块在测试执行过程中,每隔一段时间产生一次心跳事件,使被测端通信模块向测试控制系统发送心跳信息,以表明该计算机处于正常的被测试状态。3)测试用例集包含计算、内存、硬盘、通信等多种测试用例,是基于C语言和POSIX标准接口开发的可移植的测试程序集,可在不同架构的国产处理器上编译和执行,从而确保测试试验的跨平台一致性和可比性。

3 自动测试控制流程

基于以上自动测试控制系统架构,特种计算机的批量自动测试过程主要包括以下步骤。

步骤1:测试控制系统根据试验人员在测试配置面板上的配置为每台被测计算机生成测试命令,并将命令存入测试命令队列;

步骤2:控制端通信模块从测试命令队列读取测试命令,按照通信协议封装成报文,并经通信网络将其发送到与该命令队列对应的被测计算机;

步骤3:被测计算机中的被测端通信模块接收到测试报文后,对报文进行解析得到测试命令,并从测试用例集中选取相应的测试用例执行测试;

步骤4:被测计算机在执行测试的过程中,心跳计时模块每隔一段时间向测试控制系统发送心跳信息;测试控制系统的心跳检测模块利用该信息监控被测计算机的运行状态;

步骤5:测试用例执行完成后,被测端通信模块根据通信协议将测试结果封装成报文,反馈给测控制系统;

步骤6:控制端通信模块接收到结果报文后对其进行解析,将测试结果存入测试数据库;

步骤7:重复步骤2~步骤6,直到测试命令队列不再包含测试命令;

步骤8:测控制系统根据测试数据库中的结果对多台被测计算机进行对比、合格判定及合格率统计,并生成测试报表。

根据以上过程,本文分别设计了控制端程序和被测端程序,分别部署于测试控制系统和被测计算机,其执行流程和数据交互关系如图2所示。

图2 自动测试控制系统中控制端和被测端程序流程

4 测试控制通信协议

为了支撑以上自动测试控制流程,本文设计了图3所示的测试控制通信协议,用于测试控制端与被测端之间测试命令和结果的封装和解析。通信报文各字段的具体含义如下。

图3 测试控制通信协议

Header:报文头。标识一个合法报文的开始。

CMD:测试命令。在命令报文中CMD指定被测计算机需调用哪些测试用例执行测试;在结果报文中CMD指定当前测试结果关联到哪一条测试命令。

Dest Addr:报文目的地址。指定接收该报文的计算机的地址。

Src Addr:报文源地址。指定发出该报文的计算机的地址。被测计算机接收到命令报文后向Src Addr反馈心跳信息和测试结果;测试控制系统利用Src Addr判断心跳信息或结果报文来自哪台被测计算机。

A:应答位。在命令报文中该位为“0”;在结果报文中该位为“1”。

C:完成位。在命令报文中该位为“1”;在结果报文中,针对任一测试命令CMD的最后一个结果报文将该位置为“1”,否则将该位置为“0”;

Serial:报文序号。在命令报文中该字段为“0”;在结果报文中,该字段从“1”开始编号,后续依次加1。

Type:数据类型。在包含数据Data的报文中,该字段指定数据的类型。数据类型由测试控制系统与被测计算机约定,可以为浮点、字符、结构体等。

Length:数据长度。该字段指定报文所包含的数据Data的长度。

Data:数据。该字段为报文所包含的有效数据,若报文不包含数据则该字段为空。

Parity:校验字节。根据当前报文中该字段之前的所有字节按奇校验算法产生。

5 测试状态监测方法

5.1 控制端基于心跳的状态监测

为了在特种计算机批量测试过程中及时发现被测计算机有可能发生的宕机等故障,本文采用心跳机制实现对批量被测计算机的状态监测,控制端基于心跳的测试状态监测方法如图4所示。

图4 控制端基于心跳的测试状态监测流程

在测试控制系统中,控制端程序向某一被测计算机发送完测试命令之后,立刻为该被测计算机启动心跳计时器,然后侦听通信端口以等待接收来自被测端的报文。若接收到的报文为心跳信息,则对心跳计时器进行复位,然后继续接收报文;若接收到的报文为结果报文,则按照报文序列号缓存测试结果,并且在结果报文的完成位C被置位的情况下,取消心跳计时。

如果在心跳计时周期内未接收到心跳报文,则心跳计时器将发生超时,此时会触发心跳超时处理从而将该计时器对应的被测计算机标记为故障状态,并根据用户设定产生报警信息。

5.2 被测端基于心跳的状态反馈

对应地,被测端也需要定时向控制端反馈心跳报文,以表明该被测计算机处于正常状态,其心跳反馈流程如图5所示。

图5 接收端测试执行与心跳反馈流程

被测端程序接收到测试命令后,首先创建心跳进程(或线程),然后生成测试用例列表并执行测试。心跳进程(或线程)独立于测试用例执行,并按照心跳计时间隔周期性地向测试控制系统发送心跳报文。等到所有的测试用例都执行完毕之后,被测端程序再取消心跳进程(或线程),然后继续等待下一测试命令。

6 自动测试控制系统验证

本文设计了界面化的自动测试控制软件,其测试配置界面如图6所示,并搭建了测试验证环境,实现了对龙芯、申威等国产特种计算机的测试控制与结果统计。

图6 待测计算机参数配置界面

在测试用例方面,本文面向龙芯3A1000和申威410国产特种计算机设计了并行计算性能、内存访问性能、硬盘读写性能、网络通信性能等测试程序,测试和验证国产特种计算机的计算性能、多核加速比、访存带宽、存储带宽、网络带宽和时延等指标。其中,龙芯 3A1000处理器[7~8]运行在800MHz,申威 410 处理器[9~10]运行在 1.4GHz,以并行计算性能测试程序为例,两台特种计算机执行多次快速傅里叶变换[11]和最短路径搜索[12]用例所生成的测试结果分别如图7和图8所示。

图7 快速傅里叶变换测试结果

图8 最短路径搜索测试结果

从测试结果可以看出,由于龙芯3A1000处理器和申威410处理器均为4核处理器,两种测试用例在双线程和四线程时能够取得较好的并行加速比,但在八线程时不仅不能获得性能提升,其计算时间反而还比四线程时稍有增长,这是由多个线程在处理器上频繁切换导致的,符合试验预期。

以上试验表明,本文设计的国产特种计算机自动测试控制系统设计实现了对龙芯、申威等国产特种计算机的性能测试与结果采集,并支持测试报表生成与结果对比,能够满足不同架构的国产特种计算机批量测试与验证需求。

7 结语

本文针对国产特种计算机设计了一种自动测试控制系统,实现了测试用例配置、测试命令生成、测试状态监测、测试结果收集、测试报表生成等功能。试验结果表明,该自动测试控制系统能够对龙芯、申威等不同架构的国产特种计算机实施批量测试控制,可应用于国产特种计算机批量性能测试或无人值守的长时间可靠性试验场景,对于提升国产特种计算机测试验证效率、降低试验人工成本具有实用意义。

猜你喜欢
自动测试测试用例特种
特种侦察,身怀绝技
特种侦察游骑兵
基于SmartUnit的安全通信系统单元测试用例自动生成
JXG-50S型相敏轨道电路接收器自动测试台
可并行测试的电磁兼容自动测试系统的实现
电子测试(2018年13期)2018-09-26 03:29:14
古代“特种战”:每一场都是一部《战狼》
基于混合遗传算法的回归测试用例集最小化研究
关于某型雷达自动测试系统的几点认识和建议
电子制作(2018年11期)2018-08-04 03:26:00
特种养殖 一技在手 轻松赚钱
农村百事通(2017年9期)2017-07-07 15:20:32
基于依赖结构的测试用例优先级技术