孔德山,李 亮
(1.北京广利核系统工程有限公司,北京 100094;2.生态环境部核与辐射安全中心,北京 102400)
在整个核电站运行过程中,DCS 控制系统占据着举足轻重的地位,特别是安全级DCS 控制系统。由于其控制着核岛内设备,一旦出现逻辑设计错误,将导致控制指令无法传递到下游,严重情况下可能出现跳堆事故。因此,在核电站安全级应用软件逻辑的验证过程中,必须给予足够重视[1]。核电站安全级应用软件逻辑由众多算法块构成,通过不同算法块的组合设计实现工艺控制功能。在应用软件逻辑的验证过程中,一方面要保证输入输出路径覆盖率为100%,另一方面逻辑中存在的工艺功能也要全部验证。在应用软件逻辑页数总量达到上万页的前提下,如何保证应用软件逻辑测试进度快、质量高是急需解决的问题。
以往核电站安全级逻辑测试主要采用人工比对,利用涂抹以及手动强制逻辑中的输入变量并比对输出结果,实现逻辑验证[2]。为提升测试效率,降低人因失误,在人工测试的基础上兴起了自动测试。自动测试是将人工强制、结果比对环节转化为工具自动执行,把以人为驱动的测试行为转化为机器执行的一种过程。单控制站应用软件逻辑自动测试方法(SIMAT 法)目前在各个领域应用较为广泛,该方法主要利用软件逻辑仿真平台,由工具在工程软件内部对输入变量进行强制,采集输出变量结果与测试用例标准值进行自动比对,比对一致则在结果中输入“√”,比对不一致则在结果中输入“×”,进而实现软件逻辑的自动验证。
当前核电站安全级DCS 系统逻辑验证的方法主要包括人工验证方法以及自动验证方法,下面对当前人工验证方法以及自动验证方法进行介绍。
核电站安全级DCS 系统逻辑人工验证方法主要有两个阶段,这两个阶段主要是从静态验证比对到动态验证比对的升级,目的是从应用角度提升验证的准确性,解决静态比对中忽略软件逻辑中显示正常而实际运行线路不通的缺点。图1 为人工验证方法的流程图,图1 左侧红框中为第一阶段人工涂抹阶段,右侧红框为第二阶段人工强制阶段。
图1 安全级DCS软件逻辑人工验证流程图Fig.1 Flow chart of manual verification of safety-level DCS software logic
人工涂抹阶段。依据文件为功能图文件,对象文件为工程软件,依据功能图实现对工程软件(应用软件逻辑)的比对,比对内容主要为工程软件中的每个系统变量名称、算法块结构、说明、算法块连接线等信息与功能图对应的系统信息一致。一致则通过涂抹的方式生成记录,不一致则做好不符合项的处理。
人工强制阶段。采用人工涂抹的方式对安全级DCS 系统逻辑进行比对,主要是静态比对。静态比对的方法仅仅是对信息的表层进行了验证,无法对系统中的算法块、信号流向实现动态验证[3]。为了解决这一问题,针对每个系统逻辑页编制真值表用例,用例编制要求实现算法块路径以及逻辑功能全覆盖。由人工依照真值表强制输入信号,并核对输出信号与用例的一致性。采用人工验证方法最大的问题在于应用软件逻辑测试工作量大,在逻辑的测试过程中容易出现人因失误,因此人工测试方法逐渐被淘汰。
为提高软件逻辑测试效率,避免人因失误,软件逻辑自动测试的方法逐渐被重视。软件逻辑自动测试的核心为自动装置调取用例真值,并依照真值表的设计内容对输入信号强制,并自动采集输出信号与标准值进行比对,最终实现逻辑组态的验证[4]。
图2 为单控制站应用软件逻辑自动测试方法的实施流程图。
图2 单控制站应用软件逻辑自动测试方法实施流程图Fig.2 Flow chart of the implementation of the automatic test method for the application software logic of a single control station
单控制站应用软件逻辑自动测试方法相比较人工验证方法,主要优化了以下几点:
1)测试工具与DCS 单站系统连接,并实现单站逻辑逐页验证。图3 为单控制站应用软件逻辑自动测试方法结构,操作人员采用专用测试电脑,导入工程组态逻辑工程及测试用例,该工具依据测试用例进行自动执行。
图3 单控制站应用软件逻辑自动测试方法结构图Fig.3 The structure diagram of a single control station application software logic automatic test method
2)测试记录自动生成,当工程组态逻辑与用例标准值不一致时,进行错误定位,以便设计人员分析问题。
3)节省时间,避免了人力投入量大、人因失误率高的缺点,有效地提升了整个核电站DCS 控制系统应用软件逻辑测试的效率。
总体来说,单控制站应用软件逻辑自动测试方法通过引入逻辑开发平台,不需要连接DCS 控制系统设备,直接调取软件工程中的组态逻辑,依据用例真值表的内容实现输入变量信息的自动强制以及输出变量信息的自动采集。
单控制站应用软件逻辑自动测试方法,基于研发平台搭建的模拟环境实现逻辑自动测试,由于环境的限值,导致测试电脑仅能实现单站逻辑验证,对于一些信号无法从源头上验证,这也使得整个应用软件的逻辑验证被分割开。另外,由于单控制站应用软件逻辑自动测试方法采用模拟环境,执行电脑操作系统的运算周期为200ms,算法块在设计的过程中运算周期为50ms。当延迟块时间为10s 时,利用模拟环境测试,导致装置在执行50 个周期后便进行输出变量数据采集,而此时的延迟块需要200 个周期才能运算完成。因此,采用模拟环境导致采集时间提前,需在测试用例的设计过程中考虑不同控制站的运算周期,解决测试用例时间延迟问题,增加了设计的难度。
相比较单控制站应用软件逻辑自动测试方法,基于自动测试装置多站测试方法(TD_Base 法)利用局域网,将DCS 控制系统各控制站与专用测试电脑连接,进而实现所需DCS 控制站逻辑的验证。图4 为基于自动测试装置多站测试方法的流程图。
图4 TDbase自动测试方法的流程图Fig.4 Flow chart of TDbase automatic test method
与单控制站应用软件逻辑自动测试方法相比较,基于自动测试装置多站测试方法最大的不同有以下两点:
1)基于自动测试装置多站测试方法能够实现多台DCS控制系统连接,有效地解决了以往无法追溯变量源头的问题。另外,多系统同时连接,一方面有效地提高测试效率,另一方面实现了现场工艺工况针对性的确认,从根本上确保DCS 控制系统的有效性。
2)相比较单控制站应用软件逻辑自动测试方法中的模拟测试环境,基于自动测试装置多站测试方法以下装到主控板卡中的组态逻辑为测试对象,由于主控板卡的执行周期与算法块的执行周期一致,因而有效解决延迟算法块计算不准确问题。
图5 为基于自动测试装置多站测试方法多站连接结构图。
图5 基于自动测试装置多站测试方法连接结构图Fig.5 Connection structure diagram of multi-station test method based on automatic test device
在基于自动测试装置多站测试方法的基础上,对测试用例的设计进行规范化。以往在测试用例的设计过程中,根据设计人员经验要求做到所有逻辑路径以及功能全覆盖,但是在实际的设计过程中并没有明确的方法以及规则,导致在设计的过程中所设计的测试用例样式较多,一旦出现用例设计错误,无法实现用例错误快速定位,影响测试进程。因此,为了规范测试用例设计,将功能图法以及判定表法引入测试用例设计过程中,实现组态逻辑工艺覆盖、功能块覆盖以及信号传输路径覆盖,最终利用步骤优化原则实现重复步骤简化。
以图6 为例,整个逻辑中包含10 个算法块、4个输入、3 个输出,按照功能图法以及判定表法的要求,执行以下步骤,生成用例。
图6 应用软件逻辑结构图Fig.6 Application software logic structure diagram
1)确定逻辑图中输入变量4 个、输出变量3 个。
2)存在两处工艺功能,分别是图6 中的闭锁1 以及闭锁2,信号RPS2701KP 以及信号RPS2703KP 分别能够闭锁信号RP S2702KP,因此用例中必须存在上述原则。
3)功能图中共有10 个算法块,主要包括与、或、非、延时块。设计用例的过程中要考虑算法块自身的功能并实现验证,如“与”逻辑块,要保证每个与块实现表1 的逻辑。
表1 “与”算法块标准步骤Table 1 "AND" algorithm block standard steps
表2 为生成的测试用例。
表2 测试用例表格Table 2 Test case table
上述的判定表中:
每步执行的采样时间为5s。
算法块A 分别由步骤1、步骤2、步骤3 实现表1 逻辑验证。
算法块B 分别由步骤2、步骤4、步骤5 实现表1 逻辑验证。
算法块C 分别由步骤4、步骤6、步骤7 实现表1 逻辑验证。
算法块D 分别由步骤4、步骤6、步骤7 实现表1 逻辑验证。
延迟块8s、7s 分别由步骤3 和4、步骤5 和6 实现逻辑验证。
闭锁功能1 和2 分别由步骤3 和步骤5 实现验证。
表3 不同测试方法对比表Table 3 Comparison table of different test methods
整个逻辑依据功能图法以及判定表法通过分析逻辑图内部结构,利用相同步骤实现不同功能的原则,在保证逻辑功能验证全面、路径验证全面基础上,压缩测试步骤,一方面减少重复的步骤,另一方面提高测试的效率。
基于自动测试装置多站测试方法,一方面节省了大量的人力物力,另一方面由于是自动测试装置执行,避免了因人工操作带来的错误,保障了测试的准确性。本文以防城港3 号机安全级DCS 控制系统应用软件逻辑测试为对象,进行3 种方法应用实践,主要得出了以下结论:
通过对上述关键要素增加权重,绘制图7,可以清晰明了地体现出基于自动测试装置多站测试方法优越性。
通过图7 中的信息可以清晰看出,基于自动测试装置多站测试方法在测试效率、测试可靠性、人力需求,以及问题可追溯性等关键因素上具有明显的优势。使用基于自动测试装置多站测试方法,可有效提升核电站DCS 控制系统应用软件逻辑测试效率。后续在整个应用软件逻辑测试的研究过程中,将重点研究应用软件逻辑测试用例自动生成,最终实现应用软件逻辑测试验证从设计到执行的全自动化目标。
图7 不同测试方法对比图Fig.7 Comparison of different test methods