?

基于蛻變測試的熱傳導程序的驗證測試研究

2017-07-07 11:57閆仕宇陽小華謝金森
核科學與工程 2017年3期
關鍵詞:熱傳導測試用例基準

閆仕宇,陽小華,李 萌,謝金森

(1.南華大學計算機科學技術學院,湖南 衡陽 4221001;2.中核集團高可信計算學科重點實驗室,湖南衡陽421001)

?

基于蛻變測試的熱傳導程序的驗證測試研究

閆仕宇1,陽小華1,李 萌2,謝金森2

(1.南華大學計算機科學技術學院,湖南 衡陽 4221001;2.中核集團高可信計算學科重點實驗室,湖南衡陽421001)

核電設計與分析軟件的數值計算程序的驗證測試過程,受制于代碼中數值算法執行的正確性,但存在Oracle問題,即測試人員很難構造或者得到程序的預期輸出來驗證程序計算結果是否正確。蛻變測試無需程序預期值來驗證結果,已應用于軟件測試領域,其蛻變關系是關鍵。本文應用蛻變測試技術,以堆芯燃料元件熱傳導程序為例,從數值計算模型中導出蛻變關系,實例初步驗證該蛻變關系的有效性,也表明蛻變測試技術可以在核電設計與分析軟件驗證測試中發揮作用。

燃料元件;熱傳導程序;驗證測試;蛻變測試

核電設計與分析軟件主要是模擬物理過程的數值計算程序,涉及堆芯設計分析、燃料管理、屏蔽與源項、燃料元件性能分析、熱工水力等程序的研發。在軟件質量方面,其用戶和開發者會面臨一個問題:如何證明計算機軟件的模擬過程是否正確[1]。軟件的驗證(verification)和確認(validation)(簡稱V&V)是保證軟件質量的重要手段。

美國航空航天研究所(AIAA)對驗證和確認的定義是:驗證(verification):確定模型的執行是否精確反映了開發者對理論概念的描述和求解過程。確認(validation):確定使用的計算模型反映真實世界的現象的精確程度。本文只關注驗證測試[2]。

測試面臨Oracle問題[3],即測試人員很難構造或者得到程序的預期輸出來驗證程序計算結果是否正確。在核電軟件測試領域,特別是數值計算程序的驗證往往很難直接給出其解析解,或者高精確度基準來進行測試,這是典型的測試Oracle問題。為此,目前傳統的核電設計與分析軟件程序驗證方法主要是用某些基準題或實測數據進行比較[4-6],但并不能保證這些基準題或實測數據足夠地滿足各種不同類型程序的驗證需要,因為基準題或實驗室數據比較有限,結果是存在部分未被驗證,這樣會把殘留的缺陷留到后期,將付出更大的代價。

值得借鑒的是蛻變測試(metamorphic testing)技術[7],該方法通過檢查程序的多個執行結果之間的關系來測試程序,不需要構造預期輸出。蛻變測試,作為一種測試無預期值程序的方法,應用于解決Oracle問題并發揮其作用。

本文針對核電設計與分析軟件驗證測試中的Oracle問題,應用蛻變測試技術,從軟件涉及的數值計算模型中導出蛻變關系,以一個簡單的堆芯燃料元件導熱程序測試為例,來說明蛻變測試技術應用于核電設計與分析軟件驗證測試中是可行的一種方法,也可作為傳統方法的一個補充。

1 驗證測試的概念

根據AIAA的計算流體力學標準委員會發布的計算流體力學模擬驗證與確認基本方法指出[8],驗證的基本策略是識別、量化并減少計算模型和數值求解過程中的錯誤。驗證就是評估計算模型是否真實地反映物理模型的問題,證明程序化的計算程序能否正確地求解。

驗證包含程序驗證和解驗證(計算驗證)兩個方面[9],其中程序驗證又分為數值算法驗證和軟件質量保證(software quality assurance,SQA),如圖1所示。

圖1 驗證活動Fig.1 Integrated view of verification assessment for computational physics

其中數值算法的驗證過程關注于代碼中數值算法執行的正確性。本文主要討論數值算法的驗證。

數值算法驗證方法一般是精確解析解、半解析基準解( benchmarks)、偏微分方程的高精度基準解進行對比驗證。

目前核電設計與分析軟件的數值算法驗證主要是采用基準題計算和實驗數據對比的方法。比如,對主輸運計算模塊進行驗證采用OECD/NEA 發布的C5G7-MOX 基準題[10];日本原子能機構(JAEA)發布的一系列輸運—燃耗基準問題[11];同時國際機構比如OECD/NEA,IAEA,ANS,JAEA等發布實驗數據可用來進行程序驗證。但是面臨著基準題數量少,實驗數據成本高的問題。

上述對比的驗證測試方法,對測試者而言,實際上給出了測試的預期輸出結果來進行驗證,但有些程序尚無基準題和實驗數據時,則面臨著驗證測試中典型的Oracle問題。蛻變測試技術,已經應用于解決Oracle問題領域。

2 蛻變測試技術的概念及應用

為了解決測試Oracle問題,研究者Tsong Yueh Chen在文獻[7]首先提出了蛻變測試(Metamorphic Testing)。比如測試函數 sin(x),對定義域內任意的兩個輸入x1,x2只要滿足x1=π-x2,就有sin(x1)=sin(x2),這種性質就是一種關于函數的蛻變關系,數學表達如下;

(1)

如果執行測試用例,程序結果不滿足(1)式,則程序中存在缺陷。執行上述測試過程,就是蛻變測試。通過檢測(1)式成立與否來判定程序的正確性。顯然蛻變測試是一種基于蛻變關系的測試。

蛻變測試,作為一種測試無預期值程序的方法,能確保軟件在測試時候展出它的蛻變性質。一種蛻變性質可以定義為一種關系,當改變輸入值時,根據函數,其輸出值得改變是可以預測的。蛻變測試技術最初主要應用于數值型程序中。比如測試計算三角函數的程序,測試計算指數函數的程序,測試計算行列式的程序等。近來其他的學者,在特別的領域應用到蛻變測試,比如生物信息學[12],網絡仿真[13],機器學習[14]等。

蛻變測試過程可以劃分為以下幾個階段,過程見圖2。

(1) 使用其他測試用例生成策略為待測程序生成原始測試用例;

(2) 若這些原始用例均通過測試,則為待測程序構造一組蛻變關系;

(3) 基于上述關系計算衍生測試用例;

(4) 檢查原始和衍生用例的輸出是否滿足相應的蛻變關系,得出測試結果。

圖2 蛻變測試示意圖Fig.2 Metamorphic test schematic diagram

有研究者將程序的研制分成物理建模(物理模型)和數值模擬(計算模型)兩個過程[8]。下面將從軟件涉及的計算模型導出蛻變關系,用于蛻變測試。

3 燃料元件熱傳導程序蛻變測試

核電設計與分析軟件涉及的主要是求解數學物理方程的數值計算程序。下面以一個簡單堆芯燃料元件熱傳導程序為例來進行蛻變測試研究。此程序主要是求解燃料元件內的溫度分布,以便檢驗元件工作狀況是否滿足熱工設計準則的要求。將從涉及的數值計算模型中導出蛻變關系,根據蛻變關系來進行蛻變測試。

3.1 熱傳導程序蛻變關系

用于計算燃料元件溫度場的通用的熱傳導微分方程為:

(2)

假設一個均勻的板狀燃料元件,忽略高度方向和寬度方向的堆芯無內熱源的導熱,一維的熱傳導瞬態方程為:

(3)

通過數值計算方法離散求解上述方程,編制相應程序,計算溫度燃料元件溫度分布,數值計算模型如下。

在時間和空間上作均勻剖分離散,設時間與空間步長分別為Δτ,Δx,用向后差分格式離散(3)式得,

(4)

進一步寫成矩陣算子形式為,

其中M為系數矩陣,T為溫度向量。

由Taylor公式容易得到,數值解T與真解T*的截斷誤差為T-T*=Ο(τ+(Δx)2),可知,如固定時間τ,截斷誤差只跟剖分尺寸Δx有關。Δx越小,誤差越小。

TL-T*=ΟL(τ+(Δx)2)

(5)

(6)

將(5)式與(6)式相減,得到,

因此,根據此數值解的特性,推導出蛻變關系。

(7)

(8)

根據(7)式,(8)式的蛻變關系,假如程序求解的溫度及截斷誤差不滿足上述蛻變關系,則說明程序存在缺陷。

3.2 蛻變測試

(1) 依據蛻變測試的過程及步驟,下面利用蛻變關系MR1,MR2進行蛻變測試。

① 原始測試用例描述;假設一個均勻的板狀燃料元件,如圖3所示。

圖3 板狀燃料元件Fig.3 plate-type fuel element

一維區間離散,空間和時間分別用x,τ軸來表示,如圖4所示。

圖4 時間和空間上的均勻網格離散Fig 4 The uniform grid on the discrete time and space

表1 初始測試用例case1Table 1 The initial test case1

執行原始測試用例,通過測試得到計算結果。

② 依據蛻變關系(7)式和(8)式,根據輸入關系式,剖分成倍數變化,得到衍生測試用例case2,case3,見表2、表3。

表2 衍生測試用例case2Table 2 The follow-up test case2

表3 衍生測試用例case3Table 3 The follow-up test case3

執行衍生測試用例case2,case3,得到計算結果,觀察程序是否違背蛻變關系。結果見表4。

表4 蛻變測試結果Table 4 Metamorphic test results

上述蛻變測試結果表明,計算結果滿足蛻變關系式MR1,MR2。

(2) 為了對比,驗證蛻變關系的有效性,在程序中植入一個錯誤;把原來程序中的第47行代碼while k~=M-1的循環條件改換成錯誤的代碼while k~=M-2,然后按照上述的測試用例重新計算,得到的結果見表5。

表5 錯誤代碼的蛻變測試結果Table 5 Metamorphic test of defect code results

從以上算例結果分析來看,很明顯植入錯誤代碼后,計算結果明顯不滿足蛻變關系MR1,也說明,此蛻變關系可以檢驗錯誤代碼的能力,則也進一步驗證了所推導的蛻變關系的有效性。

4 結論

本文分析了核電設計與分析軟件測試的現狀與存在的問題,即軟件測試Oracle問題,以堆芯燃料元件熱傳導計算程序為例,從偏微分方程中推導出蛻變關系,應用蛻變測試技術原理,實驗算例結果驗證了該蛻變關系的有效性。下一步將在核電設計與分析軟件所涉及的經典的數學物理方程中找出其本身蘊含蛻變關系,從軟件工程測試角度來看,系統開展蛻變測試的研究,得到有效的蛻變關系是對于核電設計與分析軟件程序的正確性驗證是非常有意義的。

[1] 劉占權,楊超,黨哈雷,等. COSINE軟件包物理系統V&V策略研究[J].原子能科學技術,2013,47(B06): 323-326.

[2] Staf A A. AIAA Guide for the Verification and Validation of Computational Fluid Dynamics Simulations[M]. American Institute of Aeronautics & Astronautics, 1998.

[3] 楊雪,施工,王侃. DRAGON掛載WIMS-D核數據庫的基準題計算驗證[J]. 核動力工程,2007,28(6):20-24.

[4] 李松陽,王侃,余綱林. MCNP溫度相關中子截面庫的研制及基準驗證[J].原子能科學技術,2009,43(5):385-388.

[5] 劉余,李峰,張虹,等. RIA基準題驗證堆芯三維物理-熱工耦合程序[J].原子能科學技術,2010,44(11):1328-1334.

[6] 胡家駒,馬續波,陳義學,等. 基于VENUS-2臨界基準的CosMC程序驗證[J].核動力工程,2014(s2):94-97.

[7] T.Y. Chen,S.C. Cheung,and S.M. Yiu. Metamorphic testing: a new approach for generating next test cases. Technical Report HKUST-CS98-01[R],University of Science and Technology,Hong Kong.1998.

[8] OBERKAMPF W L. Verification and validation for modeling and simulation in computational science and engineering applications[C]// Foundations for Verification and Validation in the 21stCentury Workshop. Maryland: Johns Hopkins University,2002.

[9] 王瑞利,林忠,袁國興.科學計算程序的驗證和確認[J]. 北京理工大學學報,2010,30(03):353-356.

[10] Lewis E E,Smith M A,Tsoulfanidis N,et al. Benchmark specification for deterministic 2-D/3-D MOX fuel assembly transport calculations without spatial homogenisation (C5G7 MOX)[R]. OECD/NEA report,NEA/NSC/DOC(2001)4.

[11] Yamamoto A,Ikehara T,Ito T,et al. Benchmark problem suite for reactor physics study of LWR next generation fuels [J]. J Nucl Sci Tech,2002,39(8): 900-912.

[12] T. Y. Chen,J. W. K. Ho,H. Liu,and X. Xie. An innovative approach for testing bioinformatics programs using metamorphic testing. BMC Bioinformatics,10(24),2009.

[13] T. Y. Chen,F.-C. Kuo,H. Liu,and S. Wang. Conformance testing of network simulators based on metamorphic testing technique. Lecture Notes in Computer Science,5522,2009.

[14] X. Xie,J. Ho,C. Murphy,G. Kaiser,B. Xu,and T. Y. Chen. Application of metamorphic testing to supervised classifiers[C]. In Proc. of the 9thInternational Conference on Quality Software (QSIC), 2009.

Research of Verification Test for Heat Transfer Program Based on Metamorphic Testing

YAN Shi-yu1,YANG Xiao-hua1,LI Meng2,XIE Jin-shen2

(1.School of Computer Science and Technology,University of South China,Hengyang of Hunan Prov. 421001,China; 2. CNNC key laboratory on high trusted computing,Hengyang of Hunan Prov. 421001,China)

Verification test process of numerical calculation program in Nuclear power design analysis software,focus on the correctness of the numerical algorithms execution. But it has Oracle problems,namely the testers are difficult to construct or get program expected output to verify the calculation results are correct. Metamorphic testing without expected output to verify the results has been applied in the field of software testing. Its key point is metamorphic relations. This paper introduces Metamorphic testing technology to address the above problems as mentioned. This technology deduces metamorphic relations from numerical calculation model in the software programs. Finally,the results of empirical studies demonstrate the effectiveness of the metamorphic relations in addition to show that Metamorphic testing technology can play a role in Verification test of Nuclear power design analysis software.

Fuel Element; Heat Transfer Calculation Program; Verification Test; Metamorphic Testing

2016-12 -21

湖南省教育廳科學研究項目(16C1380)

閆仕宇(1981—),男,湖南衡陽人,講師,博士生,現從事數值計算、軟件測試方面研究

TL339

A

0258-0918(2017)03-0380-06

猜你喜歡
熱傳導測試用例基準
一類三維逆時熱傳導問題的數值求解
冬天摸金屬為什么比摸木頭感覺涼?
回歸測試中測試用例優化技術研究與探索
具有非線性邊界條件的瞬態熱傳導方程的二擇一結果
基于SmartUnit的安全通信系統單元測試用例自動生成
下期要目
應如何確定行政處罰裁量基準
熱傳導方程的解的衰減性質研究
滑落還是攀爬
基于依賴結構的測試用例優先級技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合