基于蜕变测试的热传导程序的验证测试研究

2017-07-07 11:57闫仕宇阳小华谢金森
核科学与工程 2017年3期
关键词:热传导测试用例基准

闫仕宇,阳小华,李 萌,谢金森

(1.南华大学计算机科学技术学院,湖南 衡阳 4221001;2.中核集团高可信计算学科重点实验室,湖南衡阳421001)



基于蜕变测试的热传导程序的验证测试研究

闫仕宇1,阳小华1,李 萌2,谢金森2

(1.南华大学计算机科学技术学院,湖南 衡阳 4221001;2.中核集团高可信计算学科重点实验室,湖南衡阳421001)

核电设计与分析软件的数值计算程序的验证测试过程,受制于代码中数值算法执行的正确性,但存在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)

假设一个均匀的板状燃料元件,忽略高度方向和宽度方向的堆芯无内热源的导热,一维的热传导瞬态方程为:

(3)

通过数值计算方法离散求解上述方程,编制相应程序,计算温度燃料元件温度分布,数值计算模型如下。

在时间和空间上作均匀剖分离散,设时间与空间步长分别为Δτ,Δx,用向后差分格式离散(3)式得,

(4)

进一步写成矩阵算子形式为,

其中M为系数矩阵,T为温度向量。

由Taylor公式容易得到,数值解T与真解T*的截断误差为T-T*=Ο(τ+(Δx)2),可知,如固定时间τ,截断误差只跟剖分尺寸Δx有关。Δx越小,误差越小。

TL-T*=ΟL(τ+(Δx)2)

(5)

(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

表1 初始测试用例case1Table 1 The initial test case1

执行原始测试用例,通过测试得到计算结果。

② 依据蜕变关系(7)式和(8)式,根据输入关系式,剖分成倍数变化,得到衍生测试用例case2,case3,见表2、表3。

表2 衍生测试用例case2Table 2 The follow-up test case2

表3 衍生测试用例case3Table 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 21stCentury 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 9thInternational Conference on Quality Software (QSIC), 2009.

Research of Verification Test for Heat Transfer Program Based on Metamorphic Testing

YAN Shi-yu1,YANG Xiao-hua1,LI Meng2,XIE Jin-shen2

(1.School of Computer Science and Technology,University of South China,Hengyang of Hunan Prov. 421001,China; 2. CNNC key laboratory on high trusted computing,Hengyang of Hunan Prov. 421001,China)

Verification test process of numerical calculation program in Nuclear power design analysis software,focus on the correctness of the numerical algorithms execution. But it has Oracle problems,namely the testers are difficult to construct or get program expected output to verify the calculation results are correct. Metamorphic testing without expected output to verify the results has been applied in the field of software testing. Its key point is metamorphic relations. This paper introduces Metamorphic testing technology to address the above problems as mentioned. This technology deduces metamorphic relations from numerical calculation model in the software programs. Finally,the results of empirical studies demonstrate the effectiveness of the metamorphic relations in addition to show that Metamorphic testing technology can play a role in Verification test of Nuclear power design analysis software.

Fuel Element; Heat Transfer Calculation Program; Verification Test; Metamorphic Testing

2016-12 -21

湖南省教育厅科学研究项目(16C1380)

闫仕宇(1981—),男,湖南衡阳人,讲师,博士生,现从事数值计算、软件测试方面研究

TL339

A

0258-0918(2017)03-0380-06

猜你喜欢
热传导测试用例基准
一类三维逆时热传导问题的数值求解
冬天摸金属为什么比摸木头感觉凉?
回归测试中测试用例优化技术研究与探索
具有非线性边界条件的瞬态热传导方程的二择一结果
基于SmartUnit的安全通信系统单元测试用例自动生成
下期要目
应如何确定行政处罚裁量基准
热传导方程的解的衰减性质研究
滑落还是攀爬
基于依赖结构的测试用例优先级技术