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