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