专利名称:一种列车车载软件的测试方法和测试系统的制作方法
技术领域:
本发明涉及软件测试领域,特别是涉及一种列车车载安全控制软件的测试方法和 测试系统。
背景技术:
软件测试是保证软件质量的一个十分重要环节,因此需要引入各种测试工具来提 高软件测试的效率。对基于PC机软件的测试,已有较多的理论、方法和工具,渐趋成熟,而 基于嵌入式平台的软件测试领域,由于必须面向特定的硬件平台,行之有效的理论与方法 很少或者代价很高。作为负责列车行车安全的列控系统,列车车载安全控制软件的微小瑕 疵就可能威胁到列车运行安全,带来巨额人员与财产损失。因此,对列车车载安全控制软件 的测试非常重要。而且从单一软件角度来看,软件的底层驱动逻辑简单,修改次数很少,问 题也较少;最重要的上层逻辑由于需要反复修改以适应用户需求,隐藏问题的可能性则非 常大。参见图1,示出列车车载软件的架构,车载软件大致可分为控制逻辑11、底层接口 12、控制参数13、线路基础数据14等四部分构成。其中线路基础数据14是铁路局根据其 配属机车的运行区间进行编辑、编译后得出,它包含列车走行线路的基本信息,如信号机的 编号/类型、信号机之间的距离、线路的限速、坡道、道岔的限速与位置等各种特征;控制参 数13则是一个软件开关的汇总,由各个铁路局根据配属机车的实际情况等内容进行选择, 如和谐号列车与普通列车的车种选择等等;底层接口 12负责各种数据的获取、传送;控制 逻辑11负责数据的运算、处理。由于全国铁路各种信号制式,各路局的规章、规定、习惯,各种线路的条件、各型内 燃、电力机车等等特性等均存在较大差异,作为一个标准的列控系统,其功能必须适应这些 情况的变化。因此车载软件的特点是控制逻辑十分复杂,测试用例也非常多,并且不断的积 累,完成一次测试的时间成几何级数的增长。如果车载软件经过重大改动,往往需要动员十 几个人进行反复测试,依赖“人海战术”的测试方法严重影响测试效率。在测试时,因主要依靠人工测试,而人的短期记忆有限,且存在个体差异,导致给 出模拟数据的时机、前后顺序有所不同,使测试结果不同,使用同一个测试用例,即使发现 问题,要完全重复上一次测试过程也难以实现,影响测试效果。
发明内容
本发明所要解决的技术问题是提供一种列车车载软件测试方法,该方法可提高生 产率,减轻劳动强度,同时减少错误的发生。本发明一种列车车载软件的测试方法,包括对车载软件底层硬件驱动与上层逻 辑操作进行剥离,创建基于目标操作系统的底层硬件驱动;将上层逻辑操作移植到目标操 作系统平台,与基于操作系统的驱动一起构建待测软件;调取、运行测试用例,上层逻辑操 作通过底层驱动从外围设备模拟器和/或真实外围设备获取关联设备运行数据,通过列车模拟操纵台获取相应的列车状态模拟数据,并生成执行结果;依据执行结果判断待测软件 的质量特性。优选的,调取、运行测试用例之前,还包括设定测试环境。优选的,所述方法还包括判断是否还有测试用例,如有,继续调取并运行。本发明一种列车车载软件的测试系统,包括控制机、主机模拟器、外围设备模拟器 和/或真实外围设备、软件编译器,控制机内置测试进度控制模块、结果分析模块和测试用 例库,主机模拟器内置待测软件模块;待测软件模块,用于对车载软件底层硬件驱动与上层逻辑操作进行剥离,创建基 于目标操作系统的底层硬件驱动;将上层逻辑操作移植到目标操作系统平台,与基于操作 系统的驱动一起构建待测软件;测试进度控制模块,用于调取、运行测试用例,上层逻辑操作通过底层驱动从外围 设备模拟器和/或真实外围设备获取关联设备运行数据,通过列车模拟操纵台获取相应的 列车状态模拟数据,并生成执行结果;结果分析模块,用于依据执行结果判断待测软件的质量特性。优选的,所述控制机还包括测试环境库,用于为测试进度控制模块提供测试环境 相关参数,测试进度控制模块设定测试环境。优选的,主机模拟器包括第一模拟器和第二模拟器,第一模拟器和第二模拟器分 别内置待测软件模块。优选的,所述系统还包括屏幕显示器模拟机或者真实的屏幕显示器,用于显示测 试过程和结果。与现有技术相比,本发明具有以下优点本发明将车载软件的测试从嵌入式系统移植到操作系统,使之脱离特定目标硬 件,借助于基于该操作系统编写的测试管理程序进行自动测试,可自动完成测试环境的设 定,测试用例的调取,运行,及测试报告的生成,相对于现有技术中人工测试,该测试过程效 率高,测试过程标准,测试结果准确。
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获 得其他的附图。图1为列车车载软件的架构示意图;图2为本发明列车车载软件测试方法;图3为本发明车载软件简化结构图;图4为本发明列车车载软件测试系统示意图;图5为本发明一测试用例示意图;图6为本发明测试过程采样点第一示意图;图7为本发明测试过程采样点第二示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。本发明将车载软件移植到基于通用计算机的其他操作系统平台,凭借计算机的高 效数据处理能力,将这些繁琐的、人工的测试行为改为由计算机系统自动进行,以便提高劳 动生产率,减轻劳动强度,同时减少错误的发生。参见图2,示出本发明列车车载软件测试方法,具体步骤如下。步骤S201、对车载软件底层硬件驱动与上层逻辑操作进行剥离,创建基于操作系 统的底层硬件驱动,将上层逻辑操作移植到操作系统平台,与新编写的底层硬件驱动一起 编译后作为待测软件。受嵌入式平台的限制,且车载软件未使用操作系统,恢复现场环境与车载控制软 件自身,成为实现自动测试的最大难题。车载软件采用标准C++作为编程语言,基于C语言 的可移植性,在操作系统平台下测试正确的上层逻辑操作,在目标硬件上也是正确的。将车 载软件运行在操作系统上,就能够实现在操作系统上构建虚拟主机,使自动测试成为可能。在操作系统平台下,操作系统具有对内存操作的保护机制,使得程序不能对内存 地址进行直接读写。因此,基于操作系统,改编或者重新设计底层硬件驱动,该底层硬件驱 动与上述上层逻辑操作相关联,且与操作系统相适应。在实现软件分层之后,将上层逻辑操作移植到操作系统平台,拷贝进测试目录,使 用基于操作系统的编译器进行编译、链接,生成测试用模块。该操作系统可以为WINDOWS操 作系统。步骤S202、设定测试环境。在每次测试开始前,需要对测试环境进行恢复,测试 环境包括地面线路基础数据、控制参数、时间信息、运行揭示、辆数、计长、外围的辅助信息等。步骤S203、调取测试用例,运行测试用例,待测试的上层逻辑操作层通过底层硬件 驱动从外围设备模拟器、列车运行状态模拟器获取相应的列车状态数据和外围设备运行信 息,并生成执行结果。本发明可以将人工测试的操作过程、输入的数据、被测软件的反馈等相关因素存 储为测试用例;还可以根据“用户需求”设计测试用例及从真实设备日常运行记录中生成测 试用例。列车状态数据包括速度、机车信号、机车工况、各种压力等等。执行结果可为控制 指令、响应等,如制动指令、实时计算的模式限速曲线等等。步骤S204、判断是否还有测试用例,如有返回步骤S203 ;如无,依据执行结果生成 测试报告。测试报告中,根据执行结果都是否在设定范围之内,判断被测试的上层逻辑是否 正常,进而判断整个软件是否工作正常。通过上述步骤,本发明将车载软件的测试从面向特定硬件的系统(嵌入式系统) 移植到其他操作系统,借助于基于该操作系统编写的的测试管理程序,自动完成测试环境 的设定,测试用例的调取,运行,及测试报告的生成,相对于现有技术中人工测试,该测试过 程效率高,测试过程标准,测试结果准确。基于上述列车车载软件测试方法,本发明还提供一种列车车载软件测试系统。参见图4,示出本发明列车车载软件测试系统,包括控制机21、主机模拟器22、屏幕显示器模 拟机(真实的屏幕显示器)23、外围设备模拟器(真实外围设备)24。
控制机21可为标准的PC机,控制机21内置测试进度控制模块211、结果分析模块 212、测试环境库213和测试用例库214。主机模拟器22包括A模拟器和B模拟器,A模拟 器和B模拟器内置待测软件221。屏幕显示器模拟机(真实的屏幕显示器)23用于显示测 试过程和结果。测试进度控制模块211用于从测试环境库213调取测试环境相关参数,设定测试 环境;测试用例库214调取测试用例,并运行测试用例,使车载软件221中的底层硬件驱动 从外围设备模拟器、列车运行模拟程序获取相应的列车状态数据、外围设备运行数据,发送 到上层逻辑操作,上层逻辑根据这些数据计算出执行结果.结果分析模块212判断是否还有测试用例,如有启动测试进度控制模块211 ;如 无,依据执行结果生成测试报告。测试报告中,如每次执行结果都在设定范围之内,判断上 层逻辑是否正常,否则,判断上层逻辑不正常。参见图5,显示出本发明一测试用例,该测试用例中,横坐标为时间轴,测试管理程 序通过依次改变速度、管压力、控制信号测试上层逻辑软件的响应。本发明还可适当调整测试用例,通过调整采样点的粒度,来提高测试精度,和方便 观察测试过程。参见图6和图7,在速度变化曲线中设置多个采样点,针对每个采样点进行 判断,就可以了解软件是否工作正常,若提高采样点的密度,就可以提高检测的精度。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,也可以上述具体实施 方式的进行组合,这些改进、润饰及组合形成的技术方案也应视为本发明的保护范围。
权利要求
1.一种列车车载软件的测试方法,其特征在于,包括对车载软件底层硬件驱动与上层逻辑操作进行剥离,创建基于目标操作系统的底层硬 件驱动;将上层逻辑操作移植到目标操作系统平台,与基于操作系统的驱动一起构建待测软件;调取、运行测试用例,上层逻辑操作通过底层驱动从外围设备模拟器和/或真实外围 设备获取关联设备运行数据,通过列车模拟操纵台获取相应的列车状态模拟数据,并生成 执行结果;依据执行结果判断待测软件的质量特性。
2.如权利要求1所述的方法,其特征在于,调取、运行测试用例之前,还包括设定测试 环境。
3.如权利要求1所述的方法,其特征在于,所述方法还包括判断是否还有测试用例,如 有,继续调取并运行。
4.一种列车车载软件的测试系统,其特征在于,包括控制机、主机模拟器、外围设备模 拟器和/或真实外围设备、软件编译器,控制机内置测试进度控制模块、结果分析模块和测 试用例库,主机模拟器内置待测软件模块;待测软件模块,用于对车载软件底层硬件驱动与上层逻辑操作进行剥离,创建基于目 标操作系统的底层硬件驱动;将上层逻辑操作移植到目标操作系统平台,与基于操作系统 的驱动一起构建待测软件;测试进度控制模块,用于调取、运行测试用例,上层逻辑操作通过底层驱动从外围设备 模拟器和/或真实外围设备获取关联设备运行数据,通过列车模拟操纵台获取相应的列车 状态模拟数据,并生成执行结果;结果分析模块,用于依据执行结果判断待测软件的质量特性。
5.如权利要求4所述的系统,其特征在于,所述控制机还包括测试环境库,用于为测试 进度控制模块提供测试环境相关参数,测试进度控制模块设定测试环境。
6.如权利要求4所述的系统,其特征在于,主机模拟器包括第一模拟器和第二模拟器, 第一模拟器和第二模拟器分别内置待测软件模块。
7.如权利要求4所述的系统,其特征在于,所述系统还包括屏幕显示器模拟机或者真 实的屏幕显示器,用于显示测试过程和结果。
全文摘要
本发明涉及一种列车车载软件的测试方法,其特征在于,包括对车载软件底层硬件驱动与上层逻辑操作进行剥离,创建基于目标操作系统的底层硬件驱动;将上层逻辑操作移植到目标操作系统平台,与基于操作系统的驱动一起构建待测软件;调取、运行测试用例,上层逻辑操作通过底层驱动从外围设备模拟器和/或真实外围设备获取关联设备运行数据,通过列车模拟操纵台获取相应的列车状态模拟数据,并生成执行结果;依据执行结果判断待测软件的质量特性。本发明还公开一种列车车载软件的测试系统。本发明测试过程效率高,测试过程标准,测试结果准确。
文档编号G06F11/36GK102141961SQ20111007423
公开日2011年8月3日 申请日期2011年3月25日 优先权日2011年3月25日
发明者刘旭君, 周晓, 彭哲徐, 李辉 申请人:株洲南车时代电气股份有限公司