APP下载

计算机联锁软件测试方法研究

2012-01-13

电子世界 2012年17期
关键词:白盒黑盒测试项目

1.引言

铁路是大容量和大众化的交通运输工具安全运输是铁路追求的目标通常所说的“安全第一”表明安全在铁路中的地位。“故障一安全(Fail一Safe)”理念的技术化也源于铁路。在这些系统中不光要能保证系统在正常情况下的安全运行,同时还必须考虑系统在出现某些不正常的情况下,如何避免出现危及人身安全或大宗财物损失的事故或减少事故的损失。

目前,在铁路运输系统中,计算机联锁系统已经得到了广泛的应用,与以前的继电联锁相比,计算机联锁系统是用软件实现原来由继电逻辑完成的信号设备之间的联锁关系。然而对软件可靠性的研究和应用,并不像硬件那样成熟,在计算机联锁系统中,联锁软件是执行联锁运算的核心机构,它的失效有可能导致列车的相撞或颠覆等重大事故,因此,如何保障联锁软件的可靠性也成了开发计算机联锁软件系统的一项重要课题。

2.计算机联锁系统结构

(1)人机对话层。该层将来自键盘、鼠标等的操作输入,送达联锁微机。运用一机多屏技术在多台图形显示器上显示整个站场的表示信息,同时也可以将站场的动态信息和微机联锁系统的文字信息通过在控制室增设的动态模拟屏和LED显示屏上显示出来,以方便信号员观察。此层预留多种接口,方便系统功能扩容。

(2)联锁运算层。联锁微机是系统的核心部分,通过其上运行的联锁软件实现操作输入的判别、联锁信号分析、逻辑运算、控制命令生成及故障诊断等主要任务。本系统中设置了2台联锁微机,其中一台为热备机,通过共享器切换。联锁运算控制模块的主要功能有:排列进路、列车进路正常解锁、调车进路正常解锁、调车进路中途折返解锁、取消进路、人工解锁、人工关闭信号、重复开放信号、办理引导锁闭、引导解锁、取消误操作信息、单独操纵道岔、进路故障解锁、区段故障解锁、道岔单独锁闭和道岔单独解锁(如图1)。

图1 联锁软件层次结构图

(3)执行层。主要完成控制命令的输出和表示信息的输入。

3.联锁软件自动化测试方法

3.1 黑盒测试技术

图2 黑盒测试

黑盒测试、白盒测试和灰盒测试是很广泛使用的三类测试方法。黑盒测试又称功能测试,数据驱动测试或基于规格说明的测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造。在完全不考虑程序内部结构和内部特性的情况下,测试者只知道该程序输入和输出之间的关系或是程序的功能如图2所示。它必须依靠能够反映这一关系和程序功能的需求规格说明书考虑确定测试用例,并且推断测试结果的正确性,即所依据的只能是程序的外部特性。黑盒测试(如图2)方法能够站在用户立场上进行测试,容易发现以下类型的错误:功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。

但黑盒测试方法有如下主要缺点:

①依赖软件需求规格说明书的正确性。但我们并不能保证软件需求规格说明书是完全正确的。比如,在软件需求规格说明书中规定了多余的功能,或是漏掉了某些功能,这对于黑盒测试来说是完全无能为力的。

②无法测试程序内部特定部位。

3.2 白盒测试技术

白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。采用这一测试方法,测试者可以看到被测试的源程序,可分析程序的内部构造并且根据内部构造设计测试用例。白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试,它是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

它的主要优点是:

①能够对程序内部特定部位进行覆盖测试;

②能发现以下类型的错误:程序内部控制结构不正确、程序内部数据结构不正确。

白盒测试的主要缺点是:

①只着眼于程序内部结构,对于在软件需求规格说明书中已有明确规定,但在软件实现时被遗漏的功能,无法检查出来;

②无法检验程序的外部特性。

3.3 灰盒测试技术

图3 灰盒测试流程图

灰盒测试也称作灰盒分析,是基于对程序内部细节有限认知上的软件调试方法。测试者可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。对于内部过程,灰盒测试把程序看作一个必须从外面进行分析的黑盒。由以上定义可以看出:黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,也就是根据程序的外部特性进行的测试,完全不涉及程序的内部结构很明显,如果外部特性本身有问题或规格说明的规定有误,用黑盒测试方法发现不了。另一方面白盒测试完全与之相反,它只根据程序的内部结构进行测试,而不考虑外部特性。如果程序结构本身有问题,如程序逻辑有错误,或是有遗漏,那是无法发现的。鉴于此,本测试系统选择将2种方法结合起来进行测试,即灰盒测试。

4.灰盒测试流程

基于灰盒测试的流程图如图3所示。该流程图可分为如下几个环节

(1)根据站场基础数据和测试案例生成录入模块生成的站场静态数据,自动测试程序加载这些数据作为人工操作模拟的依据。

(2)根据站场静态数据,模拟人工操作。该部分进行的测试内容包括:

①道岔联锁测试,在此需要按照道岔在道岔设备表中的顺序依次自动生成并加载道岔的测试案例进行自动测试。道岔的测试项目内容包括:道岔单锁、道岔单解、道岔区段锁和道岔引导总锁。根据道岔的测试项目内容分别进行判定评估,每一个测试项目都有一个判定评估结果记录,存储在文本文件中。

②基本进路测试,在此需要按照进路在联锁表中的顺序依次对每一条进路进行相关测试项目的测试,自动生成并加载进路的测试案例进行自动测试。根据基本进路的测试项目内容分别进行判定评估,每一个测试项目都有一个判定评估结果记录,存储在文本文件中。

③长调进路测试,在此需要按照长调进路在联锁表中的顺序依次对每一条长调进路进行相关测试项目的测试,自动生成并加载长调进路的测试案例进行自动测试。根据长调进路的测试项目内容分别进行判定评估,每一个测试项目都需有一个判定评估记录,存储在文本文件中。其测试项目的内容与基本进路的内容一样。

(3)当对上、下位机实现联合测试时,由于该联锁系统是利用串(Com)口进行通信的,先通过编写串口读函数从PLC的输出端口获取对应设备状态的回测状态,根据通信接口协议进行分析,可完成系统输出(PLC输出)模拟模块的操作,然后再通过编写串口写函数将模拟系统外部各设备的状态回测写到PLC位存储区M区对应的数据区,可完成外部设备状态回测模拟模块的操作。

5.结束语

软件测试的目的在于尽可能多的找出错误.但这就涉及到如何合理的设计测试用例,本系统在白盒测试中采用路径覆盖法,在黑盒测试中采用了等软件测试的目的在于尽可能多的找出错误。但这就涉及到如何合理的设计测试用例,本系统在白盒测试中采用路径覆盖法,在黑盒测试中采用了等价类划分法.。采用了基于灰盒测试方法来完成对计算机联锁系统各部分软件的功能与性能测试。

猜你喜欢

白盒黑盒测试项目
我国金融科技“监管沙盒”测试项目准入标准制度研究
一种基于局部平均有限差分的黑盒对抗攻击方法
面向未来网络的白盒交换机体系综述
DWB-AES:基于AES 的动态白盒实现方法
篮球半场往返运球上篮的训练方法——体育中考篮球测试项目训练心得
网络“黑”“白”之争
《国家学生体质健康标准》测试项目修订研究
基于EEPROM数据读写的智能电能表白盒测试方法
安捷伦宣布HDMI2.0一致性测试认证方案覆盖最全面的测试项目