核科学论文基于蜕变测试的热传导程序的验证测

核电设计与分析软件的数值计算程序的验证测试过程,受制于代码中数值算法执行的正确性,以下是核科学论文基于蜕变测试的热传导程序的验证测试研究

【关 键 字】 燃料元件  热传导程序  验证测试  蜕变测试
【摘    要】 核电设计与分析软件的数值计算程序的验证测试过程,受制于代码中数值算法执行的正确性,但存在Oracle问题,即测试人员很难构造或者得到程序的预期输出来验证程序计算结果是否正确。蜕变测试无需程序预期值来验证结果,已应用于软件测试领域,其蜕变关系是关键。本文应用蜕变测试技术,以堆芯燃料元件热传导程序为例,从数值计算模型中导出蜕变关系,实例初步验证该蜕变关系的有效性,也表明蜕变测试技术可以在核电设计与分析软件验证测试中发挥作用。
 
核电设计与分析软件主要是模拟物理过程的数值计算程序,涉及堆芯设计分析、燃料管理、屏蔽与源项、燃料元件性能分析、热工水力等程序的研发。在软件质量方面,其用户和开发者会面临一个问题:如何证明计算机软件的模拟过程是否正确[1]。软件的验证(verification)和确认(validation)(简称V&V)是保证软件质量的重要手段。
 
美国航空航天研究所(AIAA)对验证和确认的定义是:验证(verification):确定模型的执行是否精确反映了开发者对理论概念的描述和求解过程。确认(validation):确定使用的计算模型反映真实世界的现象的精确程度。本文只关注验证测试[2]。
 
测试面临Oracle问题[3],即测试人员很难构造或者得到程序的预期输出来验证程序计算结果是否正确。在核电软件测试领域,特别是数值计算程序的验证往往很难直接给出其解析解,或者高精确度基准来进行测试,这是典型的测试Oracle问题。为此,目前传统的核电设计与分析软件程序验证方法主要是用某些基准题或实测数据进行比较[4-6],但并不能保证这些基准题或实测数据足够地满足各种不同类型程序的验证需要,因为基准题或实验室数据比较有限,结果是存在部分未被验证,这样会把残留的缺陷留到后期,将付出更大的代价。
 
值得借鉴的是蜕变测试(metamorphic testing)技术[7],该方法通过检查程序的多个执行结果之间的关系来测试程序,不需要构造预期输出。蜕变测试,作为一种测试无预期值程序的方法,应用于解决Oracle问题并发挥其作用。
 
本文针对核电设计与分析软件验证测试中的Oracle问题,应用蜕变测试技术,从软件涉及的数值计算模型中导出蜕变关系,以一个简单的堆芯燃料元件导热程序测试为例,来说明蜕变测试技术应用于核电设计与分析软件验证测试中是可行的一种方法,也可作为传统方法的一个补充。
 
1 验证测试的概念
 
根据AIAA的计算流体力学标准委员会发布的计算流体力学模拟验证与确认基本方法指出[8],验证的基本策略是识别、量化并减少计算模型和数值求解过程中的错误。验证就是评估计算模型是否真实地反映物理模型的问题,证明程序化的计算程序能否正确地求解。
 
验证包含程序验证和解验证(计算验证)两个方面[9],其中程序验证又分为数值算法验证和软件质量保证(software quality assurance,SQA),如图1所示。
 
 
图1 验证活动
Fig.1 Integrated view of verification assessment for computational physics
其中数值算法的验证过程关注于代码中数值算法执行的正确性。本文主要讨论数值算法的验证。
 
数值算法验证方法一般是精确解析解、半解析基准解( benchmarks)、偏微分方程的高精度基准解进行对比验证。
 
目前核电设计与分析软件的数值算法验证主要是采用基准题计算和实验数据对比的方法。比如,对主输运计算模块进行验证采用OECD/NEA 发布的C5G7-MOX 基准题[10];日本原子能机构(JAEA)发布的一系列输运—燃耗基准问题[11];同时国际机构比如OECD/NEA,IAEA,ANS,JAEA等发布实验数据可用来进行程序验证。但是面临着基准题数量少,实验数据成本高的问题。
 
上述对比的验证测试方法,对测试者而言,实际上给出了测试的预期输出结果来进行验证,但有些程序尚无基准题和实验数据时,则面临着验证测试中典型的Oracle问题。蜕变测试技术,已经应用于解决Oracle问题领域。
 
2 蜕变测试技术的概念及应用
 
为了解决测试Oracle问题,研究者Tsong Yueh Chen在文献[7]首先提出了蜕变测试(Metamorphic Testing)。比如测试函数 sin(x),对定义域内任意的两个输入x1,x2只要满足x1=π-x2,就有sin(x1)=sin(x2),这种性质就是一种关于函数的蜕变关系,数学表达如下;
 
 
(1)
 
如果执行测试用例,程序结果不满足(1)式,则程序中存在缺陷。执行上述测试过程,就是蜕变测试。通过检测(1)式成立与否来判定程序的正确性。显然蜕变测试是一种基于蜕变关系的测试。
 
蜕变测试,作为一种测试无预期值程序的方法,能确保软件在测试时候展出它的蜕变性质。一种蜕变性质可以定义为一种关系,当改变输入值时,根据函数,其输出值得改变是可以预测的。蜕变测试技术最初主要应用于数值型程序中。比如测试计算三角函数的程序,测试计算指数函数的程序,测试计算行列式的程序等。近来其他的学者,在特别的领域应用到蜕变测试,比如生物信息学[12],网络仿真[13],机器学习[14]等。
 
蜕变测试过程可以划分为以下几个阶段,过程见图2。
 
(1) 使用其他测试用例生成策略为待测程序生成原始测试用例;
 
(2) 若这些原始用例均通过测试,则为待测程序构造一组蜕变关系;
 
(3) 基于上述关系计算衍生测试用例;
 
(4) 检查原始和衍生用例的输出是否满足相应的蜕变关系,得出测试结果。
 
 
图2 蜕变测试示意图
Fig.2 Metamorphic test schematic diagram
有研究者将程序的研制分成物理建模(物理模型)和数值模拟(计算模型)两个过程[8]。下面将从软件涉及的计算模型导出蜕变关系,用于蜕变测试。
 
3 燃料元件热传导程序蜕变测试
 
核电设计与分析软件涉及的主要是求解数学物理方程的数值计算程序。下面以一个简单堆芯燃料元件热传导程序为例来进行蜕变测试研究。此程序主要是求解燃料元件内的温度分布,以便检验元件工作状况是否满足热工设计准则的要求。将从涉及的数值计算模型中导出蜕变关系,根据蜕变关系来进行蜕变测试。
 
3.1 热传导程序蜕变关系
 
用于计算燃料元件温度场的通用的热传导微分方程为:
 
 
(2)
 
式中:2为拉普拉斯算子,T为温度(℃);qv为体积释热率(W/m3);κ为热导率(m2·℃);λ为热传导系数(W/(K·m));ρ为密度(kg/m3);c为比热(J/(kg·K)),τ为时间。
 
假设一个均匀的板状燃料元件,忽略高度方向和宽度方向的堆芯无内热源的导热,一维的热传导瞬态方程为:
 
 
(3)
 
通过数值计算方法离散求解上述方程,编制相应程序,计算温度燃料元件温度分布,数值计算模型如下。
 
在时间和空间上作均匀剖分离散,设时间与空间步长分别为Δτ,Δx,用向后差分格式离散(3)式得,
 
 
(4)
 
令即(4)式化简成,
 
 
进一步写成矩阵算子形式为,
 
 
其中M为系数矩阵,T为温度向量。
 
由Taylor公式容易得到,数值解T与真解T*的截断误差为T-T*=Ο(τ+(Δx)2),可知,如固定时间τ,截断误差只跟剖分尺寸Δx有关。Δx越小,误差越小。
 
假设x轴上有一位置点L在剖分为Δx的温度为则满足
 
TL-T*=ΟL(τ+(Δx)2)
 
(5)
 
当剖分为Δx/2时,同一位置点L处的温度为则也满足,
 
 
(6)
 
将(5)式与(6)式相减,得到,
 
 
因此,根据此数值解的特性,推导出蜕变关系。
 
 
(7)
 
 
(8)
 
根据(7)式,(8)式的蜕变关系,假如程序求解的温度及截断误差不满足上述蜕变关系,则说明程序存在缺陷。
 
3.2 蜕变测试
 
(1) 依据蜕变测试的过程及步骤,下面利用蜕变关系MR1,MR2进行蜕变测试。
 
① 原始测试用例描述;假设一个均匀的板状燃料元件,如图3所示。
 
 
图3 板状燃料元件
Fig.3 plate-type fuel element
一维区间离散,空间和时间分别用x,τ轴来表示,如图4所示。
 
 
图4 时间和空间上的均匀网格离散
Fig 4 The uniform grid on the discrete time and space
计算例题模型初始温度为T0,从零时刻起,无内热源,其内部温度为Ti,导热系数λ,假设一维度求解区间为[0,L],边界条件为;初始时刻的温度为设解析解为程序的输入参变量见表1。
 
表1 初始测试用例case1
Table 1 The initial test case1
 
执行原始测试用例,通过测试得到计算结果。
 
② 依据蜕变关系(7)式和(8)式,根据输入关系式,剖分成倍数变化,得到衍生测试用例case2,case3,见表2、表3。
 
表2 衍生测试用例case2
Table 2 The follow-up test case2
 
表3 衍生测试用例case3
Table 3 The follow-up test case3
 
执行衍生测试用例case2,case3,得到计算结果,观察程序是否违背蜕变关系。结果见表4。
 
表4 蜕变测试结果
Table 4 Metamorphic test results
 
上述蜕变测试结果表明,计算结果满足蜕变关系式MR1,MR2。
 
(2) 为了对比,验证蜕变关系的有效性,在程序中植入一个错误;把原来程序中的第47行代码while k~=M-1的循环条件改换成错误的代码while k~=M-2,然后按照上述的测试用例重新计算,得到的结果见表5。
 
表5 错误代码的蜕变测试结果
Table 5 Metamorphic test of defect code results
 
从以上算例结果分析来看,很明显植入错误代码后,计算结果明显不满足蜕变关系MR1,也说明,此蜕变关系可以检验错误代码的能力,则也进一步验证了所推导的蜕变关系的有效性。
 
4 结论
 
本文分析了核电设计与分析软件测试的现状与存在的问题,即软件测试Oracle问题,以堆芯燃料元件热传导计算程序为例,从偏微分方程中推导出蜕变关系,应用蜕变测试技术原理,实验算例结果验证了该蜕变关系的有效性。下一步将在核电设计与分析软件所涉及的经典的数学物理方程中找出其本身蕴含蜕变关系,从软件工程测试角度来看,系统开展蜕变测试的研究,得到有效的蜕变关系是对于核电设计与分析软件程序的正确性验证是非常有意义的。
 
参考文献:
 
[1] 刘占权,杨超,党哈雷,等. COSINE软件包物理系统V&V策略研究[J].原子能科学技术,2013,47(B06): 323-326.
 
[2] Staf A A. AIAA Guide for the Verification and Validation of Computational Fluid Dynamics Simulations[M]. American Institute of Aeronautics & Astronautics, 1998.
 
[3] 杨雪,施工,王侃. DRAGON挂载WIMS-D核数据库的基准题计算验证[J]. 核动力工程,2007,28(6):20-24.
 
[4] 李松阳,王侃,余纲林. MCNP温度相关中子截面库的研制及基准验证[J].原子能科学技术,2009,43(5):385-388.
 
[5] 刘余,李峰,张虹,等. RIA基准题验证堆芯三维物理-热工耦合程序[J].原子能科学技术,2010,44(11):1328-1334.
 
[6] 胡家驹,马续波,陈义学,等. 基于VENUS-2临界基准的CosMC程序验证[J].核动力工程,2014(s2):94-97.
 
[7] T.Y. Chen,S.C. Cheung,and S.M. Yiu. Metamorphic testing: a new approach for generating next test cases. Technical Report HKUST-CS98-01[R],University of Science and Technology,Hong Kong.1998.
 
[8] OBERKAMPF W L. Verification and validation for modeling and simulation in computational science and engineering applications[C]// Foundations for Verification and Validation in the 21st Century Workshop. Maryland: Johns Hopkins University,2002.
 
[9] 王瑞利,林忠,袁国兴.科学计算程序的验证和确认[J]. 北京理工大学学报,2010,30(03):353-356.
 
[10] Lewis E E,Smith M A,Tsoulfanidis N,et al. Benchmark specification for deterministic 2-D/3-D MOX fuel assembly transport calculations without spatial homogenisation (C5G7 MOX)[R]. OECD/NEA report,NEA/NSC/DOC(2001)4.
 
[11] Yamamoto A,Ikehara T,Ito T,et al. Benchmark problem suite for reactor physics study of LWR next generation fuels [J]. J Nucl Sci Tech,2002,39(8): 900-912.
 
[12] T. Y. Chen,J. W. K. Ho,H. Liu,and X. Xie. An innovative approach for testing bioinformatics programs using metamorphic testing. BMC Bioinformatics,10(24),2009.
 
[13] T. Y. Chen,F.-C. Kuo,H. Liu,and S. Wang. Conformance testing of network simulators based on metamorphic testing technique. Lecture Notes in Computer Science,5522,2009.
 
[14] X. Xie,J. Ho,C. Murphy,G. Kaiser,B. Xu,and T. Y. Chen. Application of metamorphic testing to supervised classifiers[C]. In Proc. of the 9th International Conference on Quality Software (QSIC), 2009.
 
闫仕宇,阳小华,李萌,谢金森
【作者机构】 南华大学计算机科学技术学院;中核集团高可信计算学科重点实验室
【来    源】 《核科学与工程》 2017年第3期P380-385页

在线咨询
了解我们
网站介绍
经营许可
常见问题
联系我们
横格论文网联系方式
售前咨询:0311-85287508
夜间值班:0311-85525743
投诉电话:0311-85525743
授权服务
代理征稿
支付方式
工作日 8:00-22:00
经营许可
机构信用代码证
杂志社征稿授权
企业营业执照
银行开户许可证
其它
发表服务
在线投稿
征稿授权