范超

摘要:蛻變測試技術能夠通過檢測輸入輸出數據之間滿足的關系來驗證程序的正確性,能有效解決復雜計算軟件輸出數據無法構造的問題,即Oracle問題。目前我國在核電軟件自主化進程中,驗證測試階段遇到的Oracle問題還在探索階段。該文介紹當前核電軟件的測試流程,并結合在核電軟件測試中的工作經驗,對蛻變測試(MT)技術在核電軟件PANTO(運行瞬態分析軟件)測試中的應用作進一步探討,為我國核電軟件自主化的測試工作提供借鑒和參考。
關鍵詞:蛻變測試;核電自主化;PANTO;應用探討
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0253-02
1 背景
目前我國在吸收采納國外先進核電技術的同時進行再創新,形成具有自主知識產權的核電技術,對我國的核電軟件事業進行發展和提升[1]。核電設計與分析軟件主要是通過模擬核反應堆的物理過程,依據物理模型設計開發的數值計算程序。核電軟件是一種數值計算類軟件,因此在運行過程中需要準確、高效地完成各種科學計算,這類型的計算程序具有計算因子多、數據精度要求高、計算代碼復雜等特征[2]。
我國核電軟件的測試已進入到驗證測試階段,數值計算類軟件的驗證中通常難以直接給出解析解,或者通過高精確度基準來進行測試,這是測試過程中Oracle問題。目前我國核電設計與分析軟件的驗證方法主要是通過某些實驗數據和基準題進行比較分析得出測試結果,但由于基準題和實驗數據有限,可能存在部分數據沒有被驗證從而帶來巨大的風險和代價[6]。
新一代測試技術——蛻變測試技術能夠通過檢測輸出數據之間滿足的關系來驗證程序的正確性,有效解決Oracle問題。本文介紹當前核電軟件的測試流程,并結合在核電軟件測試中的工作經驗,對蛻變測試(MT)技術在核電軟件測試中的應用作進一步探討,為我國核電軟件自主化的測試工作提供借鑒和參考。
2 核電軟件測試流程介紹
我國核電軟件測試的基本流程主要包括靜態測試、單元測試、集成測試、功能測試和回歸測試等。下面詳細介紹核電軟件的測試流程:
(1) 測試工作組的組建,以及工作計劃和日程安排。
(2) 收集測試需求,確認測試入口條件與開發的規范性。
(3) 測試計劃的制定與評審。計劃中包括測試目標、項目背景、測試范圍、測試需求、參考與提交文檔、進度安排、測試資源、測試策略和方法、管理方式等。
(4) 測試用例的設計與評審。測試用例是對測試場景和操作的描述,所以必須給出測試目標、測試對象、測試環境需求、輸入數據和操作步驟,概括為5W1H(Why、What、Where、Which、When、How)。
(5) 測試用例的執行與記錄。在測試用例執行前應做好測試環境的搭建、測試人員的培訓等準備工作,實際執行過程就會順利,執行的效率和質量都會有所保證。
(6) 測試結果分析與回歸測試。依據測試執行結果的記錄分析確定BUG,并形成缺陷報告文檔提供給程序員進行程序修改。
(7) 測試報告的編制與提交。
3 蛻變測試技術介紹
在軟件測試的過程當中我們常常會遇到期望輸出難以構造的問題。Chen等人提出蛻變測試的概念,在不需要構造預期輸出的情況下,通過檢查程序執行結果之間的關系來驗證程序的正確性[2]。蛻變測試的過程可分為如下幾個階段:
(1)生成原始測試用例(使用其他測試用例生成策略);
(2)分析程序的屬性并進行蛻變關系的構造;
(3) 基于蛻變關系衍生測試用例;
(4)檢測衍生用例與原始用例執行結果是否滿足蛻變關系,給出測試結果。
下圖為蛻變測試過程,其中關鍵的是蛻變關系的構造。
蛻變測試技術經過近十幾年的研究已經比較成熟,并在數值計算軟件、計算機圖形處理軟件等領域的測試中取得了廣泛的應用。本文結合項目實踐,將蛻變測試技術應用到核電軟件的測試過程中作進一步探索和嘗試。
4 蛻變測試技術在運行瞬態分析軟件PANTO測試中的應用探討
4.1 PANTO(運行瞬態分析軟件)簡介
運行瞬態分析軟件PANTO能夠模擬核電廠運行瞬態中關鍵參數的變化情況。
軟件基于成熟可靠的系統分析模型和特殊部件模型,采用模塊化的軟件設計理念,應用java語言(輸入界面部分)和面向對象的C++語言(核心計算部分),具有完全自主知識產權。作為系統級的設計與分析軟件,PANTO涉及的物理模型較多。主要包括一回路冷卻劑流量計算模型、中子動力學模型、堆芯傳熱計算模型、穩壓器模型、蒸汽發生器模型、控制系統模型[5]。
4.2 蛻變測試技術在PANTO軟件中應用的必要性
PANTO軟件屬于數值計算類軟件,這類程序復雜并且計算因子多。對于運行瞬態的分析,通常依賴于專門的分析軟件,比如用于法國M310核電廠的CATIA2軟件、用于美國AP1000核電廠的CENTS軟件等[5]。
由于PANTO軟件在測試過程中依賴于專門的分析軟件,導致測試成本非常之昂貴,同時測試效率也不高。測試過程中提供的基準題和實驗數據不能滿足測試需求,所以在測試過程中出現程序的預期輸出結果難易構造等問題。針對這類問題傳統的測試技術已經不能滿足測試需求,而新一代軟件測試技術—蛻變測試技術能有效解決此類問題。蛻變測試的關鍵是蛻變關系的構造,目前針對較簡單的數值計算類程序可通過數值計算方法、物理模型推導等方法得到蛻變關系,進而衍生測試用例。對于PANTO這種系統級復雜計算軟件,上述蛻變關系的構造方法對于測試人員提出了更高的要求。因此將蛻變測試技術應用到PANTO軟件的驗證測試中做些初步探討十分必要。endprint
4.3 蛻變測試技術在PANTO軟件中應用的可行性
我國核電產業經過近幾十年來的蓬勃發展,在核電廠運行過程中積累了大量實驗數據,這些實驗數據對于核電軟件的測試有很大用處。在核電軟件的驗證測試階段所使用的基準題和實驗數據,其中的數據就來自于核電軟件運行環境中具有的各種環境數據以及其他相關參數。
蛻變測試可以從成功的測試用例中衍生出新的測試用例,進一步挖掘成功用例中蘊含的有用信息,提高程序覆蓋率。基于PANTO軟件已有的基準題衍生出新的測試用例,在節約測試成本的同時提高測試效率。
結合核電廠大量的實驗數據,充分利用蛻變測試的這一優勢,在核電軟件測試過程中可以衍生出新的測試用例,對于提高核電軟件的質量和安全性具有一定的可行性。
5 結論
本文中僅以核電領域的計算類軟件為例進行闡述說明,另外針對航天領域、軍事國防領域等計算類軟件,也可以通過分析程序特點構造出實用的蛻變關系,進而有效地應用蛻變測試方法進行,解決預期輸出難以構造的難題,彌補傳統測試方法的不足。現有的蛻變測試技術雖然能夠有效解決Oracle問題,但是在研究過程中仍然存在一些問題,比如:蛻變關系難以構造,特別是對于計算復雜的軟件;原始測試用例的選取問題等。正因為存在著這樣的問題,同時也為蛻變測試技術在未來的研究和發展道路上提供了新的研究方向。總之,蛻變技術為我們打開了一個新的測試思路,對其進行深入的研究具有很高的實用價值,軟件開發無止境,測試研究亦無止境。
參考文獻:
[1] 陳曉凡.基于RuleWizard的定制規則在核電軟件中的應用[J].電腦知識與技術,2016,12(5):55-56.
[2] 朱玲莉,陽小華.核電軟件單元測試用例集約簡研究[D].湖南:南華大學,2013.
[3] 熊夢,劉小同,陽小華.基于K-V模型集成測試工具的設計與實現[J].電腦知識與技術,2017(8).
[4] 董國偉,徐寶文,陳林.蛻變測試技術綜述[J].計算機科學與探索,2009,3(2):131-132.
[5] 劉余,任春明,湯琪芬.核電廠運行瞬態分析軟件PANTO的研發[J].核技術,2017(8).
[6] 閆仕宇.基于蛻變測試的熱傳導程序的驗證測試研究[J].核科學與工程,2017(9).380-382.endprint