《核电厂DCS安全级应用软件的集成测试方法》—第七届ABB杯论文大赛三等奖
Posted ABB杯全国自动化系统论文大赛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《核电厂DCS安全级应用软件的集成测试方法》—第七届ABB杯论文大赛三等奖相关的知识,希望对你有一定的参考价值。
核电厂DCS安全级应用软件的集成测试方法
徐展,夏丹阳
(中核控制系统工程有限公司,北京 100176)
摘 要:核电厂DCS安全级系统是整个DCS系统的重要组成部分,确保核电厂DCS安全级系统应用软件的安全可靠性是至关重要的,软件验证和确认活动给核电厂安全可靠性提供了重要保障,这其中包括一些相关测试活动,软件集成测试是验证和确认活动的重要环节。本文遵循标准IEEE-1012软件验证与确认,针对安全级平台Tricon系统,给出了一套完整的软件集成测试方法。
关键词:软件集成测试;验证和确认;DCS安全级应用软件
Software Integration Test for DCS Safety Related System of Nuclear Power Plant
Abstract:The safety-level system is the most important part of the whole distributed control system (DCS) in nuclear power plant. It’s important to ensure the safety and reliability of safety-level system application software for nuclear power plant. Software verification and validation provide the important protection for the safety and reliability of nuclear power plant, which include several related test activities. Software integration test is an important part of verification and validation activities. A useful and powerful method of the software integration test on Tricon system for safety related system is given in this article based on IEEE standard 1012 software verification and validation.
Key words:SIT (Software Integration Test); V&V(Verification and Validation);DCS safety related system
1 引言
数字化技术已经在各工业领域得到了广泛成功的应用。近年来,为了提高核电运行的安全性、可靠性及经济型,数字化技术已经成为核电仪控技术发展的普遍趋势[1]。在核电仪控系统的数字化过程中,一个必然要解决的关键问题是安全级平台软件的验证与确认过程[2]。这其中包括一些相关测试活动,软件集成测试就是DCS设备在出厂验收之前对系统软件的一步重要验证活动。
2 DCS安全级应用软件
核电厂DCS安全级平台软件是指针对待定核电厂,实现核电厂安全仪控功能的应用软件,根据反应堆设计基准及规范,核电数字化保护系统中运行的安全级软件需采取模块化的结构,它是由一系列的安全功能组成的,而每一个安全功能内部按照数据处理的不同以模块的形式划分。
核电数字化保护系统,主要包括反应堆事故停堆系统和专设安全系统,其中运行的软件也必然要包括两部分,一部分用于执行反应堆停堆功能,当需要时产生控制动作触发反应堆停堆。另一部分用于执行专设安全设施功能,安全设施包括驱动单元及适当的设备布置,根据驱动系统或操作员发出的信号实现保护功能。
安全级平台Tricon系统可以承担核电安全级保护系统的作用,Tricon系统软件Tristation1131已经通过美国核管会(NRC)的认证,可以用于核电安全级保护系统,但为了确保整个核电数字化保护系统功能的安全、可靠实现,上述系统中运行的软件必须进行完整、严格的V&V活动。
3 安全级应用软件的V&V
安全级软件的V&V是一个严格按步骤评定软件产品的过程,这种评定贯穿于软件产品的整个生命周期,应视为集成在整个软件开发项目中一个完整而独立的过程。安全级软件的验证与确认使用审查、分析及测试等技术,来评定一个完整的软件系统及其开发过程中的中间产品是否满足预期的功能要求和质量要求。
4 安全级应用软件集成测试
应用软件集成测试主要涉及到软件程序单元的集成,以确保已集成的软件部件符合软件设计,满足系统功能和需求。下面以福清1、2号机组核电项目中基于安全级平台Tricon的反应堆保护系统应用软件为例,来说明整个软件集成测试过程。
4.1 测试目的及范围
在标准文件IEEE-1012中指出,在整个软件生命周期中的设计阶段,基于软件需求规格书(SRS)和软件设计说明书(SDD)可以生成软件集成测试计划,而随后基于测试计划、SRS、SDD及用户文档可生成测试设计;在实施阶段,基于测试计划、测试设计、SRS、SDD及用户文档可生成测试用例和测试规程;在测试阶段,依据测试规程对源代码和可执行代码来执行测试。
软件集成测试确保开发的软件符合期望的设计,具体来说就是,确保正确地执行SDD以及满足SRS中的软件需求,因此软件集成测试包括白盒测试(验证SDD)和黑盒测试(确认SRS)。黑盒测试属于一种基于需求的功能性测试,在测试用例和测试脚本及规程的设计中都需要保证测试覆盖到所有的需求,并且可以从正反两个方向来对测试和需求进行追踪,执行黑盒测试用来检测设计是否满足需求。因此,对于软件集成测试来说,黑盒测试就是来检测是否满足SRS规定的软件需求。
白盒测试用来验证程序、应用软件逻辑和运算功能。本项目软件集成测试要求达到路径覆盖,即对SDD中各个约束条件之间的每种组合至少进行一次测试:例如,依据各输入的组合来建立所有情况的测试用例。在软件集成测试之前对于SRS和SDD里的单元部件已经进行过测试了,所以软件集成测试重点在于各个部件之间的连接集成情况。
4.2 测试特性
基于IEEE-1012标准文件和软件验证和确认计划(SVVP),软件集成测试的输入文件是SRS和SDD,福清1、2号机组项目测试特性为:
(1)SRS文件具体的软件需求;
(2)SDD文件中每个部件(ent i ty)的代码结构(code structure);
(3)SDD文件中每个部件的输入输出点表。
软件集成测试的目标是尽可能找出软件执行代码中的错误指令。当执行代码偏离SRS的软件需求和SDD的代码结构时,软件集成测试要能发现这些错误,并用文件来记录下来。
引用部件(entity)这个概念来描述SDD中一组相关逻辑设计,为了和SDD保持一致,软件集成测试按照每个部件这种方法来编写测试用例。
4.3 测试手段和工具
软件集成测试是在tristation 1131及其仿真环境下来进行测试的,而并不需要tricon硬件支持。Excel表格和测试宏代码可以通过动态数据交换(DDE)来实现tristation 1131和仿真系统的连接通信。通过仿真得到的输出结果反馈到excel表格上跟预期的输出结果进行比较,看是否满足软件的测试需求。
4.4 测试用例表格
软件集成测试用例通过excel工具生成一个表格,其中包括输入输出点表,通过/不通过标准等,测试分为静态测试和动态测试两种,所谓静态测试是指测量的输出值可以在确定的输入下得到确切结果,而不是暂时得到的瞬态结果,一般不随着时间的变化而变化。图1为一个静态的测试用例表格:
图1 静态测试用例表格
所谓的动态测试是指时间相关的逻辑测试,为了保证时间参数的正确性,我们能够得到在每个时间扫描周期上的输出结果,以便于看到某一点在各个时刻的输出变化值。图2为一个动态的测试用例表格:
图2 动态测试用例表格
4.5 测试用例设计原则
测试用例的每一步(test case step)是根据软件需求和代码结构来设计的。通常第一步来查看SDD文件中的代码结构是否正确,通常采用下图方式根据不同的代码结构来编写不同的测试用例,第二步查看是否SRS中的需求被这些测试用例完全覆盖。我们重点来说第一步,图3展示了具体的测试用例编写原则:
图3 测试用例编写原则
(1)首先根据具体的逻辑分为两大类:时间相关的逻辑和时间无关的逻辑。对于时间无关的逻辑,只需要进行编写静态测试用例;对于时间相关的逻辑,还需要编写额外的动态测试用例。
(2)根据输入个数来决定时间无关逻辑的复杂程度。当输入的个数小于或等于8,这种情况属于简单逻辑;当输入的个数大于8,这种情况属于复杂逻辑,需要把输入分成几组来测试,当测试其中的一组时,其他组的输入可根据逻辑情况设置适当的输入值,只要不影响到其测试结果即可。
(3)代码结构还需根据输入数据类型和记忆类型进一步分类,当对无记忆二进制类型的简单逻辑进行测试时,利用2N个测试用例便能把所有的二进制组合情况进行测试,N为输入的个数。
(4)对于时间相关的逻辑可以根据不同的模块进行编写测试用例,对于LEADLAG, LEADLAG_R, DR_PI, FI这些超前滞后类模块时,利用阶跃响应进行测试;对于BUP_CONTROL,RAMP, RAMP_R, ACTUATOR_FAULT, TON, TOF, TP_R这些时间延迟类模块时,根据具体的时间参数设定延迟的时间,在静态测试用例中进行测试,这些时间参数还会在动态测试用例中重复测试。
4.6 宏代码使用及自动测试方法
为了快速准确的完成软件集成测试, 使用vi s u a l b a s i c appl icat ion(VBA)语言来编写宏代码,实现自动化测试过程。宏代码实现的功能是接受测试开始指令,读取需要的参数,设置DDE和仿真器连接,把具体值写到相应的输入变量当
中,等待特定的时间执行逻辑,再从仿真器读取相应的输出值写到excel表格中去,并跟期望值进行比较,得到通过/不通过结果。
在编写完这些宏代码之后,实际开始测试时,测试人员会执行Excel中写好的宏代码,使得excel表格中的输入值自动的写入仿真器中,并使输出值自动地反馈到excel表格中去。
5 结束语
本文在参考安全级软件V&V国际标准的基础上,以福清1、2号机组核电项目为例,给出了一套完整的安全级应用软件集成测试方法,并应用到基于安全级平台tricon系统的反应堆保护系统应用软件集成测试中去,为提高软件的安全性和可靠性提供了保障。
参考文献:
[1] 高超, 胡立生. 核级软件的验证与确认技术研究[J]. 微型电脑应用,2010, 4.
[2] IAEA TRS No. 384: Verification and Validation Related toNuclear Power Plant Instrument and Control[S].
[3] IEEE Std 1012-2004: IEEE Standard for Software Verification and Validation [S].
关于本届大赛
随着“互联网+”概念的提出和《中国制造2025》的发布,智能制造、工业互联网等概念成为当前热门风口。刚刚公布的“十三五”规划纲要以较大篇幅强调实施创新驱动发展战略,并强化科技创新引领作用。“围棋人机大战”也掀起了人们对人工智能和未来科技的探讨热潮,中国自动化学会作为这一领域的全国学术性社会团体,举办第八届全国自动化系统工程师论文大赛。大赛为中国自动化领域提供了重要的技术交流和经验分享平台,推动了自动化产业与学术研究的紧密结合,有力地促进了行业的发展。
↓↓↓
以上是关于《核电厂DCS安全级应用软件的集成测试方法》—第七届ABB杯论文大赛三等奖的主要内容,如果未能解决你的问题,请参考以下文章