发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种测试效率高、测试成本低的列车网络应用层控制软件自动化测试方法。
为解决上述技术问题,本发明提出的技术方案为:
一种列车网络应用层控制软件自动化测试方法,包括以下步骤:
S01、测试开始,导入被测列车网络应用层控制软件的各种数据传输协议,并对各种数据传输协议中各变量进行解析并定义,再存入变量库;
S02、编写协议转换程序,用于实现以太网协议与各种数据传输协议之间的数据转化;
S03、导入并执行预设的测试用例对各控制软件进行测试,如测试结果与期望值相符则判断控制软件合格,否则为不合格。
作为上述技术方案的进一步改进:
在步骤S03中,当测试完成后,生成测试报告并以表格或图形的形式展示或储存。
预设的测试用例包括用例ID、前置条件、输入/操作步骤、期望结果、测试结论以及实际输出值共六个要素,步骤S03中的测试过程为:读取用例ID、前置条件、输入/操作步骤和期望结果,并转化为可执行的脚本代码进行测试,生成实际输出值与期望结果对比生成测试结论。
所述输入/操作步骤通过中文进行描述,并遵循“变量名+执行动作+参数”的格式,其中变量名为步骤S01中变量经解析及定义所得。
所述期望结果通过中文进行描述,并遵循“变量名+判断条件+参数”的格式,其中变量名为步骤S01中变量经解析及定义所得,参数为数值或者中文名称,判断条件和中文名称的参数均为事先配置。
各种数据传输协议包括MVB协议、WTB协议、RS424协议、RS485协议、CAN协议和以太网协议。
在步骤S01中,各种数据传输协议均为Excel格式,通过读取Excel固定表头或者关键字获取数据传输协议的各个要素,将各个要素中的信号名转化为同等大小的变量名。
MVB协议包括五大要素,分别为端口号、端口周期、端口方向、端口大小、端口中信号名称及大小。
在步骤S03中,对被测控制软件的输入变量以及输出变量进行显示,并可对输入变量进行变量强制。
被测控制软件的输入变量以及输出变量经预设的表达式转化后再进行显示。
与现有技术相比,本发明的优点在于:
本发明的列车网络应用层控制软件自动化测试方法,不用开发专用的通信板卡或者工控机,减少测试过程中所需的硬件;导入各种数据传输协议来实现数据的自动定义,不同项目的数据定义完全依靠数据传输协议,将极大减少人力、时间成本;另外只需对转化程序运行平台的编程规则进行解析,即可自动生成转化程序,提高了测试效率。
具体实施方式
以下结合说明书附图和具体实施例对本发明作进一步描述。
如图1至图4所示,本实施例的列车网络应用层控制软件自动化测试方法,包括以下步骤:
S01、测试开始,导入被测列车网络应用层控制软件的各种数据传输协议,并对各种数据传输协议中各变量进行解析并定义,再存入变量库;
S02、编写协议转换程序,用于实现以太网协议与各种数据传输协议之间的数据转化;
S03、导入并执行预设的测试用例对各控制软件进行测试,如测试结果与期望值相符则判断控制软件合格,否则为不合格。
本实施例中,本测试方法所依托的测试系统由PC端、陪测端和被测端三部分组成,陪测端与被测端均为列车网络平台产品。其中PC端与陪测端之间通过以太网连接,数据传输方式为UDP,陪测端与被测端之间为网络通信线缆,数据传输协议包括网络系统项目中所使用到的MVB协议、WTB协议、RS485/422协议、CAN协议、以太网协议。陪测端主要通过模拟采集被测端的所有输入数据,并检测被测端所有输出数据,通过编写转换软件实现。陪测端/被测端可以是单个模块/单板,也可以使多个模块/单板组成的陪测/被测系统。
本实施例中,在步骤S03中,当测试完成后,生成测试报告并以表格或图形的形式展示或储存。
本实施例中,各种数据传输协议包括MVB协议、WTB协议、RS424协议、RS485协议、CAN协议和以太网协议。
本实施例中,在步骤S01中,各种数据传输协议均为Excel格式,且自动解析协议中的变量并进行定义。以MVB协议为例,MVB通信协议必须要包含五大要素:1、端口号;2、端口周期;3、端口方向;4、端口大小;5、端口中信号名称及大小。通过读取EXCEL固定表头或者关键字获取五大要素,并将信号名转为同等大小的变量名存入变量库,协议导入流程请参考图3。
本实施例中,在步骤S02中,协议转换程序的生成过程如下:
因为自动化测试方法需在PC端上运行,通常需要通过以太网与被测端相连,如果被测端不具备以太网接口,或者被测端应用程序并不支持以太网协议,则需要一个陪测端,通过陪测端上的转换程序将以太网协议下的数据转为其他协议下的数据。例如被测端应用程序仅支持MVB协议,那么在转换程序中,需要将UDP数据包(以太网协议)与MVB数据包(MVB协议)相互转化。其中只需要对转换程序编程工具的编程规则进行解析,即可自动生成UDP协议与其他通信协议相互转换的转换程序。
以编程工具MULTIPROG5.0为例,编写一个支持UDP协议和MVB协议的应用程序时要包括4个内容:1、定义数据类型;2、定义MVB端口信息(包括端口号、端口大小、物理地址起始地址)和UDP端口信息(定义端口号);3、编写描述MVB数据包与UDP数据包映射关系的主程序(使用MULTIPROG5.0编程工具支持的ST语言);4、任务运行周期。其中1、2、4点中的信息,通过协议导入后即可获知,第3点中主程序(ST语言)则是描述UDP数据包与MVB数据包相互映射的关系,可以由自动化测试系统自行决定其映射关系。例如,有3个32字节大小的MVB数据包(MVB1、MVB2、MVB3)需要填入1个1024大小的UDP数据包,那么UDP数据包的第1-32字节则对应MVB1数据包,第33-64字节则对应MVB2数据包,第65-96字节则对应MVB3数据包。由于使用MULTIPROG5.0编程工具是可以将完整的应用程序导出为4个相关的配置文件,反之亦可通过导入这4个配置文件生成支持UDP协议和MVB协议相互转换的应用程序。当执行完步骤S01后,再执行转换程序生成功能,即可生成转换程序的4个配置文件,通过MULTIPROG5.0导入4个配置文件后,即生成了转换程序。
本实施例中,预设的测试用例包括用例ID、前置条件、输入/操作步骤、期望结果、测试结论以及实际输出值共六个要素,步骤S03中的测试过程为:读取用例ID、前置条件、输入/操作步骤和期望结果,并转化为可执行的脚本代码进行测试,生成实际输出值与期望结果对比生成测试结论,详细过程如下:
用例ID为测试用例的编号;
前置条件是用来描述当前测试用例执行的先决条件,即在执行当前测试用例时,必须先执行某个测试用例的输入/操作步骤;
输入/操作步骤可以通过中文进行描述,但其需要遵循“变量名+执行动作+参数”的格式,多条输入/操作步骤需要通过“;”间隔。其中变量名为步骤S01R的协议导入解析后产生,参数为数值或者中文名称,执行动作和中文名称参数为事先配置,比如“=:等于,为”、“>:大于”、“1:有效、高电平”;
期望结果也可以通过中文进行描述,但其需要遵循“变量名+判断条件+参数”格式,多条期望结果需要通过“;”间隔。其中变量名为步骤S01中协议导入解析后产生,参数为数值或者中文名称,判断条件和中文名称参数为事先配置,比如“=:等于,为”、“>:大于”、“1:有效、高电平”;
实际值为期望结果中变量的实际数值,多个数值用“;”隔开;
测试结论为期望结果与实际值是否相符,相符即为本条测试用例通过,反之则不通过。
执行过程:将中文编写的测试用例导入自动化测试系统后,读取“用例ID”、“前置条件”、“输入/操作步骤”、“期望结果”等四个要素,并将其转为系统底层可以执行的脚本代码。
实例请见下表:
用例ID |
前置条件 |
输入/操作步骤 |
期望结果 |
实际值 |
测试结论 |
TC-0393 |
|
“牵引有效”=“1” |
“牵引工况”为“高电平” |
|
|
TC-0394 |
TC-0393 |
“牵引采集速度”等于“230” |
“列车时速”大于“200” |
|
|
TC-0393用例中,需要自动化测试系统将变量“牵引有效”数值强制为1并输入到被测系统中,并观测被测系统输出的变量“牵引工况”数值是否等于1;而在TC-0394中,需要先执行TC-0393用例中的输入/操作步骤(变量“牵引有效”数值强制为1并输入到被测系统中),然后再将变量“牵引采集速度”强制为230并输入到被测系统,并观测被测系统输出的变量“列车时速”是否大于“200”。
当测试用例导入后,由自动化测试系统将其转为系统底层可以执行的脚本代码,当选择开始执行测试用例后,执行完输入/操作步骤后,再将需要监视的变量名的实际值记录下来,并代入到期望结果中进行判断,如果与期望结果相符则本条用例通过,反之则不通过。自动化测试执行完后,生成测试报告,即填写“实际值”、“测试结论”到测试用例中(EXCEL文档),同时也要对整个测试用例进行数据总结分析,并形成图表形式,记录在测试用例对应的SHEET页面中。
本实施例中,在步骤S03中,对被测控制软件的输入变量以及输出变量进行显示,并可对输入变量进行变量强制。在自动化测试系统中,通过人机界面可以显示所有的变量,被测系统输出的信号只能进行变量监视,输入到被测系统的信号可以进行变量强制。通过在界面上双击需要强制的变量名,弹出输入框,输入需要强制的数值回车后即可将变量数值输入到被测系统。变量监视、变量强制功能属于动作录制功能相关功能,也可以运用于自动化测试系统中的人工手动测试。在测试过程中的变量强制动作可以通过脚本进行录制,脚本录制后可以转化为测试用例,其转化过程如图4。
本实施例中,被测控制软件的输入变量以及输出变量经预设的表达式转化后再进行显示。当进行变量监视时,由于监视到的数值往往需要经过特定表达式转化,才能方便测试人员理解数据,所以需要进行表达式的配置。选取某个监视的变量后,测试人员预先配置好的表达式,就可以通过变量监视直接显示预先配置的值。例如,变量名““当前站名”,被测系统输出的数值就是0、1、2、3…,通过配置““当前站名”的表达式,比如“0=北京”、“1=上海”、“2=南京”、“3=广州”,那么在测试过程中,可以直观的显示站名,方便测试人员判断数据的正确与否。
本实施例中,如图2所示,实线圆圈中标有协议导入、转换程序生成、表达式、变量监视、动作录制、变量强制、测试用例导入、生成测试报告等字样代表系统所具备的功能,虚线圆圈中为系统在后台处理。其中变量监视、变量强制、动作录制、表达式为自动化测试系统辅助功能,基本功能是辅助功能实现的基础。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。