王丽君,李 萌
基于蜕变测试的点燃耗程序验证研究
王丽君1,李萌2,3,4,*
(1. 南华大学 创新创业训练中心,湖南 衡阳 421001;2. 南华大学 计算机学院,湖南 衡阳 421001;3. 中核集团高可信计算重点学科实验室,湖南 衡阳 421001;4. 湖南省智能装备软件评测工程技术研究中心,湖南 衡阳 421001)
由于核素数量庞大,并且存在短半衰期核素和闭环燃耗链,难以构造预期输出,点燃耗程序验证面对测试预言问题。这使得高度依赖于测试预言的传统测试方法不可用,甚至无效。蜕变测试虽然是解决测试预言问题一种有效方法,因蜕变关系难以识别,因此尚未能在核设计软件验证中广泛应用。在分析燃耗计算物理性质的基础上,识别蜕变关系,并将蜕变测试应用于点燃耗程序的验证。实验表明在没有测试预言的情况下,通过比较程序的多次输出,蜕变测试能有效地检测出程序缺陷。此外,即使原始程序以及TTA检测失效,蜕变测试仍然揭示了代码缺陷。本研究为蜕变测试在核设计领域的应用提供有益参考。
点燃耗程序;蜕变关系;蜕变测试
燃耗计算刻画了核素随时间的衰变规律。同时,在反应堆的燃料增殖、消耗和反应性变化等方面,燃耗计算起着至关重要的作用。为了保持不同堆型的适用性,通常采用复杂核素系统,它覆盖了数千种同位素,例如:清华大学核研院的NUIT燃耗数据库超过3 000种核素,ORIGEN-S超过1 500种核素。燃耗程序计算高度复杂,因此,准确预测程序的输出是一项极具挑战的任务,这项工作称之为测试预言(Test Oracle)问题。
目前,已经有了一些反应堆物理程序验证研究,如测试充分性准则[1]和单元测试用例生成[2],但是,它们主要关注测试覆盖率的达成。为解决测试预言问题,研究者们提出了一系列方法,如蜕变测试(Metamorphic Testing,MT)[3]、多版本编程(N-version Programming)[4]和断言检测(Assertion Checking)[5]等。蜕变测试无需测试预言,依据蜕变关系(Metamorphic Relation,MR)能验证被测程序。它是一种消除燃耗程序测试预言问题的有效方法。
蜕变关系是应用蜕变测试的关键,它难以直接获取。当前研究主要有两种相对较系统的MR识别方法。陈等在对被测程序输入域划分的基础上提出基于分类选择框架的蜕变关系识别方法METRIC(METamorphic Relation Identification based on the Category-choice framework)[6],孙等在此基础上结合输出域划分提出了METRIC+(METamorphic Relation Identification plus based on the Category-choice framework)[7]。这些方法均是基于软件工程视角建立的,难以直接应用于核设计软件,如燃耗程序。领域知识是分析、获得MR的前提条件。对于燃耗程序,它的MR隐藏在数学物理方程、数值求解算法和程序代码之中。识别MR高度依赖于测试者对领域知识的理解,所以,目前MR主要来源于受过软件测试训练的行业专家,以及掌握一定领域知识的软件测试专家。
本文主要贡献如下:
(1)从点燃耗物理性质中识别出一条蜕变关系;
(2)通过实例展示如何将蜕变测试应用到基于切比雪夫有理近似方法(Chebyshev Rational Approximation Method,CRAM)的燃耗程序,以供研究者参考。理论上,本文识别的蜕变关系可直接用于其它点燃耗程序。
本文后续内容组织如下,下一节概述了关键技术,第二节介绍研究方法,第三节对实验结果展开讨论,最后是结论与下一步研究方向。
与本研究相关的工作主要包括核设计软件验证方法和蜕变测试。
目前,燃耗程序主要有三种测试方法:与经典程序比较、同实验装置的数据对比、采用基准题验证。例如,NESTOR的验证使用了秦山核电厂1、2号机组运行数据、“华龙1号”实验数据以及国际基准例题[8]。在核科学计算程序研发中广泛运用的是对比程序,例如燃耗专业用的ORIGEN,组件用的Apollo,堆芯用的SMART,栅元中计算中子扩散的DONJON以及中子输运的DRAGON,辐射屏蔽用的MCNP,系统程序用的RELAP,以及子通道用的COBRA等。本质上,以上方法属于直接比较方法,都是将实际输出与测试预言作对比,区别在于测试预言的来源不同。
对于运用新模型、新方法和新技术的新一代软件,可比较的对比程序几乎是不存在的。其次,因高成本、长周期、高放射性和高危险等因素,使得核物理实验受到限制。此外,新概念反应堆没有类似基准例题。同时,因中子能谱、几何构型、堆芯材料的不同,基准例题只适用于特定堆型。基于以上分析,由于缺乏期望结果,直接对比方法难以应用。因此,亟需新的软件测试方法。
蜕变测试无需构造单次执行期望值,通过考察多个结果之间是否违反蜕变关系,就可以达到验证程序的目的。因此,对于核设计程序,蜕变测试是传统测试方法的重要补充。
MT是利用成功测试用例中隐性信息的一项技术。它的一般过程如下:
(1)识别MR,从多次输入和对应输出中识别目标函数或算法的基本性质;
(2)生成衍生测试用例,利用MR将源测试用例转化为衍生测试用例;
(3)如果源测试用例和衍生测试用例的实际输出与特定MR冲突,那么说明被测程序存在缺陷。
MT已用于许多关键领域软件系统的验证和确认,如在两个知名的C语言编译器GCC和LLVM中发现超过100个缺陷[9];从机器学习库WEKA(Waikato Environment for Knowledge Analysis)的两个分类器朴素贝叶斯(Naïve Bayes)和最近邻(K-Nearest Neighbor,KNN)中检出缺陷[10];从自动驾驶汽车的激光雷达障碍物感知模块中发现致命缺陷[11];生物信息学的基因测序程序[12],MT与模糊测试结合用于图形驱动的测试[13]等。
核设计程序是典型的数值计算程序,依据程序研制的一般过程:物理方程建模、数值离散求解、程序自动计算,建立核设计程序的MR层次模型[14],以指导 MR 的识别[15]。可依据MR来源可将现有MR识别研究归为三类:
(1)从数理方程性质识别MR,如多群中子扩散方程的齐次性和共轭性[16],坡度和坡向量中图像的几何旋转属性[17],一阶线性常微分方程性质[18],基于Richardson外推方法的数学性质[19]等;
(2)从数值求解算法推导MR,如燃料元件热传导微分方程数值解的收敛特性[20],离散求积模型的等价变换性质[21],Dirichlet边界条件下Laplace方程数值计算模型[22]等;
(3)从程序代码结构与动态运行轨迹数据挖掘MR,假定MR为多项式使用基于搜索的方法求解系数[23],采用基因表达式编程(Gene Expression Programming,GEP)搜索MR符号表达式[24],利用程序不变量发现似然MR[25],运用核方法从程序控制流图预测MR[26],从矩阵计算程序中识别MR[27]等。
首先分析、推导MR,然后植入缺陷,根据MR设计测试输入对,驱动被测程序执行,检验实际输出对是否满足MR,如果违反MR说明检测出缺陷,MR有效。
点燃耗计算假设单个燃耗步内核素密度保持不变,当燃耗步大于某些核素半衰期时,它们的密度在燃耗步内出现较大变动,从而导致结果出现偏差,尤其当存在软件缺陷时,这一现象将被进一步放大。因此,蜕变测试利用这一物理性质识别蜕变关系,当初始核素成份与密度、中子通量、燃耗深度相同时,无论燃耗步长如何划分,最终的核素密度应相同,按MR模板格式[28]描述如下:
In the domain of点燃耗程序
Where初始核素成份与密度、中子通量相同
综上所述,心理护理及健康教育对冠心病心绞痛的影响突出,能够有效改善患者的心理状况,对于预后预后质量有着明显推动效果,值得推广普及。
将保持如下蜕变关系
MR1:
If燃耗深度相同
Then核子密度相同。
变异测试技术可以模拟软件缺陷。研究表明,绝对值插入(Absolute Value Insertion,ABS)、算术运算符替换(Arithmetic Operator Replacement,AOR)、逻辑运算符替换(Logical Connector Replacement,LCR)、关系运算符替换(Relational Operator Replacement,ROR)和一元操作符插入(Unary Operator Insertion,UOI)五个变异算子可达到绝大多数变异覆盖[29]。本文选取变异算子ABS对CRAM原始代码实施变异操作,构造变异体,模拟软件缺陷。
NUIT是清华大学核研院开发的Nuclear Inventory Tool的缩写[30],该程序实现了CRAM和线性子链方法(Transmutation Trajectory Analysis,TTA),本文使用NUIT作为实验对象。
修改NUIT源码生成变异版本,原始代码与变异代码如图1所示。
图1 原始与变异
本文设计的测试用例是为了验证在点燃耗程序上实施蜕变测试的可行性与有效性,展示其在缓解测试预言问题上的优势。今后工程应用前还需设计大量测试用例以评价各条蜕变关系的有效性,指导蜕变关系的选择。
燃料为富集度3.0的1吨纯铀(忽略氧的活化),采用固定中子通量3×1014n/(cm2·s),燃耗100天。
测试用例1:燃耗每步1天,共100步;
测试用例2:燃耗每步100天,共1步。
如果用例1的结果与用例2不同或存在较大偏差,则认为程序存在缺陷。
因TTA计算准确,常被用作期望值,此处将 TTA 结果作为测试预言,代表传统测试方法,以验证MT的有效性。由于TTA计算非常耗时,所以燃耗步长取10天,共10步。
因NUIT采用复杂核素系统,实验中只取主要裂变产物为观察对象。表1给出了case1、case2 条件下,原始程序、变异程序和 TTA的计算结果,以及变异程序之间、变异程序与原始程序、变异程序与 TTA 之间的相对偏差。
表1 case1和case2的结果与偏差
续表
Nuc Nameorigin of case1origin of case2TTA 10stepsmutation of case1mutation of case2Error between mutationError from mutation to origin with case1Error from mutation to origin with case2error from mutation to TTA with case1error from mutation to TTA with case2 101Ru0.434 5250.434 4110.434 545 10.434 5250.434 7020.000 40800.000 669 873-4.615 × 10-50.000 361 2 109Ag0.009 8590.009 8440.009 861 80.009 860.009 815-0.004 560.000 101 43-0.002 945 957-0.000 180 2-0.004 743 3 126Sn0.005 5640.005 5610.005 564 90.005 5640.005 564-3.20 × 10-500.000 539 471-0.000 159-0.000 159 129I0.049 1840.049 1670.049 187 60.049 1920.049 2050.000 2460.000 162 6550.000 772 8768.939 × 10-50.000 353 7 136Xe0.904 3090.904 0880.904 347 90.904 3080.904 7730.000 515-1.105 82 × 10-60.000 757 67-4.417 × 10-50.000 47 133Cs0.487 7670.487 670.487 785 30.487 8160.478 136-0.019 84①0.000 100 458-0.019 550 11①6.303 × 10-5-0.019 781 8① 138Ba0.542 8160.542 6990.542 836 60.542 7740.543 070.000 544-7.737 43 × 10-50.000 683 62-0.000 115 40.000 429 9 139La0.513 9560.513 8470.513 975 10.513 870.514 210.000 661-0.000 167 3290.000 706 436-0.000 204 40.000 457 1 142Ce0.465 1310.465 0220.465 150 80.465 050.465 3520.000 648-0.000 174 1440.000 709 644-0.000 216 60.000 432 6 144Pr1.65 × 10-51.65 × 10-51.65 × 10-51.65 × 10-51.65 × 10-500000 144Nd0.057 6040.057 5930.057 605 60.057 6060.058 4680.014 97①3.471 98 × 10-50.015 192 82①6.458 × 10-60.014 970 3① 147Sm0.004 460.004 4590.004 460 40.004 460.004 5970.030 673①00.030 948 64①-9.909 × 10-50.030 615 4① 153Eu0.018 2630.018 2540.018 264 70.018 2640.018 223-0.002 235.475 55 × 10-5-0.001 698 258-4.013 × 10-5-0.002 284 9 155Gd1.37 × 10-51.37 × 10-51.37 × 10-51.37 × 10-51.34 × 10-5-0.021 9①0-0.021 897 81①0-0.021 897 8① 234U0.000 6840.000 6840.000 683 60.000 6840.000 6840.000 68000.000 528 10.000 528 1 235U68.422 0368.422 0368.422 0368.422 0368.422 03-1.50 × 10-10002.338 × 10-92.338 × 10-9 236U1.591 0891.591 0891.591 089 21.591 11.592 180.000 6796.913 5 × 10-60.000 685 6946.778 × 10-60.000 685 6 238U2 447.5412 447.5412 447.540 92 447.5412 447.5410004.903 × 10-84.903 × 10-8 237Np0.038 6990.038 6990.038 699 20.038 70.038 138-0.014 51①2.584 05 × 10-5-0.014 496 49①2.098 × 10-5-0.014 501 3① 239Pu5.225 4165.225 4165.225 415 85.225 6055.221 407-0.000 83.616 94 × 10-5-0.000 767 2123.622 × 10-5-0.000 767 2 241Am0.000 2090.000 2090.000 208 60.000 2090.000 2180.044 45①00.043 062 2①0.002 104 90.045 257 7① 242Am5.56 × 10-75.56 × 10-75.56 × 10-75.57 × 10-75.81 × 10-70.043 088①0.001 798 5610.044 964 03①0.001 798 60.044 964① 242Cm9.11 × 10-69.11 × 10-69.11 × 10-69.11 × 10-69.05 × 10-6-0.006 590-0.006 586 1690-0.006 586 2 244Cm4.86 × 10-74.86 × 10-74.86 × 10-74.86 × 10-73.77 × 10-7-0.224 28①0-0.224 279 8①0-0.224 279 8①
注:① 偏差绝对值超过1%。
变异程序case1、2的偏差大多处于1.0×10-4水平,然而,核素95Mo、133Cs、144Nd、147Sm、155Gd、237Np、241Am、242Am、244Cm的偏差达到1.0×10-2级别,较平均水平增大了近100倍,尤其是244Cm达到了22%。表中相对偏差绝对值大于1%的单元用红色做了标记。同时,它们与原始程序、TTA的偏差也证实了上述核素结果异常。图2为变异程序相对偏差的柱状图,偏差在部分核素如244Cm发生了突变。
值得注意的是,当燃耗步取100步时,上述核素与原始程序、TTA的相对偏差极小,偏差在1×10-5水平,它们已无法发现代码缺陷,而MT仍然有效。
事实上,对于燃耗计算等数值计算程序,仅依靠采用测试预言的传统测试方法是极难发现程序缺陷的。但是,MT并不需要测试预言,这里引入原始程序结果是为了说明MT有效性。
TTA能发现的偏差异常,MT均能发现,并且当TTA面对case1失效时,MT仍能有效工作。研究表明,MT具有成本合理,揭错能力更强的优点[31]。
图2 Case1和Case2的变异程序偏差图
Figure 2The error of mutation results in Case 1 and Case 2
本研究运用蜕变测试解决燃耗程序测试预言问题,得到如下结论:
(1) MT不需要对比程序、基准例题,更具实用性和普适性;
(2) MT揭错能力优于直接对比测试预言的传统方法,具备较强的有效性、适用性,因此,MT在核电设计软件的测试中具有广阔的应用前景,值得深入研究;
(3) CRAM的结果偏差大多处于1×10-4以下水平,使用本MR时应着重关注超出该偏差水平的核素。
值得进一步研究的方向包括:
(1)针对反应堆特定领域建立蜕变关系库,如:堆芯物理、热工、屏蔽等;
(2)运用软件工程新技术半自动或自动识别蜕变关系,如GEP方法、基于搜索的软件工程方法等;
(3)研制反应堆设计软件的蜕变测试工具。
致谢
感谢清华大学核研院提供的实验程序,以及佘顶博士在燃耗算法上的帮助。
[1] MENG L,LI JUN W,SHI YU Y,et al. Research on Testing Adequacy Criterion of Reactor Physics Code of NESTOR[C/OL]//Proceedings of the 2017 25th International Conference on Nuclear Engineering. Shanghai,China:ASME International,2017:4.DOI:10.1115/ICONE25- 66383.
[2] MENG L,XIAO HUA Y,SHI YU Y,et al. An automatic generation tool for unit test case based on dynamic symbolic execution[C/OL]//Proceedings of the 2019 27th International Conference on Nuclear Engineering. Tsukuba,Ibaraki,Japan:American Society of Mechanical Engineers,2019:6.DOI:10.1299/jsmeicone.2019.27.1944.
[3] CHEN T Y,TSE T H,ZHIQUAN Z. Fault-based testing in the absence of an oracle[C/OL]//25th Annual International Computer Software and Applications Conference. DOI:10.1109/cmpsac.2001.960614.
[4] MANOLACHE L I,KOURIE D G. Software testing using model programs[J].Software-Practice and Experience,2001,31(13):1211-1236.DOI:10.1002/spe.409.
[5] ROSENBLUM D S. A Practical Approach to Programming with Assertions[J].IEEE Transactions on Software Engineering,1995,21(1):19-31.DOI:10.1109/32.341844.
[6] CHEN T Y,POON P L,XIE X. METRIC:METamorphic Relation Identification based on the Category-choice framework[J].Journal of Systems and Software,2016,116:177-190.DOI:10.1016/j.jss.2015.07.037.
[7] SUN C A,FU A,POON P L,et al. METRIC+:A Metamorphic Relation Identification Technique Based on Input plus Output Domains[J].IEEE Transactions on Software Engineering,2019.DOI:10.1109/tse.2019.2934848.
[8] LU Z,LI Q,LIU D,et al. Engineering Applicability Strengthening Design and Practice of NESTOR Software Package[J/OL].Hedongli Gongcheng/Nuclear Power Engineering,2018,39(1):161-164.DOI:10.13832/j. jnpe.2018.01.0161.
[9] LE V,AFSHARI M,SU Z. Compiler validation via equivalence modulo inputs[J].ACM SIGPLAN Notices,2014,49(6):216-226.DOI:10.1145/2666356.2594334.
[10] XIAOYUAN X,JOSHUA W. K. H,MURPHY C,et al. Testing and validating machine learning classifiers by metamorphic testing[J].Journal of Systems and Software,2011,84(4):544-558.DOI:10.1016/j.jss.2010.11.920.
[11] ZHOU Z Q,SUN L. Metamorphic testing of driverless cars[J].Communications of the ACM,2019,62(3):61-67.DOI:10.1145/3241979.
[12] CHEN T Y,HO J W K,LIU H,et al. An innovative approach for testing bioinformatics programs using metamorphic testing[J/OL].BMC Bioinformatics,2009,10(1):24.DOI:10.1186/1471-2105-10-24.
[13] BHAGYASHREE R. Google buys GraphicsFuzz,bringing fuzzy logic and metamorphic testing to Android graphics drivers|Packt Hub[EB/OL](2018)[2019-12-19].https://hub. packtpub.com/google-buys-graphicsfuzz-bringing-fuzzy-logic-and-metamorphic-testing-to-android-graphics-drivers/.
[14] MENG L,LIJUN W,SHIYU Y,et al. Metamorphic Relations Identification on Chebyshev Rational Approximation Method in the Nuclide Depletion Calculation Program[C]// 2020 IEEE 20th International Conference on Software Quality,Reliability and Security Companin(QRS-C). DOI:10.1109/QRS-C51114.2020.00013.
[15] MENG L,SHI YU Y,XIAO HUA Y,et al. Metamorphic Testing on Nuclide Inventory Tool[C/OL]//2020 International Conference on Nuclear Engineering. Online:American Society of Mechanical Engineers,2020:V003T14A001. DOI:10.1115/ICONE2020-16403.
[16]阳小华,闫仕宇,李萌,等.基于基准题的中子扩散程序蜕变测试验证方法[J/OL].原子能科学技术,2017,51(7):1239-1243.
[17]黄松,丁瑞浩,李辉,等.坡度坡向量算程序蜕变测试方法[J/OL].计算机应用,2013,33(06):1657-1745.
[18]邱舒婷,张志祥.解常微分方程程序的蜕变测试方法[J/OL].舰船电子工程,2016,36(12):29-33.
[19] SHI YU Y,XIAO HUA Y,GUO DONG C,et al. Richardson Extrapolation-Based Verification Method of Scientific Calculation Program without the Oracles:A Case Study[J].Mathematical Problems in Engineering,2019,2019:9.DOI:10.1155/2019/5782146.
[20]闫仕宇,阳小华,李萌,等.基于蜕变测试的热传导程序的验证测试研究[J/OL].核科学与工程
,2017,37(3):380-385.
[21] SHI YU Y,XIAO HUA Y,MENG L,et al. Research of Testing for Scientific Computing Software in the Area of Nuclear Power Based on Metamorphic Testing[C]//Proceedings of The 20th Pacific Basin Nuclear Conference. Beijing:Springer Singapore,2017:501-512.DOI:10.1007/978-981-10-2311-8_46.
[22] CHEN T Y,FENG J Q,TSE T H. Metamorphic testing of programs on partial differential equations:A case study[C]// Proceedings of the 26th International Computer Software and Applications Conference(COMPSAC’02).Oxford,UK,UK:IEEE,2002:327-333.DOI:10.1109/cmpsac. 2002.1045022.
[23] ZHANG J,CHEN J,HAO D,et al. Search-based inference of polynomial metamorphic relations[C]//ASE 2014- Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. New York,NY,USA:Association for Computing Machinery,Inc,2014:701- 712.DOI:10.1145/2642937.2642994.
[24] MENG L,LI JUN W,SHI YU Y,et al. Metamorphic Relation Generation for Physics Burnup Program Testing[J/OL].International Journal of Performability Engineering,2020,16(2):297-306.DOI:10.23940/ijpe.20.02.p12. 297306.
[25] ERNST M D,COCKRELL J,GRISWOLD W G,et al. Dynamically discovering likely program invariants to support program evolution[J].IEEE Transactions on Software Engineering,2001,27(2):99-123.DOI:10.1109/32.908957.
[26] KANEWALA U,BIEMAN J M,BEN-HUR A. Predicting metamorphic relations for testing scientific software:A machine learning approach using graph kernels[J].Software Testing Verification and Reliability,2016,26(3):245-269.DOI:10.1002/stvr.1594.
[27] RAHMAN K,KANEWALA U. Predicting Metamorphic Relations for Matrix Calculation Programs[C]// Proceedings- International Conference on Software Engineering. Gothenburg,Sweden:IEEE Computer Society,2018:10-13.DOI:10.1145/3193977.3193983.
[28] SEGURA S,DURÁN A,TROYA J,et al.A Template-Based Approach to Describing Metamorphic Relations[C]// Proceedings of the 2nd International Workshop on Metamorphic Testing. Buenos Aires,Argentina:IEEE Press,2017:3-9.DOI:10.1109/MET.2017.3.
[29] OFFUTT A J,LEE A,ROTHERMEL G,et al. An Experimental Determination of Sufficient Mutant Operators[J/OL].ACM Transactions on Software Engineering and Methodology,1996,5(2):99-118.DOI:10.1145/227607. 227610.
[30] JIAN L,DING S,LEI S,et al. The NUIT code for nuclide inventory calculations[J/OL].Annals of Nuclear Energy,2020,148:107690.DOI:10.1016/j.anucene.2020.107690.
[31]Hu P, Zhang Z, Chan W K, et al. An Empirical Comparison between Direct and Indirect Test Result Checking Approaches [C/OL]//Proceedings of the Third International Workshop on Software Quality Assurance, SOQUA 2006. New York, New York, USA: ACM Press, 2006: 6–13. DOI:10.1145/1188895.1188901.
Study on Verification of the Point Depletion Program Based on Metamorphic Testing
WANG Lijun1,LI Meng2,3,4,*
(1. Training Center of Innovation and Entrepreneurship,University of South China,Hengyang of Hunan Prov.421001,China;2. Computer School,University of South China,Hengyang of Hunan Prov.421001,China;3. Key Laboratory on High Trusted Computing,CNNC,Hengyang of Hunan Prov.421001,China;4. Software Testing and Assessment Engineering Research Center of Intelligence Equipment of Hunan Province,Hengyang of Hunan Prov.421001,China)
Due to a large number of nuclides and the existence of short half-life nuclides and closed-cycle nuclide depletion chains,it is hard to construct the expected outputs,and the verification of burnup programs faced test oracle problem. It makes these traditional test methods that rely heavily on test oracle unavailable or even ineffective. Although metamorphic testing is an effective method to solve the test oracle problem,it is difficult to identify the metamorphic relation. Hence it has not been widely used in nuclear design software verification. Based on the analysis of the physical properties of the point depletion calculation program,the metamorphic relation is identified,and the metamorphic testing is applied to those codes. It can be shown from experiments that metamorphic testing can still effectively detect program defects by comparing multiple outputs of the program without test oracle. Furthermore,when the original program and TTA work invalid,the metamorphic testing yet reveals the code faults. This study provides a useful reference for the application of metamorphic testing in the field of nuclear design.
Point depletion program;Metamorphic relation;Metamorphic testing
TP311.5
A
0258-0918(2021)05-0891-08
2020-12-21
国家科技重大专项(2019ZX06005001);湖南省教育厅科研项目(16C1362和19C1608);湖南省普通高等学校教学改革研究项目(湘教通(2018)436号-327);衡阳市科学计划发展计划项目(2015KG59)
王丽君(1979—),女,湖南邵阳人,实验师,硕士,现主要从事软件测试、EDA方面研究
李萌,E-mail:mlemon@usc.edu.cn