湯琪芬 蘆 韡 劉 婷 安 萍
(中國核動力研究設計院核反應堆系統設計技術重點實驗室,四川 成都 610213)
在核反應堆的工程設計活動中,用于堆芯中子學性能分析、燃料元件性能分析、熱工水力與安全分析等目的的一系列設計分析軟件均發揮著至關重要的作用。 為確保核安全相關計算機軟件的正確性與可靠性,在其投入工程應用之前,必須開展嚴格的“驗證與確認”(verification and validation,V&V)工作。 由于堆芯數值計算軟件涉及大量先進的理論模型,計算流程復雜、迭代計算次數多、計算精度要求高,現階段第三方測試采用一次性集成測試方法,缺陷的定位和調試難度大,耗時遠超過靜態和單元測試。
為解決上述問題,本文結合核反應堆系統堆芯數值計算類軟件特點,研究適用于堆芯數值計算軟件的漸增式集成測試方法,基于此方法開發漸增式集成測試框架,并應用于先進節塊法堆芯三維少群中子學計算軟件CORCA-3D。該軟件為中國核動力研究設計院自主研發的壓水堆堆芯核設計軟件包TORCH V2.0中的重要軟件,具備壓水堆堆芯建模、臨界搜索、換料等相關計算設計分析能力。
集成測試是單元測試的邏輯擴展,一般集成測試之前,單元測試需要完成。 集成測試的實施方案有很多種,如一次性測試、自底向上集成測試、自頂向下集成測試、三明治集成測試、基干集成測試、分層集成測試等。
本文提出的針對堆芯數值計算軟件漸增式集成測試方法,是基于功能的分層集成測試,第一層是單功能模塊集成,第二層是根據理論計算流程和數據傳遞需求,進行組合功能模塊的集成測試。 開展堆芯數值計算軟件漸增式測試工作重點是根據理論進行功能模塊解耦并準備相應的測試例題。 如果是新開發的軟件,可通過模塊化,高內聚、低耦合的方式優化架構設計,在開發時注意打樁測試,便于實現各個模塊解耦測試工作。 對已開發軟件進行漸增式集成測試時,主要有以下難點及較大的工作量:
(1)核心計算模塊解耦:堆芯數值計算軟件功能復雜, 數據量較大, 例如,CORCA-3D 軟件的燃耗計算、截面計算、擴散計算、功率重構四個主要計算模塊,涉及堆芯布置,控制參數,截面信息,計算選項,堆芯幾何參數,中子學計算相關參數,燃耗計算數據等大量物理數據,且物理量之間關系復雜。
(2)測試數據研制及計算正確性判斷:漸增式集成測試需針對各單模塊和組合模塊,準備輸入數據及可對比的計算結果數據,以測試正確性。 部分功能模塊可通過基準題準備測試例題,但在很多情況下數值計算的預期輸出難以確定。
在本方面,北京科技大學計算機科學與技術系發現蛻變測試用于高性能數值模擬程序比較有效,并且可用于測試數據的生成。 四川大學計算機學院提出了基于數據挖掘技術和多目標優化、 基于主題模型、函數運行熱力圖的回歸測試用例優先級確定方法,以及基于熱力圖的集成測試用例最小集確定方法。 南京大學軟件學院設計并實現了一組隨機方法與高精度計算相結合的檢測診斷工具來自動分析與診斷軟件中的數值穩定性錯誤。
(3)自動化測試需求:在堆芯數值計算軟件研發和測試過程中,將需要對多個模塊多個測試例題進行反復迭代測試,且數據量大,可引進吸收以及自研自動化測試工具,建立適用于反應堆數值計算軟件的集成化開發調試環境,并針對性開發相應計算結果對比工具,提取核心數據結果,便于發現問題,提高開發人員與測試人員編譯調試工作效率。
綜述分析,可設計堆芯數值計算軟件的漸增式集成測試框架,如圖1 所示,設計圖形化界面如圖2 所示。

圖1 堆芯數值計算軟件的漸增式集成測試框架示意圖
本框架的具體功能如下:
圖形界面:設置執行文件路徑,測試例題路徑、對比結果路徑,并生成配置文件,登入界面如圖2,主要設計了“項目—新建”“項目—打開”,以及單模塊及多模塊的新增導入或刪除;流程控制模塊:根據界面或用戶自編的配置文件,批量執行目標文件及相應的測試例題, 在計算結束后調度選擇的結果對比模塊;結果對比模塊: 提供同名文件全數據對比或部分數據,留有接口可嵌入根據軟件特點針對性的測試對比工具,通過對比選項進行對比。

圖2 堆芯數值計算軟件的漸增式集成測試框架登入界面
CORCA-3D 軟件分為界面與數值計算部分,其中,數值計算部分總代碼行數20 余萬,包括輸入、燃耗計算、截面計算、擴散計算、熱工反饋、功率重構、輸出七個核心計算模塊以及44 個工程計算模塊。
本文解耦了燃耗計算BURN、截面計算XS、擴散計算NACK、功率重構REC 四個模塊,梳理輸入輸出數據,增加輸入輸出接口,并構造相應例題,形成單模塊以及漸增多模塊工程,具體如圖3 所示。

圖3 CORCA-3D 軟件核心計算模塊的漸增式測試邏輯圖
本文中測試例題主要是根據基準題或同類軟件對比進行構造, 后續可進一步采用合適的測試技術,如模糊測試和蛻變測試等技術,基于基準題或真實例題,生成更具覆蓋性的有效例題。

圖5 執行設置
項目創建和執行界面如圖4、5 所示:

圖4 項目建立界面
選擇了CORCA-3D 軟件三個版本進行迭代測試,其中以Build01 版作為基準,各版本核心計算模塊之間差異如表1 所示。

表1 CORCA-3D 軟件版本對比差異
使用框架執行測試后, 可以得到各個版本的功能模塊和組合功能集成的計算對比結果,如表2、3 所示。

表2 NACK 模塊Build03 二維IAEA 基準問題的節塊歸一化功率分布對比
本文研究的漸增式集成測試方法提供了模塊級的計算結果評價,可解決一次性集成測試方法中的缺陷定位困難的問題,提升測試的準確度及缺陷修復效率。 同時,搭建的漸增式集成測試框架可提供方便快捷的自動化測試,提高軟件開發效率。

表3 XS+NACK+BURN+REC 模塊Build02 版和Build03 版0 燃耗步FQ 對比