靳永毅, 王 楠,张占军,郭 猛,邓 鹏,李志军,孙同果
(中核控制系统工程有限公司,北京 100176)
核测量系统作为反应堆保护和控制系统的重要组成部分,其软件主要实现的功能为测量中子注量率、计算反应堆功率与周期、定值比较、反应堆保护信号输出等[1];软件集成测试主要是检查软件单位之间的接口是否正确以及软件单位之间的逻辑是否正确,其结果对后续的系统测试存在着重要影响[2]。由此可见,核测量系统软件集成测试的质量将直接影响到整个核测量系统的稳定性。长期以来核测量系统的软件集成测试一直使用人工的测试方法,由于该系统软件逻辑组合多、接口数量多,同时受限于测试者素质的千差万别等原因,如何保证测试的质量与提高测试效率一直是测试工作的一个重点。
图1 带有自动化测试工具的核测量系统构成Fig.1 Structure of neutron measurement system with automatic testing tools
图2 自动化测试工具网络配置图Fig.2 Automation test tool network configuration diagram
经过工程实际应用,在软件集成测试中引入自动化测试工具,应用自动测试原理通过自动发送和接收逻辑运算后的数据,可以极大地提高测试质量,保证测试效率。
如图1 所示,核测量系统由4 个相同且独立的通道组成,每个通道为一个独立的保护柜,柜内装有源量程、中间量程、功率量程的调理单元与处理单元,每个量程的调理单元与处理单元组合成为一个站,即1 号保护柜中的源量程处理单元与源量程调理单元为1 号站;1 号柜内的中间量程处理单元与中间量程调理单位为2 号站,以此类推[3]。
工程师站:为可移动的计算机,用来对保护柜处理器机箱进行下装及监视,还可对各个量程的参数进行设定。
自动化测试工装:为一台计算机,通过交换机与工程师站、核测量系统的各个控制站处于同一个网络,可以通过相关的通信协议进行数据收发及处理。
如图2 自动化测试工具网络配置图可知,自动化测试工具与工程师站及核测量系统处于同一个网络中的同一网段,通过设置不同的IP 地址来区别具体的设备,核测量系统保护柜中各站的IP 地址由拨码开关来设置。根据系统的IO 点表,制作自动化测试工具需要使用的点表,并且导入测试工具。自动化测试工具可以通过通信协议来同步核测量系统的组态,将组态中的IO 变量与已经导入系统的IO点表进行对比,对变量名称不一致、变量缺失等问题进行提示,通过修改保证两者完全一致。
之后导入根据系统组态编写的测试用例,同理,系统会根据组态中的变量名称来检查导入测试工具的变量名称,对错误内容进行提示。
测试时,根据需要在测试用例中规定好输入变量、输出变量、期望输入值与每一步的时间间隔,测试工具即会使用相关的通信协议来强制输入变量,并读回输入变量通过逻辑运算得到的测试结果,此时输出变量会自动填写在测试用例中并与预期结果进行比较,不一致的地方会在测试结果一栏中标识错误。
自动化测试工具使用的测试用例是基于Excel 编写的模板化用例见表1,在测试用例中规定好了站号、输入变量、输出变量的期望值和输出变量的实际值、步长等参数。其中,站号是当前变量所处控制器的名称;输入变量和输出变量是逻辑图确定的当前测试逻辑输入变量与输出变量;在步骤一行中对应的是步骤序号;在步骤一列中分别是步长即执行该步骤所需要的时间、输入信号对应的输入值和由输入信号数值及逻辑组合计算出来的输出结果期望值,输出结果的实际值由测试工装自动填写。
测试用例编写完成后需要导入到测试工装中,在测试导入工装之前需要先将输入输出变量点表及其对应的信号类型、接线点、量程等先导入组态,使用表1 中测试工装的系统组态功能导入输入输出变量点表,并通过网络与工程师站中保存输入输出信息同步,在同步过程中会提示变量名称不一致、类型不一致、数量不一致等信息。在确定组态无误之后,使用如图3 的组态管理功能将测试用例导入,在测试用例导入时会提示站号错误、变量名称不一致、类型不一致等信息,修改相关错误后就会显示用例导入成功,导入成功后保存需要使用的用例即可。
表1 测试用例示意图Table 1 Test case diagram
利用用例管理功能对用例进行分类,在核测量系统中通常按照控制器对应的站号进行分类管理,以便维护用例;也可以对分类后的用例更名加入版本、日期等内容。
在图3 的系统组态功能中选择需要执行的用例后跳转到执行画面即开始对用例测试。用例的执行分为两种形式:自动执行和单步执行。自动执行即按照规定好的输入输出变量、步长规定时间顺序依次进行;单步执行需要人工手动进行执行完成一个步骤的操作之后,视操作结果来选择是否进行下一步测试,一般用在错误查找中。
测试完成后,测试结果会自动填入到实际值一栏中,如果与期望值相同,会在测试结果一栏中显示“P”表示测试通过;如果与期望值不同会在测试结果一栏中显示“F”表示失败。如果需要保存测试结果,需要在图3 中的报表管理功能中选择需要生成测试结果的用例,然后生成结果,系统会自动填写测试结果,时间等内容以Excel 表格的形式保存到对应的文件夹。
图3 自动化测试工具界面Fig.3 Automated test tool interface
自动化测试工具仅为一台计算机,通过交换机与核测量系统处于同一网络即可,设备简单、操作简便。另外,该自动化测试工具仅在软件集成测试中使用,仅通过网络接口与系统连接,无硬接线,不会涉及到测试设备的校准、鉴定等一系列问题。
因为自动化测试工具不依赖于硬件,只要有系统组态,有支持组态运行的测试环境即可进行测试,不需要系统硬件诸如机柜集成等方面的要求,因而可以与系统集成等并行开展,节省项目时间。另外该项目在前期开发过程中,可以针对常用的逻辑如IO 输入“或”运算,IO 输入“与”运算等设计模板,在使用时可以调用模板,填入输出即可,缩短用例编写时间。同时,自动化测试工具具有较好的移植性,对于不同项目的核测系统,只需要比较其类似功能的逻辑是否存在差异,对不存在差异的逻辑进行输入输出变量的替换即可复用,极大提高了工作效率。
根据项目的使用经验,以IO 输入的“或”逻辑为例,为了覆盖所有的逻辑组合,共需要编写21 个测试用例,每个23 个步骤,每个步骤1s 时间间隔,使用自动化测试工具需要483s,约8min。而使用人工测试,完成一个测试用例的时间约为10min。可见自动化测试工具极大地提高了测试效率。
为了减少测试人员素质对测试结果造成的影响,按照核测量系统的执行功能,在编写测试用例时尽量使用已经进行过模板化的测试用例,这样就避免了因测试人员素质不同的人造成测试覆盖率不足,逻辑组合遗漏等问题。
测试中,测试工具会自动读回测试结果,与预期结果进行比较,对一致的结果以“P”表示通过;对不一致的结果以“F”表示失败,不再由人工进行判断,避免了人工对结果进行比对时产生差错,保证了测试的有效性。
因为自动化测试工具并不依赖于实际的系统,只是通过网络通讯的方式来强制变量。因此,诸如对小电流信号量程切换这类与实际信号值与测试时间要求很高的逻辑并不适用,仍需要人工搭建测试环境,或者在系统集成完成后进行,其应用还有着不够全面等缺点。
根据目前项目的实际使用经验,软件集成测试用例并不适用在线修改这样的功能。实际使用中会发生用例错误等情况,可以使用在线的修改功能,但是在实际工作中,发现这一功能会使用例版本难易控制,因此也取消了对应功能。所以,如何对自动化测试工具中的用例进行管理也是需要详细研究的课题。
自动化测试工具具有低成本、高效、规范、便捷等特点,应用在核测量项目中可以缩短项目周期,减少人力投入,保证项目的规范性,使项目质量得到了保障。但是如何在工程项目环境中更合时宜使用该工具,以及对应的用例版本管理仍需要在项目执行过程中不断摸索。