核反应堆堆芯数值计算软件的渐增式集成测试技术研究与应用
2022-08-10汤琪芬
汤琪芬 芦 韡 刘 婷 安 萍
(中国核动力研究设计院核反应堆系统设计技术重点实验室,四川 成都 610213)
0 引言
在核反应堆的工程设计活动中,用于堆芯中子学性能分析、燃料元件性能分析、热工水力与安全分析等目的的一系列设计分析软件均发挥着至关重要的作用。 为确保核安全相关计算机软件的正确性与可靠性,在其投入工程应用之前,必须开展严格的“验证与确认”(verification and validation,V&V)工作。 由于堆芯数值计算软件涉及大量先进的理论模型,计算流程复杂、迭代计算次数多、计算精度要求高,现阶段第三方测试采用一次性集成测试方法,缺陷的定位和调试难度大,耗时远超过静态和单元测试。
为解决上述问题,本文结合核反应堆系统堆芯数值计算类软件特点,研究适用于堆芯数值计算软件的渐增式集成测试方法,基于此方法开发渐增式集成测试框架,并应用于先进节块法堆芯三维少群中子学计算软件CORCA-3D。该软件为中国核动力研究设计院自主研发的压水堆堆芯核设计软件包TORCH V2.0中的重要软件,具备压水堆堆芯建模、临界搜索、换料等相关计算设计分析能力。
1 堆芯数值计算软件的渐增式集成测试方法研究
集成测试是单元测试的逻辑扩展,一般集成测试之前,单元测试需要完成。 集成测试的实施方案有很多种,如一次性测试、自底向上集成测试、自顶向下集成测试、三明治集成测试、基干集成测试、分层集成测试等。
本文提出的针对堆芯数值计算软件渐增式集成测试方法,是基于功能的分层集成测试,第一层是单功能模块集成,第二层是根据理论计算流程和数据传递需求,进行组合功能模块的集成测试。 开展堆芯数值计算软件渐增式测试工作重点是根据理论进行功能模块解耦并准备相应的测试例题。 如果是新开发的软件,可通过模块化,高内聚、低耦合的方式优化架构设计,在开发时注意打桩测试,便于实现各个模块解耦测试工作。 对已开发软件进行渐增式集成测试时,主要有以下难点及较大的工作量:
(1)核心计算模块解耦:堆芯数值计算软件功能复杂, 数据量较大, 例如,CORCA-3D 软件的燃耗计算、截面计算、扩散计算、功率重构四个主要计算模块,涉及堆芯布置,控制参数,截面信息,计算选项,堆芯几何参数,中子学计算相关参数,燃耗计算数据等大量物理数据,且物理量之间关系复杂。
(2)测试数据研制及计算正确性判断:渐增式集成测试需针对各单模块和组合模块,准备输入数据及可对比的计算结果数据,以测试正确性。 部分功能模块可通过基准题准备测试例题,但在很多情况下数值计算的预期输出难以确定。
在本方面,北京科技大学计算机科学与技术系发现蜕变测试用于高性能数值模拟程序比较有效,并且可用于测试数据的生成。 四川大学计算机学院提出了基于数据挖掘技术和多目标优化、 基于主题模型、函数运行热力图的回归测试用例优先级确定方法,以及基于热力图的集成测试用例最小集确定方法。 南京大学软件学院设计并实现了一组随机方法与高精度计算相结合的检测诊断工具来自动分析与诊断软件中的数值稳定性错误。
(3)自动化测试需求:在堆芯数值计算软件研发和测试过程中,将需要对多个模块多个测试例题进行反复迭代测试,且数据量大,可引进吸收以及自研自动化测试工具,建立适用于反应堆数值计算软件的集成化开发调试环境,并针对性开发相应计算结果对比工具,提取核心数据结果,便于发现问题,提高开发人员与测试人员编译调试工作效率。
综述分析,可设计堆芯数值计算软件的渐增式集成测试框架,如图1 所示,设计图形化界面如图2 所示。
图1 堆芯数值计算软件的渐增式集成测试框架示意图
本框架的具体功能如下:
图形界面:设置执行文件路径,测试例题路径、对比结果路径,并生成配置文件,登入界面如图2,主要设计了“项目—新建”“项目—打开”,以及单模块及多模块的新增导入或删除;流程控制模块:根据界面或用户自编的配置文件,批量执行目标文件及相应的测试例题, 在计算结束后调度选择的结果对比模块;结果对比模块: 提供同名文件全数据对比或部分数据,留有接口可嵌入根据软件特点针对性的测试对比工具,通过对比选项进行对比。
图2 堆芯数值计算软件的渐增式集成测试框架登入界面
2 C O RC A- 3 D 软件基于渐增式集成测试框架的实践
CORCA-3D 软件分为界面与数值计算部分,其中,数值计算部分总代码行数20 余万,包括输入、燃耗计算、截面计算、扩散计算、热工反馈、功率重构、输出七个核心计算模块以及44 个工程计算模块。
本文解耦了燃耗计算BURN、截面计算XS、扩散计算NACK、功率重构REC 四个模块,梳理输入输出数据,增加输入输出接口,并构造相应例题,形成单模块以及渐增多模块工程,具体如图3 所示。
图3 CORCA-3D 软件核心计算模块的渐增式测试逻辑图
本文中测试例题主要是根据基准题或同类软件对比进行构造, 后续可进一步采用合适的测试技术,如模糊测试和蜕变测试等技术,基于基准题或真实例题,生成更具覆盖性的有效例题。
图5 执行设置
项目创建和执行界面如图4、5 所示:
图4 项目建立界面
选择了CORCA-3D 软件三个版本进行迭代测试,其中以Build01 版作为基准,各版本核心计算模块之间差异如表1 所示。
表1 CORCA-3D 软件版本对比差异
使用框架执行测试后, 可以得到各个版本的功能模块和组合功能集成的计算对比结果,如表2、3 所示。
表2 NACK 模块Build03 二维IAEA 基准问题的节块归一化功率分布对比
3 结语
本文研究的渐增式集成测试方法提供了模块级的计算结果评价,可解决一次性集成测试方法中的缺陷定位困难的问题,提升测试的准确度及缺陷修复效率。 同时,搭建的渐增式集成测试框架可提供方便快捷的自动化测试,提高软件开发效率。
表3 XS+NACK+BURN+REC 模块Build02 版和Build03 版0 燃耗步FQ 对比