LKJ自动测试平台及关键技术研究

2024-03-13 01:53单一龙杨志杰李辉侯大山李建雄
铁道标准设计 2024年3期
关键词:测试人员自动测试关键字

单一龙,杨志杰,李辉,侯大山,李建雄,郝 建

(1.中国铁道科学研究院研究生部,北京 100081; 2.中国铁道科学研究院集团有限公司通信信号研究所,北京 100081)

1 概述

列车运行监控装置(LKJ)是安装在机车、动车组上用于保障行车安全、防止列车超速、辅助司机操纵的重要运行监控设备[1-2]。目前国内超过2万台机车和1千多列运行时速为250 km的动车组装备了LKJ设备。LKJ是我国现阶段普速铁路列车运行监控系统中的重要组成部分。

随着我国铁路行业技术的不断发展以及铁路运输需求的不断提升,为满足行车安全的需要,LKJ不断更新、完善其功能,设备的仿真测试工作也变得愈加重要,对于测试的整体流程以及效率提出了更高的要求[3-4]。现LKJ设备测试工作多由测试人员人工完成,存在一些弊端,主要体现在以下方面[5]。

(1)LKJ设备功能繁多,应用场景复杂,在人工测试中,测试过程需要测试人员全程参与,劳动强度大,效率低下,测试周期长。

(2)人工测试时,测试用例基于黑盒测试方法、依据LKJ测试规范进行编写,编写难度大,对编写人员的要求较高,并且由于文字描述过多,导致测试时不同测试人员对于同一条测试用例的理解以及操作可能存在差异,容易影响测试的执行及测试结果的准确性。

(3)不同于列车实际运行,在测试环境下,信号的触发时机难以控制,部分复杂场景人工操作难以实现。

(4)人工测试中,测试结果需要测试人员实时观察DMI的显示信息以及LKJ设备的反馈输出,容易出现测试结果误判或缺失的情况。

(5)对于LKJ设备故障问题,难以找寻故障原因。

(6)测试过程难以复现,不利于测试用例的积累和固化。

针对以上问题,设计一种自动测试平台,采用图形化方式设计生成测试用例,降低测试用例设计难度,基于测试用例自动执行技术以及专家系统的故障分析技术,实现按照LKJ测试既定计划进行的自动化测试,可有效减少测试人员的工作量,提升测试效率与测试结果的准确性[6-9]。

2 自动测试平台架构设计

自动测试平台由人机交互单元、信号适配单元以及主控单元组成。各个单元之间通过通信控制接口进行信息交互,实现整个平台的功能[10]。自动测试平台架构如图1所示。

图1 自动测试平台架构

人机交互单元包括外接显示器和输入设备。外接显示器是自动测试平台的显示终端,可实时显示参数信息、状态信息以及测试执行进程;增加输入设备便于测试人员人工操作,包括测试用例生成以及执行命令的输入。

信号适配单元负责模拟LKJ设备实际运行环境,包括数字量调理模块、模拟量调理模块、采集模块、通信模块和频率处理模块。数字量调理模块可模拟输出工况、灯显等数字信号;模拟量调理模块可模拟输出压力、轨道电路等模拟信号;采集模块负责采集实速、里程计等信息;通信模块具备CAN通信、RS482通信及RS485通信功能,负责与其他模块进行信息交互;频率处理模块具备脉冲和正弦波调理输出功能,模拟输出速度、柴速、原边电流电压等信号。

主控单元是自动测试平台的核心单元,包括执行模块和专家系统。主控单元负责处理各项操作信息,并依据操作信息调用测试用例、控制其他单元实现自动测试功能;并可处理LKJ被测设备反馈信息,依据测试结果生成测试报告及故障分析结果。

3 自动测试平台关键技术研究

3.1 测试用例的图形化生成方法

测试用例是LKJ设备测试的基础,其以文档的形式保存,详细描述了在特定条件下LKJ设备的操作输入以及所对应的期望响应输出。测试用例的质量直接影响测试结果的准确性以及功能测试的完整性,测试用例的设计也对整体测试流程有很大影响。一个完整的LKJ测试用例应包含以下内容。

(1)测试用例编号。如LKJ-FT-XXX,LKJ代表被测LKJ设备;FT代表功能测试,XXX为该用例具体编号。

(2)用例描述。需简单明了,使得测试人员能够快速了解测试用例的目的,便于测试用例的管理和使用。

(3)起始条件。为测试用例开始执行之前所需满足的条件,如模式、轨道电路制式等。

(4)起始约束条件。为测试用例开始执行之前需要满足的动态条件,如接口状态、变量值等。

(5)测试步骤。为测试用例的细化,详细描述了测试中每一过程的模式、变量、按键操作等。

(6)结束条件。测试用例结束时的状态,如变量值、显示输出等。

为方便测试用例生成,提高用例设计的效率,自动测试平台采用图形化方式生成测试用例,编辑界面示意如图2所示,主要包括控件区、编辑区及信息显示区。

图2 测试用例编辑界面示意

控件区包括参数设定、运行场景控件、输入控件、输出控件和用例描述。参数设定具体包括司机号、列车类型、车次号码、速度等级、总重、辆数、计长等基础信息的设置;运行场景控件通过解析LKJ存储的线路数据自动生成,用于表达实际线路运行场景;输入控件表示LKJ从外部获取或自身设置的各项参数信息以及获取时机,具体包括工况、速度、风压、柴速、DMI按键、公里标、信号机灯型、绝缘节、制式、距离和时间间隔等;输出控件表示LKJ的预期响应输出,具体包括DMI显示、语音提示、限速、牵引力指令、制动指令等;用例描述由编辑人员编写,可供测试人员参考。

编辑区以图形化的方式展示测试用例的业务逻辑。编辑区上方用于显示运行场景及超速防护曲线信息;编辑区下方的时间和里程基准轴用于添加控件,用距离或时间间隔表示添加各种控件的时机。

信息显示区用于显示某一时机下所涉及到的具体参数信息。

通过各种控件的组合,可模拟LKJ设备在列车运行过程中,从外部获取或者其自身设置的用于指导列车运行的信息、司机的操作信息、线路信息、逻辑组合和结果断言的完整表达[11]。

在用例编辑时,编辑人员依据测试需求,首先,在控件区进行基本参数的设定,并选取合适的运行场景控件作为编辑基础显示在编辑区,可同时选择多个运行场景控件组合显示;其次,选择输入控件并设置合适参数及属性,将其放置在编辑区与基准轴建立联系,添加距离或时间间隔等控件调整触发时机;然后,选取输出控件并设置合适参数及属性,放置在编辑区中作为预期输出;最后,填写用例描述,生成完整用例。

3.2 基于Robot Framework的LKJ自动测试技术

Robot Framework是一种基于Python语言编写的、支持可扩展关键字驱动的通用型测试框架,可作为LKJ自动测试平台中的测试执行工具[12]。其模块化的基本结构如图3所示。

图3 Robot Framework基本结构

Test Data:是一种易于编辑的表格形式的测试数据。Robot Framework:包含文件解析模块、内置关键字模块、关键字执行模块、监控记录模块等,用于启用测试数据,执行测试用例。Test Libraries:测试库由两部分组成,包括自带测试库及自定义的可扩展测试库。Test Tools:应用软件工具,辅助测试的软件或设备。System Under Test:被测产品或系统,本文指LKJ设备。

3.2.1 适应LKJ测试的关键字优化模型

为满足LKJ设备的自动测试需求,自动测试平台采用关键字驱动方式执行测试。关键字驱动方式是数据驱动技术的扩展。关键字为对测试操作的抽象与封装,其执行顺序体现了测试的业务逻辑。依据不同的参数要求设计关键字,选择关键字生成数据链表即可实现业务流程[13-15]。

传统的关键字模型创建封装高级关键字,通过高级关键字映射测试用例,实现复杂功能。但此种模型抽象封装关键字的级别较低,测试时需要直接调用底层关键字,针对LKJ测试复杂的功能及其特殊的运行场景,容易出现关键字复用率低和难以扩展等问题。

如图4可见,优化体系扩增出来的谱带明亮,背景清晰,稳定性好。因此,建立的ITS-PCR体系和扩增程序能够满足芋螺毒腺的ITS序列研究、芋螺遗传多样性分析、亲缘关系鉴定和种质资源评价等分子生物学的试验要求。

对此,引入业务关键字,在传统关键字模型的基础上进行扩展,设计一种适应LKJ测试的关键字优化模型。优化模型将业务关键字创建在测试用例和高级关键字之间,由业务关键字体现测试用例的功能,二者通过映射机制联系起来,使得LKJ的业务逻辑与基础关键字分离,提升自动执行的效率。关键字优化模型如图4所示。

图4 适应LKJ测试的关键字优化模型

3.2.2 LKJ自动测试流程

基于Robot Framework自动测试框架,采用适应LKJ测试的关键字优化模型驱动,将测试数据与关键字独立存储并映射联系,通过各种关键字及底层代码的组合调用,实现测试用例的自动执行。

在自动测试实现过程中,首先将测试用例中的业务逻辑封装于业务关键字中,创建保存业务逻辑关键字库,并将测试数据保存于测试文件中;根据不同的测试需求,测试人员可设置不同的执行参数,使执行模块有选择地调用测试用例;Robot Framework对被调用的测试用例进行解析,实现测试用例至业务关键字的映射,并按照业务逻辑依次调用通用关键字,通过关键字对应的底层代码,实现按键操作、模拟信号生成等测试流程,并返回关键字执行情况和结果,随着通用关键字被依次调用,实现测试用例的自动执行。自动执行具体流程如图5所示。

图5 测试用例自动执行流程

3.3 故障分析专家系统

专家系统是当前设备检测与故障分析领域中一个重要的应用方向,其通过分析人类专家的知识经验,模拟决策过程推理解决复杂问题,知识库和推理机是其核心组成。知识库用于存储专家知识以及实例数据并提取其中知识规则。推理机依据已知信息匹配知识库的规则,给出新的结论,得到问题求解结果。LKJ自动测试平台采用基于知识库的故障分析专家系统,结合LKJ领域专家经验以及以往测试实例对测试结果进行分析,对于设备故障现象给出故障原因。

3.3.1 LKJ故障知识库构建

专家系统通过“知识+推理”的机制实现故障分析过程。结合领域专家经验以及以往测试实例数据结果,以LKJ防溜功能故障作为顶事件(T),将各级故障原因作为中间事件(M1~M6)及底事件(X1~X10),逐层分析故障原因,构建防溜功能故障树,如图6所示。

图6 防溜功能故障树

表1 防溜功能故障树代码含义

为保障故障分析可靠有效,专家系统通过产生式规则表示法对故障知识进行标识,构建知识库[16-17]。产生式规则表示法由模式和动作组成,模式为该规则可用的条件,动作描述应用该规则时要采取的行动,获得的结论或状态,其基本形式为:if“条件”,then“结论”。在LKJ自动测试平台专家系统知识库的设计中,将故障现象的原因作为条件,故障现象作为结论。对应故障树相关知识,将下层事件作为条件,与其相对应的上层事件作为结论,通过此种方式标识知识间的逻辑关系,实现规则转化[18-19]。以LKJ管压防溜故障子树为例,规则提取如表2所示。

表2 管压防溜故障规则

3.3.2 推理机设计

在推理机设计中,依托知识库规则知识,选用基于规则的推理方法。依照自动测试平台需求,选用基于规则的正向推理方法,即基于已保存的故障知识及其规则知识,以故障树为基础,从故障现象出发,通过持续匹配其对应规则的前提条件,最终得到故障原因[20]。

由于LKJ设备构造复杂,功能繁多,产生故障的原因也复杂多变,所以在推理机的设计中加入冲突消解策略。该策略是指推理机在推理过程中,遇到超过一条可匹配知识规则时,如何选择其中最合理规则的策略。本文采用基于故障概率的冲突消解策略,通过统计以往测试实例,在故障树知识的基础上,依据故障概率设置优先级。当遇到超过一种故障原因的情况,优先选取故障概率高的规则进行匹配,从而提高推理效率和准确性。专家系统推理过程如图7所示。

图7 自动测试平台专家系统推理过程

4 工作流程及关键技术验证

4.1 自动测试平台工作流程

LKJ自动测试平台工作流程如图8所示,具体如下。

图8 自动测试平台工作流程

(1)依据LKJ测试规范,采用图形化方法生成测试用例,保存至测试文件中。

(2)创建测试工程,依据测试需求设置执行参数。

(3)运行测试,主控单元解析测试文件以及相关操作命令,自动化驱动信号适配单元模拟行车环境,对LKJ设备功能进行测试,并实时显示测试进程。

(4)对测试结果进行分析,对比预期结果及实际输出,调用专家系统,生成测试报告并分析故障原因。

4.2 关键技术验证

基于LKJ-15型列车运行监控装置及实验室仿真测试环境搭建自动测试平台,验证本文可行性。以LKJ-15设备在CSM区控制指令输出功能测试为例,共需设计27条用例,均可采用图形化生成方式实现,图形化用例生成界面如图9所示。

图9 图形化用例生成界面

将Robot Framework自动测试框架部署在仿真测试环境中,设置27条用例全部执行,执行时间约为8 min,测试用时远低于人工测试。测试数据如图10所示。

图10 测试数据显示

自动测试平台采集实际输出与预期结果对比,对于结果不一致的用例,平台显示故障现象,并通过专家系统分析故障原因,分析结果如图11所示。

图11 故障分析结果

验证可知,本文研究的LKJ自动测试平台及其关键技术可有效减少测试工作量,提高效率,并能对于故障现象合理分析给出故障原因,对测试流程的优化有一定意义。

5 结语

采用图形化测试用例生成技术设计生成用例,基于适应LKJ测试的关键字优化模型,将Robot Framework自动测试框架和故障分析专家系统融合到测试平台中,自动执行用例并对故障原因进行分析,可实现无人值守的LKJ设备自动化测试。对比传统人工测试,LKJ自动测试平台的设计研究对于减少测试人员工作量,提高测试效率及准确性具有一定意义。随着今后测试用例库的不断丰富与完善,对于回归测试效率的提升也将有很大帮助。

后续将继续对本测试平台及其关键技术进行研究,主要研究方向如下。(1)测试用例自动生成技术:可进一步提升用例设计的效率,减少测试人员的工作量。(2)便携式自动测试平台:可简化设备,方便携带,对测试环境的苛求降低、对测试便携性的提升有很大意义。

猜你喜欢
测试人员自动测试关键字
移动应用众包测试人员信誉度复合计算模型研究
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
成功避开“关键字”
JXG-50S型相敏轨道电路接收器自动测试台
可并行测试的电磁兼容自动测试系统的实现
关于某型雷达自动测试系统的几点认识和建议
高校分析测试中心测试队伍建设方案初探
浅析软件测试中的心理学应用
一种卫星低频接口自动测试系统
犯罪心理测试人员素质要求分析