王麗君,李 萌
基于蛻變測試的點燃耗程序驗證研究
王麗君1,李萌2,3,4,*
(1. 南華大學(xué) 創(chuàng)新創(chuàng)業(yè)訓(xùn)練中心,湖南 衡陽 421001;2. 南華大學(xué) 計算機學(xué)院,湖南 衡陽 421001;3. 中核集團高可信計算重點學(xué)科實驗室,湖南 衡陽 421001;4. 湖南省智能裝備軟件評測工程技術(shù)研究中心,湖南 衡陽 421001)
由于核素數(shù)量龐大,并且存在短半衰期核素和閉環(huán)燃耗鏈,難以構(gòu)造預(yù)期輸出,點燃耗程序驗證面對測試預(yù)言問題。這使得高度依賴于測試預(yù)言的傳統(tǒng)測試方法不可用,甚至無效。蛻變測試雖然是解決測試預(yù)言問題一種有效方法,因蛻變關(guān)系難以識別,因此尚未能在核設(shè)計軟件驗證中廣泛應(yīng)用。在分析燃耗計算物理性質(zhì)的基礎(chǔ)上,識別蛻變關(guān)系,并將蛻變測試應(yīng)用于點燃耗程序的驗證。實驗表明在沒有測試預(yù)言的情況下,通過比較程序的多次輸出,蛻變測試能有效地檢測出程序缺陷。此外,即使原始程序以及TTA檢測失效,蛻變測試仍然揭示了代碼缺陷。本研究為蛻變測試在核設(shè)計領(lǐng)域的應(yīng)用提供有益參考。
點燃耗程序;蛻變關(guān)系;蛻變測試
燃耗計算刻畫了核素隨時間的衰變規(guī)律。同時,在反應(yīng)堆的燃料增殖、消耗和反應(yīng)性變化等方面,燃耗計算起著至關(guān)重要的作用。為了保持不同堆型的適用性,通常采用復(fù)雜核素系統(tǒng),它覆蓋了數(shù)千種同位素,例如:清華大學(xué)核研院的NUIT燃耗數(shù)據(jù)庫超過3 000種核素,ORIGEN-S超過1 500種核素。燃耗程序計算高度復(fù)雜,因此,準(zhǔn)確預(yù)測程序的輸出是一項極具挑戰(zhàn)的任務(wù),這項工作稱之為測試預(yù)言(Test Oracle)問題。
目前,已經(jīng)有了一些反應(yīng)堆物理程序驗證研究,如測試充分性準(zhǔn)則[1]和單元測試用例生成[2],但是,它們主要關(guān)注測試覆蓋率的達(dá)成。為解決測試預(yù)言問題,研究者們提出了一系列方法,如蛻變測試(Metamorphic Testing,MT)[3]、多版本編程(N-version Programming)[4]和斷言檢測(Assertion Checking)[5]等。蛻變測試無需測試預(yù)言,依據(jù)蛻變關(guān)系(Metamorphic Relation,MR)能驗證被測程序。它是一種消除燃耗程序測試預(yù)言問題的有效方法。
蛻變關(guān)系是應(yīng)用蛻變測試的關(guān)鍵,它難以直接獲取。當(dāng)前研究主要有兩種相對較系統(tǒng)的MR識別方法。陳等在對被測程序輸入域劃分的基礎(chǔ)上提出基于分類選擇框架的蛻變關(guān)系識別方法METRIC(METamorphic Relation Identification based on the Category-choice framework)[6],孫等在此基礎(chǔ)上結(jié)合輸出域劃分提出了METRIC+(METamorphic Relation Identification plus based on the Category-choice framework)[7]。這些方法均是基于軟件工程視角建立的,難以直接應(yīng)用于核設(shè)計軟件,如燃耗程序。領(lǐng)域知識是分析、獲得MR的前提條件。對于燃耗程序,它的MR隱藏在數(shù)學(xué)物理方程、數(shù)值求解算法和程序代碼之中。識別MR高度依賴于測試者對領(lǐng)域知識的理解,所以,目前MR主要來源于受過軟件測試訓(xùn)練的行業(yè)專家,以及掌握一定領(lǐng)域知識的軟件測試專家。
本文主要貢獻(xiàn)如下:
(1)從點燃耗物理性質(zhì)中識別出一條蛻變關(guān)系;
(2)通過實例展示如何將蛻變測試應(yīng)用到基于切比雪夫有理近似方法(Chebyshev Rational Approximation Method,CRAM)的燃耗程序,以供研究者參考。理論上,本文識別的蛻變關(guān)系可直接用于其它點燃耗程序。
本文后續(xù)內(nèi)容組織如下,下一節(jié)概述了關(guān)鍵技術(shù),第二節(jié)介紹研究方法,第三節(jié)對實驗結(jié)果展開討論,最后是結(jié)論與下一步研究方向。
與本研究相關(guān)的工作主要包括核設(shè)計軟件驗證方法和蛻變測試。
目前,燃耗程序主要有三種測試方法:與經(jīng)典程序比較、同實驗裝置的數(shù)據(jù)對比、采用基準(zhǔn)題驗證。例如,NESTOR的驗證使用了秦山核電廠1、2號機組運行數(shù)據(jù)、“華龍1號”實驗數(shù)據(jù)以及國際基準(zhǔn)例題[8]。在核科學(xué)計算程序研發(fā)中廣泛運用的是對比程序,例如燃耗專業(yè)用的ORIGEN,組件用的Apollo,堆芯用的SMART,柵元中計算中子擴散的DONJON以及中子輸運的DRAGON,輻射屏蔽用的MCNP,系統(tǒng)程序用的RELAP,以及子通道用的COBRA等。本質(zhì)上,以上方法屬于直接比較方法,都是將實際輸出與測試預(yù)言作對比,區(qū)別在于測試預(yù)言的來源不同。
對于運用新模型、新方法和新技術(shù)的新一代軟件,可比較的對比程序幾乎是不存在的。其次,因高成本、長周期、高放射性和高危險等因素,使得核物理實驗受到限制。此外,新概念反應(yīng)堆沒有類似基準(zhǔn)例題。同時,因中子能譜、幾何構(gòu)型、堆芯材料的不同,基準(zhǔn)例題只適用于特定堆型?;谝陨戏治觯捎谌狈ζ谕Y(jié)果,直接對比方法難以應(yīng)用。因此,亟需新的軟件測試方法。
蛻變測試無需構(gòu)造單次執(zhí)行期望值,通過考察多個結(jié)果之間是否違反蛻變關(guān)系,就可以達(dá)到驗證程序的目的。因此,對于核設(shè)計程序,蛻變測試是傳統(tǒng)測試方法的重要補充。
MT是利用成功測試用例中隱性信息的一項技術(shù)。它的一般過程如下:
(1)識別MR,從多次輸入和對應(yīng)輸出中識別目標(biāo)函數(shù)或算法的基本性質(zhì);
(2)生成衍生測試用例,利用MR將源測試用例轉(zhuǎn)化為衍生測試用例;
(3)如果源測試用例和衍生測試用例的實際輸出與特定MR沖突,那么說明被測程序存在缺陷。
MT已用于許多關(guān)鍵領(lǐng)域軟件系統(tǒng)的驗證和確認(rèn),如在兩個知名的C語言編譯器GCC和LLVM中發(fā)現(xiàn)超過100個缺陷[9];從機器學(xué)習(xí)庫WEKA(Waikato Environment for Knowledge Analysis)的兩個分類器樸素貝葉斯(Na?ve Bayes)和最近鄰(K-Nearest Neighbor,KNN)中檢出缺陷[10];從自動駕駛汽車的激光雷達(dá)障礙物感知模塊中發(fā)現(xiàn)致命缺陷[11];生物信息學(xué)的基因測序程序[12],MT與模糊測試結(jié)合用于圖形驅(qū)動的測試[13]等。
核設(shè)計程序是典型的數(shù)值計算程序,依據(jù)程序研制的一般過程:物理方程建模、數(shù)值離散求解、程序自動計算,建立核設(shè)計程序的MR層次模型[14],以指導(dǎo) MR 的識別[15]??梢罁?jù)MR來源可將現(xiàn)有MR識別研究歸為三類:
(1)從數(shù)理方程性質(zhì)識別MR,如多群中子擴散方程的齊次性和共軛性[16],坡度和坡向量中圖像的幾何旋轉(zhuǎn)屬性[17],一階線性常微分方程性質(zhì)[18],基于Richardson外推方法的數(shù)學(xué)性質(zhì)[19]等;
(2)從數(shù)值求解算法推導(dǎo)MR,如燃料元件熱傳導(dǎo)微分方程數(shù)值解的收斂特性[20],離散求積模型的等價變換性質(zhì)[21],Dirichlet邊界條件下Laplace方程數(shù)值計算模型[22]等;
(3)從程序代碼結(jié)構(gòu)與動態(tài)運行軌跡數(shù)據(jù)挖掘MR,假定MR為多項式使用基于搜索的方法求解系數(shù)[23],采用基因表達(dá)式編程(Gene Expression Programming,GEP)搜索MR符號表達(dá)式[24],利用程序不變量發(fā)現(xiàn)似然MR[25],運用核方法從程序控制流圖預(yù)測MR[26],從矩陣計算程序中識別MR[27]等。
首先分析、推導(dǎo)MR,然后植入缺陷,根據(jù)MR設(shè)計測試輸入對,驅(qū)動被測程序執(zhí)行,檢驗實際輸出對是否滿足MR,如果違反MR說明檢測出缺陷,MR有效。
點燃耗計算假設(shè)單個燃耗步內(nèi)核素密度保持不變,當(dāng)燃耗步大于某些核素半衰期時,它們的密度在燃耗步內(nèi)出現(xiàn)較大變動,從而導(dǎo)致結(jié)果出現(xiàn)偏差,尤其當(dāng)存在軟件缺陷時,這一現(xiàn)象將被進(jìn)一步放大。因此,蛻變測試?yán)眠@一物理性質(zhì)識別蛻變關(guān)系,當(dāng)初始核素成份與密度、中子通量、燃耗深度相同時,無論燃耗步長如何劃分,最終的核素密度應(yīng)相同,按MR模板格式[28]描述如下:
In the domain of點燃耗程序
Where初始核素成份與密度、中子通量相同
綜上所述,心理護理及健康教育對冠心病心絞痛的影響突出,能夠有效改善患者的心理狀況,對于預(yù)后預(yù)后質(zhì)量有著明顯推動效果,值得推廣普及。
將保持如下蛻變關(guān)系
MR1:
If燃耗深度相同
Then核子密度相同。
變異測試技術(shù)可以模擬軟件缺陷。研究表明,絕對值插入(Absolute Value Insertion,ABS)、算術(shù)運算符替換(Arithmetic Operator Replacement,AOR)、邏輯運算符替換(Logical Connector Replacement,LCR)、關(guān)系運算符替換(Relational Operator Replacement,ROR)和一元操作符插入(Unary Operator Insertion,UOI)五個變異算子可達(dá)到絕大多數(shù)變異覆蓋[29]。本文選取變異算子ABS對CRAM原始代碼實施變異操作,構(gòu)造變異體,模擬軟件缺陷。
NUIT是清華大學(xué)核研院開發(fā)的Nuclear Inventory Tool的縮寫[30],該程序?qū)崿F(xiàn)了CRAM和線性子鏈方法(Transmutation Trajectory Analysis,TTA),本文使用NUIT作為實驗對象。
修改NUIT源碼生成變異版本,原始代碼與變異代碼如圖1所示。
圖1 原始與變異
本文設(shè)計的測試用例是為了驗證在點燃耗程序上實施蛻變測試的可行性與有效性,展示其在緩解測試預(yù)言問題上的優(yōu)勢。今后工程應(yīng)用前還需設(shè)計大量測試用例以評價各條蛻變關(guān)系的有效性,指導(dǎo)蛻變關(guān)系的選擇。
燃料為富集度3.0的1噸純鈾(忽略氧的活化),采用固定中子通量3×1014n/(cm2·s),燃耗100天。
測試用例1:燃耗每步1天,共100步;
測試用例2:燃耗每步100天,共1步。
如果用例1的結(jié)果與用例2不同或存在較大偏差,則認(rèn)為程序存在缺陷。
因TTA計算準(zhǔn)確,常被用作期望值,此處將 TTA 結(jié)果作為測試預(yù)言,代表傳統(tǒng)測試方法,以驗證MT的有效性。由于TTA計算非常耗時,所以燃耗步長取10天,共10步。
因NUIT采用復(fù)雜核素系統(tǒng),實驗中只取主要裂變產(chǎn)物為觀察對象。表1給出了case1、case2 條件下,原始程序、變異程序和 TTA的計算結(jié)果,以及變異程序之間、變異程序與原始程序、變異程序與 TTA 之間的相對偏差。
表1 case1和case2的結(jié)果與偏差
續(xù)表
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的偏差達(dá)到1.0×10-2級別,較平均水平增大了近100倍,尤其是244Cm達(dá)到了22%。表中相對偏差絕對值大于1%的單元用紅色做了標(biāo)記。同時,它們與原始程序、TTA的偏差也證實了上述核素結(jié)果異常。圖2為變異程序相對偏差的柱狀圖,偏差在部分核素如244Cm發(fā)生了突變。
值得注意的是,當(dāng)燃耗步取100步時,上述核素與原始程序、TTA的相對偏差極小,偏差在1×10-5水平,它們已無法發(fā)現(xiàn)代碼缺陷,而MT仍然有效。
事實上,對于燃耗計算等數(shù)值計算程序,僅依靠采用測試預(yù)言的傳統(tǒng)測試方法是極難發(fā)現(xiàn)程序缺陷的。但是,MT并不需要測試預(yù)言,這里引入原始程序結(jié)果是為了說明MT有效性。
TTA能發(fā)現(xiàn)的偏差異常,MT均能發(fā)現(xiàn),并且當(dāng)TTA面對case1失效時,MT仍能有效工作。研究表明,MT具有成本合理,揭錯能力更強的優(yōu)點[31]。
圖2 Case1和Case2的變異程序偏差圖
Figure 2The error of mutation results in Case 1 and Case 2
本研究運用蛻變測試解決燃耗程序測試預(yù)言問題,得到如下結(jié)論:
(1) MT不需要對比程序、基準(zhǔn)例題,更具實用性和普適性;
(2) MT揭錯能力優(yōu)于直接對比測試預(yù)言的傳統(tǒng)方法,具備較強的有效性、適用性,因此,MT在核電設(shè)計軟件的測試中具有廣闊的應(yīng)用前景,值得深入研究;
(3) CRAM的結(jié)果偏差大多處于1×10-4以下水平,使用本MR時應(yīng)著重關(guān)注超出該偏差水平的核素。
值得進(jìn)一步研究的方向包括:
(1)針對反應(yīng)堆特定領(lǐng)域建立蛻變關(guān)系庫,如:堆芯物理、熱工、屏蔽等;
(2)運用軟件工程新技術(shù)半自動或自動識別蛻變關(guān)系,如GEP方法、基于搜索的軟件工程方法等;
(3)研制反應(yīng)堆設(shè)計軟件的蛻變測試工具。
致謝
感謝清華大學(xué)核研院提供的實驗程序,以及佘頂博士在燃耗算法上的幫助。
[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,F(xiàn)U 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]陽小華,閆仕宇,李萌,等.基于基準(zhǔn)題的中子擴散程序蛻變測試驗證方法[J/OL].原子能科學(xué)技術(shù),2017,51(7):1239-1243.
[17]黃松,丁瑞浩,李輝,等.坡度坡向量算程序蛻變測試方法[J/OL].計算機應(yīng)用,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]閆仕宇,陽小華,李萌,等.基于蛻變測試的熱傳導(dǎo)程序的驗證測試研究[J/OL].核科學(xué)與工程
,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,F(xiàn)ENG 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);湖南省普通高等學(xué)校教學(xué)改革研究項目(湘教通(2018)436號-327);衡陽市科學(xué)計劃發(fā)展計劃項目(2015KG59)
王麗君(1979—),女,湖南邵陽人,實驗師,碩士,現(xiàn)主要從事軟件測試、EDA方面研究
李萌,E-mail:mlemon@usc.edu.cn