列车运行控制系统安全关键软件自动测试平台的制作方法

文档序号:12550572阅读:278来源:国知局
列车运行控制系统安全关键软件自动测试平台的制作方法与工艺

本发明涉及轨道交通领域,具体为列车运行控制系统安全关键软件自动测试平台。



背景技术:

列车运行控制系统,简称列控系统,是保障列车在高速度、高密度的环境下安全运行、提高运输效率的重要部分。现代列控系统已经从轨道电路、机车信号等设备的简单组合,逐渐向功能完善、层次分明、集运行控制及自动驾驶为一体的综合自动化系统方向发展。在此过程中,软件被大量的应用在列控系统中,而且越来越多的安全相关功能由硬件移植到软件,使得列控系统软件成为“安全关键软件”。列控系统安全关键软件已经参与到列控系统的决策、控制及管理,而且软件执行的功能越来越多,复杂度也越来越高,软件遗漏需求、逻辑错误等均可能造成人员伤亡,重大财产损失及环境破坏等灾难性后果。列控系统安全关键软件必须经过全面、严格的测试,明确软件在各种场景下均不会导向危险。

测试平台是保证软件测试质量、提高测试效率和管理测试过程的关键技术。目前,列控系统安全关键软件的测试平台主要是仿真平台,通过模拟软件可能的场景进行测试,没有专门针对列控系统安全关键软件的自动软件测试平台。仿真平台的测试用例主要来自相关工程和专家的经验,工程的差异性和专家的人因不确定性都可能影响测试用例的质量,存在测试需求遗漏,测试不全面,测试需求重复等问题,导致列控系统安全关键软件存在安全隐患。同时,列控系统安全关键软件测试是一个复杂的过程,仿真平台的测试用例维护、测试过程管理、测试结果记录及结果分析都需要大量的人工参与。采用成熟的算法自动生成全面的测试用例,自动管理和分析测试结果的测试平台对提高列控系统安全关键软件的测试质量、效率和降低测试成本具有重要意义。

目前,列控系统软件测试平台主要是根据列控软件的功能及特点,分析软件与人员、其他系统或设备的交互,提取软件的输入、输出,搭建仿真平台,借助相关工程和专家的经验,模拟软件可能的各种场景,观察软件在这些场景下运行是否正常,同时人工记录和分析测试结果,达到测试的目的。

该技术的缺点:

(1)仿真平台存在不容易实体表现的抽象场景,如道岔转换过程中,容易遗漏测试场景。

(2)仿真平台的测试用例依赖相关项目和专家的经验,项目的差异性和专家的主观性导致难以保证测试用例的合理性,仿真场景可能存在重复、遗漏或错误,部分安全场景难以覆盖,为列车运行控制系统的运营埋下安全隐患;

(3)仿真平台成本高,测试用例的维护和更新、测试结果的记录和分析等都依赖人工,难以防止人因失误,同时测试效率较低。



技术实现要素:

本发明旨在提出一套完整的列车运行控制系统安全关键软件自动测试平台,覆盖列车运行控制系统安全关键软件从需求分析、测试用例自动生成、自动测试、自动记录和分析测试结果的全过程。

具体技术方案为:

列车运行控制系统安全关键软件自动测试平台,包括建模子系统、测试路径生成子系统、组合覆盖子系统、测试结果分析子系统、通信接口子系统和数据管理子系统。

所述建模子系统完成列车运行控制系统安全关键软件功能需求建模,具有列车运行控制系统的标准化的功能模型库,针对具体功能进行测试时可通过功能模型库的模型单元快速建立软件系统的功能模型。

所述测试路径生成子系统将建模子系统生成的状态图模型转换为有向图模型,通过广度优先搜索、前缀图匹配等算法,生成符合覆盖准则的测试路径。

所述组合覆盖子系统采用组合测试思想,分析每条路径的边的可能的测试场景集,根据路径中边之间的顺序关系进行组合覆盖,得到测试用例,并将测试用例转化为XML测试脚本文件,存储到数据管理子系统。

所述通信接口子系统是平台与待测系统交互的关键,该子系统集成测试过程中需要与待测对象进行通信的设备,并通过统一的接口设备实现各个接口数据的发送和采集,将测试数据存储到数据管理子系统。

所述测试结果分析子系统比较测试过程中通信接口子系统发送的测试用例和接收到的被测设备的测试用例执行结果,,自动分析测试结果,生成测试结果报告。

所述数据管理子系统包含数据库和文件管理系统。其中数据库存储测试用例、环境数据以及实测过程中与待测系统交互的数据。文件管理系统存储列车运行控制系统基础信号组件的基础功能模型、测试路径XML文件、测试用例序列XML脚本文件和测试结果报告文件。

测试路径生成子系统与组合覆盖子系统,组合覆盖子系统与通信接口子系统,通信接口子系统与测试结果分析子系统之间均存在单向通信,前一子系统工作完成后向后续子系统发送信号,触发后续子系统工作,从而使得从测试路径生成至测试结果分析的整个流程可自动进行。

建模子系统采用SCADE(Safety Critical Application Development Environment)对待测对象进行模型构建。

测试路径生成子系统、组合覆盖子系统、通信接口子系统可在数据管理子系统的支持下独立运行,通过从数据管理子系统获取历史数据,上述子系统可针对特定数据生成相应的子系统运算结果。

本发明提供的列车运行控制系统安全关键软件自动测试平台,建立列车运行控制系统基础信号模型库,提高建模的准确度和效率;根据列车运行控制系统需求和功能模型库形式化地描述列车运行控制系统安全关键软件的需求,利用仿真和模型检测方法验证模型的安全性和活性,保障模型的正确性;利用广度优先搜索、前缀图匹配等算法,生成符合覆盖准则的测试路径,结合组合覆盖生成列车运行控制系统安全关键软件的测试用例,具有测试用例覆盖全面、不重复、不遗漏,包含异常测试场景和小概率场景的特点;测试序列自动生成与自动注入,并自动完成分析和统计测试结果,提高测试质量和效率,同时降低测试成本。

附图说明

图1是本发明的结构示意图;

图2是本发明的建模子系统结构示意图;

图3是本发明的测试路径生成子系统结构示意图;

图4是本发明的组合覆盖子系统结构示意图。

具体实施方式

结合附图说明本发明的具体实施方式。

本发明为列车运行控制系统安全关键软件自动测试平台,包括建模子系统、测试路径生成子系统、组合覆盖子系统、通信接口子系统、测试结果分析子系统和数据管理子系统,如图1所示。系统间各个子系统通过标准串口或高速以太网连接,其中建模子系统用于构建待测安全关键软件的功能需求模型,并对模型进行仿真和验证,保证模型的安全性和准确性。建模子系统通过接口A与测试路径生成子系统进行通信,将建模子系统的模型信息和模型修改信息。测试路径生成子系统、组合覆盖子系统、通信接口子系统、测试结果分析子系统分别通过接口D、E、F、G与数据管理子系统进行通信,从数据管理子系统中提取各个子系统操作所需数据。测试路径生成子系统通过接口A获取建模子系统的模型文件或更新的模型文件。通过接口B将生成的测试路径发送给组合覆盖子系统,组合覆盖子系统根据测试路径和路径的边代表的测试场景集自动生成测试用例。组合覆盖子系统通过接口C向通信接口子系统发生测试用例生成结束信息,通信接口子系统对待测系统自动测试。通信接口子系统通过接口H向测试结果分析子系统发送测试完成消息,测试结果分析子系统自动分析测试用例的执行情况。该系统的一般工作过程是。

建模子系统完成列车运行控制系统安全关键软件需求建模。首先根据《CTCS-3级列控系统系统需求规范(SRS)》和《CTCS-3级列控系统总体技术方案》等需求规范,利用建模子系统采用SCADE建立列车运行控制系统基础信号组件的基础功能模型库。然后,利用基础功能模型库中的模型组件针对具体的待测安全关键软件的功能构建软件系统模型,利用SCADE提供的仿真器和模型检测器保证模型的正确性,如图2所示。当建模子系统新建模型或者修改模型后,该子系统向测试路径生成子系统发送模型更新信息,测试路径生成子系统重新获取模型。测试路径生成子系统包括模型转换模块、算法选择模块以及路径校验模块。测试路径生成子系统从建模子系统接收待测对象的模型文件后,首先将经过验证的模型文件存储于数据管理子系统;然后对XML格式的模型信息文件进行解析。模型转换模块自动对模型信息进行筛选,提取保留模型信息包中符合图论有向图的信息,从而将SCADE模型转换为有向图模型。算法选择器模块通过界面配置图覆盖准则以及相关算法参数,系统根据配置从测试路径生成算法库中自动匹配算法生成测试路径。路径校验模块考察测试路径对图模型覆盖的完整度,当覆盖度满足要求时将测试路径转化为XML文件并存储于数据管理子系统并向组合覆盖子系统发送消息通知其存在新的测试路径需要处理,如图3所示。

组合覆盖子系统接收到测试路径生成子系统生成的测试路径后,组合覆盖子系统从数据管理子系统获取模型文件以及测试路径生成子系统生成的测试路径信息,分析每条路径的边上可能的安全关键软件的测试场景,采用组合测试的方式,根据路径中边的顺序关系对路径上所有的边的测试场景进行组合覆盖,得到测试用例,并将测试用例转化为XML脚本,以文件形式存储到文件管理子系统,将测试数据以数据库表结构存储于数据管理系统中,如图4所示。该子系统可与通信接口子系统通信,向通信接口子系统发送测试用例生成消息。

通信接口子系统接收到测试用例生成消息后,从数据管理子系统获取包含测试用例信息的XML脚本文件,将测试用例及必要的环境数据按照接口设备的规格要求发送给接口设备,接口设备驱动被测对象测试,同时实时采集被测设备对测试用例的执行结果。通信接口子系统将测试过程的状态及测试结果等信息存储于数据管理子系统,并向结果分析子系统发送测试完成信息。

测试结果分析子系统接收到测试完成信息之后从数据管理子系统获取测试过程数据及测试结果数据,结合测试序列脚本XML文件核对每一个测试用例的执行情况,自动统计测试用例的类型、比例,统计每个需求的失败用例并显示,包括需求名称、失败的测试用例、用例类型以及该需求中的同类型的所有测试用例。对于失败测试用例,系统进行故障追踪,将异常情况定位到具体模型测试路径的边场景中。最终根据测试分析结果生成测试报告,并以文本文件格式存储于数据管理子系统中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1