湯琪芬 蘆 韡 劉 婷 安 萍
(中國核動力研究設(shè)計院核反應(yīng)堆系統(tǒng)設(shè)計技術(shù)重點實驗室,四川 成都 610213)
在核反應(yīng)堆的工程設(shè)計活動中,用于堆芯中子學(xué)性能分析、燃料元件性能分析、熱工水力與安全分析等目的的一系列設(shè)計分析軟件均發(fā)揮著至關(guān)重要的作用。 為確保核安全相關(guān)計算機軟件的正確性與可靠性,在其投入工程應(yīng)用之前,必須開展嚴格的“驗證與確認”(verification and validation,V&V)工作。 由于堆芯數(shù)值計算軟件涉及大量先進的理論模型,計算流程復(fù)雜、迭代計算次數(shù)多、計算精度要求高,現(xiàn)階段第三方測試采用一次性集成測試方法,缺陷的定位和調(diào)試難度大,耗時遠超過靜態(tài)和單元測試。
為解決上述問題,本文結(jié)合核反應(yīng)堆系統(tǒng)堆芯數(shù)值計算類軟件特點,研究適用于堆芯數(shù)值計算軟件的漸增式集成測試方法,基于此方法開發(fā)漸增式集成測試框架,并應(yīng)用于先進節(jié)塊法堆芯三維少群中子學(xué)計算軟件CORCA-3D。該軟件為中國核動力研究設(shè)計院自主研發(fā)的壓水堆堆芯核設(shè)計軟件包TORCH V2.0中的重要軟件,具備壓水堆堆芯建模、臨界搜索、換料等相關(guān)計算設(shè)計分析能力。
集成測試是單元測試的邏輯擴展,一般集成測試之前,單元測試需要完成。 集成測試的實施方案有很多種,如一次性測試、自底向上集成測試、自頂向下集成測試、三明治集成測試、基干集成測試、分層集成測試等。
本文提出的針對堆芯數(shù)值計算軟件漸增式集成測試方法,是基于功能的分層集成測試,第一層是單功能模塊集成,第二層是根據(jù)理論計算流程和數(shù)據(jù)傳遞需求,進行組合功能模塊的集成測試。 開展堆芯數(shù)值計算軟件漸增式測試工作重點是根據(jù)理論進行功能模塊解耦并準(zhǔn)備相應(yīng)的測試例題。 如果是新開發(fā)的軟件,可通過模塊化,高內(nèi)聚、低耦合的方式優(yōu)化架構(gòu)設(shè)計,在開發(fā)時注意打樁測試,便于實現(xiàn)各個模塊解耦測試工作。 對已開發(fā)軟件進行漸增式集成測試時,主要有以下難點及較大的工作量:
(1)核心計算模塊解耦:堆芯數(shù)值計算軟件功能復(fù)雜, 數(shù)據(jù)量較大, 例如,CORCA-3D 軟件的燃耗計算、截面計算、擴散計算、功率重構(gòu)四個主要計算模塊,涉及堆芯布置,控制參數(shù),截面信息,計算選項,堆芯幾何參數(shù),中子學(xué)計算相關(guān)參數(shù),燃耗計算數(shù)據(jù)等大量物理數(shù)據(jù),且物理量之間關(guān)系復(fù)雜。
(2)測試數(shù)據(jù)研制及計算正確性判斷:漸增式集成測試需針對各單模塊和組合模塊,準(zhǔn)備輸入數(shù)據(jù)及可對比的計算結(jié)果數(shù)據(jù),以測試正確性。 部分功能模塊可通過基準(zhǔn)題準(zhǔn)備測試例題,但在很多情況下數(shù)值計算的預(yù)期輸出難以確定。
在本方面,北京科技大學(xué)計算機科學(xué)與技術(shù)系發(fā)現(xiàn)蛻變測試用于高性能數(shù)值模擬程序比較有效,并且可用于測試數(shù)據(jù)的生成。 四川大學(xué)計算機學(xué)院提出了基于數(shù)據(jù)挖掘技術(shù)和多目標(biāo)優(yōu)化、 基于主題模型、函數(shù)運行熱力圖的回歸測試用例優(yōu)先級確定方法,以及基于熱力圖的集成測試用例最小集確定方法。 南京大學(xué)軟件學(xué)院設(shè)計并實現(xiàn)了一組隨機方法與高精度計算相結(jié)合的檢測診斷工具來自動分析與診斷軟件中的數(shù)值穩(wěn)定性錯誤。
(3)自動化測試需求:在堆芯數(shù)值計算軟件研發(fā)和測試過程中,將需要對多個模塊多個測試例題進行反復(fù)迭代測試,且數(shù)據(jù)量大,可引進吸收以及自研自動化測試工具,建立適用于反應(yīng)堆數(shù)值計算軟件的集成化開發(fā)調(diào)試環(huán)境,并針對性開發(fā)相應(yīng)計算結(jié)果對比工具,提取核心數(shù)據(jù)結(jié)果,便于發(fā)現(xiàn)問題,提高開發(fā)人員與測試人員編譯調(diào)試工作效率。
綜述分析,可設(shè)計堆芯數(shù)值計算軟件的漸增式集成測試框架,如圖1 所示,設(shè)計圖形化界面如圖2 所示。
圖1 堆芯數(shù)值計算軟件的漸增式集成測試框架示意圖
本框架的具體功能如下:
圖形界面:設(shè)置執(zhí)行文件路徑,測試例題路徑、對比結(jié)果路徑,并生成配置文件,登入界面如圖2,主要設(shè)計了“項目—新建”“項目—打開”,以及單模塊及多模塊的新增導(dǎo)入或刪除;流程控制模塊:根據(jù)界面或用戶自編的配置文件,批量執(zhí)行目標(biāo)文件及相應(yīng)的測試例題, 在計算結(jié)束后調(diào)度選擇的結(jié)果對比模塊;結(jié)果對比模塊: 提供同名文件全數(shù)據(jù)對比或部分數(shù)據(jù),留有接口可嵌入根據(jù)軟件特點針對性的測試對比工具,通過對比選項進行對比。
圖2 堆芯數(shù)值計算軟件的漸增式集成測試框架登入界面
CORCA-3D 軟件分為界面與數(shù)值計算部分,其中,數(shù)值計算部分總代碼行數(shù)20 余萬,包括輸入、燃耗計算、截面計算、擴散計算、熱工反饋、功率重構(gòu)、輸出七個核心計算模塊以及44 個工程計算模塊。
本文解耦了燃耗計算BURN、截面計算XS、擴散計算NACK、功率重構(gòu)REC 四個模塊,梳理輸入輸出數(shù)據(jù),增加輸入輸出接口,并構(gòu)造相應(yīng)例題,形成單模塊以及漸增多模塊工程,具體如圖3 所示。
圖3 CORCA-3D 軟件核心計算模塊的漸增式測試邏輯圖
本文中測試例題主要是根據(jù)基準(zhǔn)題或同類軟件對比進行構(gòu)造, 后續(xù)可進一步采用合適的測試技術(shù),如模糊測試和蛻變測試等技術(shù),基于基準(zhǔn)題或真實例題,生成更具覆蓋性的有效例題。
圖5 執(zhí)行設(shè)置
項目創(chuàng)建和執(zhí)行界面如圖4、5 所示:
圖4 項目建立界面
選擇了CORCA-3D 軟件三個版本進行迭代測試,其中以Build01 版作為基準(zhǔn),各版本核心計算模塊之間差異如表1 所示。
表1 CORCA-3D 軟件版本對比差異
使用框架執(zhí)行測試后, 可以得到各個版本的功能模塊和組合功能集成的計算對比結(jié)果,如表2、3 所示。
表2 NACK 模塊Build03 二維IAEA 基準(zhǔn)問題的節(jié)塊歸一化功率分布對比
本文研究的漸增式集成測試方法提供了模塊級的計算結(jié)果評價,可解決一次性集成測試方法中的缺陷定位困難的問題,提升測試的準(zhǔn)確度及缺陷修復(fù)效率。 同時,搭建的漸增式集成測試框架可提供方便快捷的自動化測試,提高軟件開發(fā)效率。
表3 XS+NACK+BURN+REC 模塊Build02 版和Build03 版0 燃耗步FQ 對比