核级软件的验证与确认技术研究

2010-03-20 18:15高超胡立生
微型电脑应用 2010年4期
关键词:核级测试用例核电

高超,胡立生

0 引言

数字化技术已经在各工业领域得到了广泛成功的应用。近年来,为了提高核电运行的安全性、可靠性及经济性,数字化技术已经成为核电仪控技术发展的普遍趋势。与模拟仪控系统相比较,数字化仪控系统具有以下优点:1)很高的控制精度和强大的逻辑运算处理、计算能力;2)以通信网络连接各系统设备,减少电缆使用数量,提高数据传输的可靠性;3)方便有效的实现多重冗余、故障安全和容错等功能;4)系统扩展灵活性好、可组态性强,便于维护;5)强大的数据处理和数据存储能力,改善了人机接口;6)提高了核电站的经济性和安全可靠性。而数字化仪控系统尤其是基于嵌入式系统的保护系统,由于硬件以及软件与硬件的集成度的提高,提高了数字化系统认证的难度。

在核电仪控系统的数字化过程中,一个必然要解决的关键问题是核级软件的验证与确认过程[1]。其它一些核电发达国家陆续提出一些重要的与V&V相关的标准或规范,并为核级安全系统软件的V&V提供了一些基本的指导,而我国目前为止还没有可操作的V&V标准程序,因此研究适合我国法规规范的核电数字化仪控系统V&V程序与规范以及相关的各项技术意义重大[3]。

1 核级软件的主要构成

核级软件是指针对特定核电厂,实现核电厂安全仪控功能的应用软件,根据反应堆设计基准及规范,核电数字化保护系统中运行的核级软件需采取模块化的结构,它是由一系列的安全功能单元组成的。而每一个安全功能单元内部按照数据处理的不同以模块的形式划分。

核电数字化保护系统,主要包括反应堆事故停堆系统(RTS)和专设安全系统(ESFAS),其中运行的软件也必然要包括两部分,一部分用于执行反应堆停堆功能,当需要时产生控制动作触发反应堆停堆。另一部分用于执行专设安全设施功能,安全设施包括驱动单元及适当的设备布置,根据驱动系统或操作员发出的信号实现保护功能[2]。

对于上述核级软件的两个主要部分来说,其中每一个安全功能单元都要经过信号输入、逻辑处理、逻辑表决、优先级选择及监控服务等几个步骤,其中信号输入部分、逻辑处理部分、逻辑表决部分是通过调用模块来实现的。信号输入中主要用到的模块有测量量程转换模块(AMRC)、比较器模块(COMP)、取第二大模块(MAX2)及取第二小模块(MIN2)等,逻辑处理部分主要用到的模块有求或模块(OR2及OR4)、求余模块(AND2及AND4)、RS触发器模块(FF_STAT_R)等,逻辑表决部分主要用到的模块有4取2模块(2-out-of-4)、4取3模块(3-out-of-4)等。另外,优先级选择主要是由优选卡件来实现的,它按照固定的优先级顺序把仿真指令、安全仪控系统指令、控制室手动指令及通过Profibus现场总线传过来的操作仪控指令进行选择,然后把命令输出至执行机构用于实现最后的控制功能,这部分主要是通过硬件实现的,因此没有调用模块。

为了确保整个核电数字化保护系统功能的安全、可靠实现,上述系统中运行的软件必须进行完整、严格的V&V。

2 核级软件的V&V

核级软件的V&V是一个严格按步骤评定软件产品的过程,这种评定贯穿于软件产品的整个生命周期,应视为集成在整个核级软件开发项目中一个完整而独立的任务。核级软件的验证与确认靠使用审查、分析及测试技术,来评定一个完整的软件系统及其开发过程中的中间产品是否满足预定的功能要求和质量要求[4]。

为了保证基于计算机软件的核级数字化设备达到足够的安全性、可靠性,除了设备本身(包括相应的硬件和软件)高安全性、高可靠性外,在很大程度上还取决于系统的设计,还包括它的技术方案、体系结构等,特别是要遵循各种核电安全标准和设计准则。同时,核级数字化设备在开发过程方面,还需要专门的验证与确认来检验和证明设备的性能和质量,以及相应的要求已正确实现。因此为了更加系统地开展核级软件的V&V,需要进行I&C系统的安全分级和软件分类,不同的安全级别、分类需采取不同的V&V过程。

根据对安全的重要性,IAEA(国际原子能机构)编号50-C-D的文件确定了核电站系统的级别,同时给出了几种核电站的主要系统分类。安全导则50-SG—D3和50-SG-D8对I&C系统进行了安全分级,确定了对安全有重要作用的安全系统和安全相关系统的区别,安全系统由确保安全停堆、堆芯热量导出以及预期事故缓解的系统组成。安全相关系统是对安全有重要作用的系统但不是安全系统的组成部分[1]。

另外IAEA的安全分级方法是由IEC(国际电工委员会)的 IEC1226号文件解释的,这个标准确定了对安全有重要作用的I&C系统功能、系统以及设备分为A、B、C三类,具体如下:

A类:对实现和维护核电站安全负有主要责任的功能、系统以及设备;

B类:对A类系统起安全支持作用的功能、系统以及设备;

C类:对实现和维护核电站安全起辅助或间接作用的功能、系统以及设备。

软件主要分为新软件和现有软件两类软件,具体分类及描述如下:

A 新软件:专门针对某一个具体应用而写的软件;

B 现有可访问软件:从一个相似应用得到的软件,可被重用,且相应的文档仍有效;

C 现有似有软件:可满足当前应用的全部或部分需求的商业软件,没有相应的文档;

D 可配置软件:可根据具体应用需求,使用数据或输入语言对其进行特定配置的现有软件。

新核级软件必须在遵循当前的核工业法规和软件标准的基础上开发,与已有软件相比,需要更多的资源和V&V活动,现有软件重用的好处在于大多数软件能够马上投入使用,费用也只在对代码的应用修改、准备配置数据以及相关的V&V活动时发生,但其集成的可靠性必须保证,这取决于以前使用所积累的可靠度[2]。

V&V在整个软件生命周期执行,以确保信息在各阶段之间传递,我们通过 C#编程开发了一个自动化的 V&V工具,能够实现核级软件生命周期里每个阶段所需的V&V活动,包括核级软件的需求验证与核级软件的测试。由于 B类和C类现有软件的V&V任务及使用的技术是A类新软件的子集,因此主要以A类新软件的V&V过程为主讲述。

3 核级软件的需求验证

需求验证主要包括系统需求验证和计算机系统的需求验证,其中系统需求验证的目的,是确保系统需求确实是概念文档所描述的用户需要,概念文档中包含需求的声明、项目初始备忘录、可行性研究、管理规程、公司规程与策略、最终用户的验收标准等。计算机系统需求包括3部分内容:软件需求、硬件需求和集成需求。计算机系统的需求验证的目的,是确定所提出的计算机系统是否满足系统需求说明中描述的系统需求,以及如何回查这些需求,其关键是确定配置给硬件、软件和接口的功能是否已被明确地定义和合理地分配。

需求验证的关键是要有一个需求可追溯模型,以提供所有系统需求与上层文件间的映射关系,从而便于进行需求的追查分析,在该自动化的V&V工具中,我们集成了世界领先的需求管理工具Telelogic DOORS,用于核级软件的需求验证,它可以捕捉、链接、追踪、分析并管理信息的变更以确保开发的核级软件顺从特定需求和标准。在DOORS中,每个需求都作为一个单独的对象列出,方便需求的阅读和关联。另外,DOORS不只用来管理和维护需求,还被用来管理设计和测试文档,根据DOORS中维护的需求信息完成设计、编码等工作,在设计文档中,将设计与需求之间建立关联,对需求的变更进行跟踪,保证设计的内容与变更后的需求相一致。同样根据DOORS中的需求信息对设计内容进行白盒测试和黑盒测试,同样在测试文档中将测试结果与需求之间建立关联,还可以对需求的变更进行跟踪,保证测试结果与变更后的需求相一致。

4 核级软件的测试技术

对核级安全软件的测试,必须既采用白盒测试方法和黑盒测试方法,以保证软件运行的安全、可靠性。

首先进行的是白盒测试,在开发出保护系统上运行的核级软件后马上进行的是白盒测试,由核级软件的开发人员根据软件的内部逻辑来编写测试用例进行测试,以检测软件内部动作是否按照规格说明书上的规定正常运行,检测程序中的每条通路是否都能按预定要求正确工作[5]。

但白盒测试存在它固有的缺陷,首先我们进行白盒测试没有穷尽所有的路径,另外,即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出现的错误。第三,穷举路径测试可能发现不了一些与数据相关的错误。在这种情况下,我们还要进行黑盒测试。

构造黑盒测试的测试用例,必须满足一定的设计规范,就核级软件的黑盒测试来说,测试用例应覆盖HAF102所规定的全部四种工况,并根据 Nureg-0800所确定的各种始发事件。从设备故障、人员差错、人为事件到自然事件之类的单一事件均需考虑在内。

测试用例必须反映能直接或间接影响核电厂安全的各个设备的故障。需要考虑的故障类型取决于所涉及系统和部件的类型。故障的广义含义包括如下两类:系统或部件丧失执行功能的能力和功能的执行情况与所期望者不符。例如,管道故障的表现形式有泄漏、破裂和流道堵塞。能动部件,例如阀门的故障形式有:在需要时不开启或不关闭,在不应动作时开启或关闭,开不足或关不住,开启或关闭的时间或速度不当。仪表或传感器之类的装置的故障有如下形式:误差大于允许范围、无输出、不变的最大输出、输出不稳定或上述形式的组合等。

测试用例还必须反映人员的各种误操作,比如:错误的或不良的维护、控制限值的错误整定和操纵员的其他错误行动。测试用例还必须反映内部原因引起的火灾、爆炸或淹没对电厂安全造成的影响。

5 结论

核电数字化保护系统中运行的核级软件,必须进行完整严格的验证与确认活动,以保证软件运行的可靠性和安全性,又为了提高验证与确认的效率,我们开发了一种高效自动化V&V工具用于模块的测试。它能够调用需求管理工具Telelogic DOORS用于核级软件的需求验证,根据核电站各种工况下特定的测试用例自动生成测试报告,给出核级软件是否实现所需功能的结论,然后根据结论对缺陷进行修改,从而最终完成核级软件的验证与确认任务。

[1]IAEA TRS-384,verification and validation related to nuclear power plant instrument and control[S].

[2]李铎,张良驹,冯俊婷.‘安全软件验证与确认中的单元模块测试技术’[J].原子能科学技术,2008.6.

[3]龚益.‘核电厂安全系统软件验证与确认方法探索’[J].低压电器,2004No5.

[4]李铎,张良驹.‘核动力厂安全软件的验证与确认技术的初步探索研究’,全国第五届核仪器及其应用学术会议论文集[C].

[5]Kanglin Li,Mengqi Wu.高效软件测试自动化[M].北京:电子工业出版社,2004.8.

猜你喜欢
核级测试用例核电
自主核级无纸记录仪产品发布会在上海召开
第四代核电 高温气冷堆
百年初心精神 点亮核电未来
基于SmartUnit的安全通信系统单元测试用例自动生成
2020年核电活动安排
核电链接
基于需求模型的航天软件测试用例生成方法
华龙一号首批核级泵鉴定技术要求实现“固化”
核级E316L焊条在高温水环境下的均匀腐蚀行为
国产核级CHE608HR2焊条插销冷裂纹试验研究