杨正吉,武有光,张子鹏,李 倩
(中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都 610213)
核电厂安全级DCS用于实时监测反应堆的工艺参数,当参数超过整定阈值时,自动触发紧急停堆信号及必要的专用安全设施,以维护安全屏障的完整性[1]。为探测故障和检查保护系统可运行性,需要对保护系统进行定期试验。反应堆保护系统定期试验一般分3段交叠进行,分别为T1试验、T2试验、T3试验[2]。其中,T2试验为保护系统逻辑功能试验,包括紧急停堆系统逻辑试验和专设安全设施驱动系统及专设支持系统逻辑功能试验。因此,有必要根据定期试验方案以及相关法规标准对T2定期试验内容进行分析,应用软件测试的方法,设计相对简洁高效的T2试验测试脚本来验证逻辑功能的正确性,保证核电厂数字化安全级仪控系统的可靠性。
图1 T2试验原理示意图Fig.1 Schematic diagram of T2 test principle
工程试验堆数字化安全级仪控系统采用中国核动力研究设计院自主研发的NASPIC安全级DCS平台。工程试验堆数字化安全级仪控系统的T2试验主要包括紧急停堆系统逻辑试验和专设安全设施驱动系统及专设支持系统逻辑功能试验。紧急停堆系统逻辑试验主要验证安全级DCS中反应堆保护处理器所执行自动紧急停堆逻辑功能的正确性。专设安全设施驱动系统及专设支持系统逻辑功能试验主要验证安全级DCS中专设驱动处理器所执行自动专设安全设施驱动系统及专设支持系统逻辑功能的正确性。
MTS根据测试脚本通过维护网络在反应堆保护/专设驱动处理器的CPU中以强制的手段注入试验信号,该信号替换AI/DI模块和通信模块送给被试验CPU单元的输入数据参与逻辑运算。MTS再通过维护网络读取逻辑算后的结果,在MTS上判断试验结果是否符合预期,如图1所示。
因此有必要根据T2试验原理和核电行业特点设计出比较完善的测试脚本以保证系统软件逻辑功能的正确性。
根据GB/T 5204-2008《核电厂安全系统定期试验与监测》和IEEE 338-1977《核电站安全系统定期试验准则简介》规定,在设计安全级DCS系统的T2定期试验测试脚本时,应遵循如下基本的设计原则:
1)安全系统的T2定期试验测试脚本设计应严格遵循系统软件需求规格书的要求。
2)安全系统的T2定期试验测试脚本应严格依据仪控功能图进行设计,仪控功能图是指软件开发过程中编写的程序流程图。
3)安全系统的T2定期试验测试脚本应覆盖到所有与紧急停堆和专设安全设施驱动系统及专设支持系统逻辑相关的1E级相关功能。
4)安全系统的T2定期试验测试脚本应尽可能实际地模拟其所要求的安全功能,能证明被试验的物项在正常环境条件下具有执行其功能的能力。
本文结合核电行业特点采用黑盒测试+白盒测试方式来实现T2试验测试脚本设计。
图2 程序流程图算法归类Fig.2 Program flowchart algorithm collation
表1 覆盖方式选择Table 1 Override mode selection
1)功能覆盖分类
本文首先根据仪控功能图对逻辑进行功能分类,分为紧急停堆系统逻辑功能和专设安全设施驱动系统及专设支持系统逻辑功能,然后对逻辑功能进行典型子逻辑功能分解。紧急停堆系统逻辑功能主要包含参数旁通逻辑,定值比较逻辑,3取2表决逻辑,停堆信号闭锁逻辑。专设安全设施驱动系统及专设支持系统逻辑功能主要包含3取2(或2取1)表决逻辑,专设驱动联锁逻辑,专设驱动闭锁逻辑等。通过以上方式可以对仪控功能图中与紧急停堆和专设安全设施驱动系统及专设支持系统逻辑相关的1E级相关功能进行全覆盖测试。
2)覆盖方式选择
由于仪控功能图已经提供了程序流程图,因而首先将程序流程图进行算法功能归类,如图2所示。再对逻辑功能进行控制流程图提取后,结合控制流程图的算法分类进行选取适用于各种逻辑功能的测试方法[3],具体如表1所示。
条件覆盖:判定中的每个条件至少有一次为真,有一次为假。
组合覆盖:使得每个判定中条件的各种可能组合都至少出现一次。
T2试验测试用例的设计包含试验先决条件,参数和设定值验证,试验变量初始化设置,逻辑功能验证,试验数据恢复内容。
1)试验先决条件主要用于验证被测试设备是否已处于允许试验状态。
2)参数和设定值主要验证参数和设定值与预期一致,保证参数和设定值的正确设置。
3)试验变量初始化设置用于对试验输入数据的初始化,以保证逻辑功能验证可以正确执行。
4)逻辑功能验证对安全系统所有与紧急停堆和专设安全设施驱动系统及专设支持系统逻辑相关的1E级相关功能的逻辑功能进行全覆盖验证,确保逻辑的正确性。
5)试验数据恢复主要用于将系统恢复至初始状态,以确保系统的正常运行。
本文通过对一种停堆工况逻辑中的参数旁通逻辑→正常逻辑→停堆信号闭锁逻辑→降级处理的顺序进行设计达到了功能全覆盖测试,满足T2试验测试要求。对于专设驱动逻辑测试用例的设计,由于工程试验堆手动控制逻辑较多,因而将专设手动驱动逻辑与专设自动驱动逻辑分离测试。
由于篇幅有限,本文仅针对3取2表决逻辑的测试用例设计进行详细介绍。由于本文对3取2表决逻辑采用组合覆盖测试方式,因而需要保证每一种组合情况至少出现一次。表决逻辑的测试脚本主要包含正常逻辑和降级逻辑,正常逻辑是指所有输入信号质量位为好,表决逻辑为2/3;降级逻辑指存在输入信号质量位为坏的信号,表决逻辑由2/3→1/2→1/1。具体2/3表决逻辑测试脚本如表2所示,其中步骤1~8为正常逻辑的测试脚本,9~25为降级逻辑的测试脚本。
本文通过白盒测试结合核电行业特点的方式研究了一种用于T2定期试验软件测试脚本的设计方法,设计完成了脚本测试。目前该测试用例的设计已经成功应用于工程试验堆数字化安全级仪控系统中,并且收到了良好的效果。因此,本文提出T2试验测试用例设计方法可为其他相关安全级仪控系统T2试验测试用例的设计提供参考。