靳永毅, 王 楠,張占軍,郭 猛,鄧 鵬,李志軍,孫同果
(中核控制系統(tǒng)工程有限公司,北京 100176)
核測量系統(tǒng)作為反應(yīng)堆保護(hù)和控制系統(tǒng)的重要組成部分,其軟件主要實(shí)現(xiàn)的功能為測量中子注量率、計(jì)算反應(yīng)堆功率與周期、定值比較、反應(yīng)堆保護(hù)信號輸出等[1];軟件集成測試主要是檢查軟件單位之間的接口是否正確以及軟件單位之間的邏輯是否正確,其結(jié)果對后續(xù)的系統(tǒng)測試存在著重要影響[2]。由此可見,核測量系統(tǒng)軟件集成測試的質(zhì)量將直接影響到整個(gè)核測量系統(tǒng)的穩(wěn)定性。長期以來核測量系統(tǒng)的軟件集成測試一直使用人工的測試方法,由于該系統(tǒng)軟件邏輯組合多、接口數(shù)量多,同時(shí)受限于測試者素質(zhì)的千差萬別等原因,如何保證測試的質(zhì)量與提高測試效率一直是測試工作的一個(gè)重點(diǎn)。
圖1 帶有自動化測試工具的核測量系統(tǒng)構(gòu)成Fig.1 Structure of neutron measurement system with automatic testing tools
圖2 自動化測試工具網(wǎng)絡(luò)配置圖Fig.2 Automation test tool network configuration diagram
經(jīng)過工程實(shí)際應(yīng)用,在軟件集成測試中引入自動化測試工具,應(yīng)用自動測試原理通過自動發(fā)送和接收邏輯運(yùn)算后的數(shù)據(jù),可以極大地提高測試質(zhì)量,保證測試效率。
如圖1 所示,核測量系統(tǒng)由4 個(gè)相同且獨(dú)立的通道組成,每個(gè)通道為一個(gè)獨(dú)立的保護(hù)柜,柜內(nèi)裝有源量程、中間量程、功率量程的調(diào)理單元與處理單元,每個(gè)量程的調(diào)理單元與處理單元組合成為一個(gè)站,即1 號保護(hù)柜中的源量程處理單元與源量程調(diào)理單元為1 號站;1 號柜內(nèi)的中間量程處理單元與中間量程調(diào)理單位為2 號站,以此類推[3]。
工程師站:為可移動的計(jì)算機(jī),用來對保護(hù)柜處理器機(jī)箱進(jìn)行下裝及監(jiān)視,還可對各個(gè)量程的參數(shù)進(jìn)行設(shè)定。
自動化測試工裝:為一臺計(jì)算機(jī),通過交換機(jī)與工程師站、核測量系統(tǒng)的各個(gè)控制站處于同一個(gè)網(wǎng)絡(luò),可以通過相關(guān)的通信協(xié)議進(jìn)行數(shù)據(jù)收發(fā)及處理。
如圖2 自動化測試工具網(wǎng)絡(luò)配置圖可知,自動化測試工具與工程師站及核測量系統(tǒng)處于同一個(gè)網(wǎng)絡(luò)中的同一網(wǎng)段,通過設(shè)置不同的IP 地址來區(qū)別具體的設(shè)備,核測量系統(tǒng)保護(hù)柜中各站的IP 地址由撥碼開關(guān)來設(shè)置。根據(jù)系統(tǒng)的IO 點(diǎn)表,制作自動化測試工具需要使用的點(diǎn)表,并且導(dǎo)入測試工具。自動化測試工具可以通過通信協(xié)議來同步核測量系統(tǒng)的組態(tài),將組態(tài)中的IO 變量與已經(jīng)導(dǎo)入系統(tǒng)的IO點(diǎn)表進(jìn)行對比,對變量名稱不一致、變量缺失等問題進(jìn)行提示,通過修改保證兩者完全一致。
之后導(dǎo)入根據(jù)系統(tǒng)組態(tài)編寫的測試用例,同理,系統(tǒng)會根據(jù)組態(tài)中的變量名稱來檢查導(dǎo)入測試工具的變量名稱,對錯誤內(nèi)容進(jìn)行提示。
測試時(shí),根據(jù)需要在測試用例中規(guī)定好輸入變量、輸出變量、期望輸入值與每一步的時(shí)間間隔,測試工具即會使用相關(guān)的通信協(xié)議來強(qiáng)制輸入變量,并讀回輸入變量通過邏輯運(yùn)算得到的測試結(jié)果,此時(shí)輸出變量會自動填寫在測試用例中并與預(yù)期結(jié)果進(jìn)行比較,不一致的地方會在測試結(jié)果一欄中標(biāo)識錯誤。
自動化測試工具使用的測試用例是基于Excel 編寫的模板化用例見表1,在測試用例中規(guī)定好了站號、輸入變量、輸出變量的期望值和輸出變量的實(shí)際值、步長等參數(shù)。其中,站號是當(dāng)前變量所處控制器的名稱;輸入變量和輸出變量是邏輯圖確定的當(dāng)前測試邏輯輸入變量與輸出變量;在步驟一行中對應(yīng)的是步驟序號;在步驟一列中分別是步長即執(zhí)行該步驟所需要的時(shí)間、輸入信號對應(yīng)的輸入值和由輸入信號數(shù)值及邏輯組合計(jì)算出來的輸出結(jié)果期望值,輸出結(jié)果的實(shí)際值由測試工裝自動填寫。
測試用例編寫完成后需要導(dǎo)入到測試工裝中,在測試導(dǎo)入工裝之前需要先將輸入輸出變量點(diǎn)表及其對應(yīng)的信號類型、接線點(diǎn)、量程等先導(dǎo)入組態(tài),使用表1 中測試工裝的系統(tǒng)組態(tài)功能導(dǎo)入輸入輸出變量點(diǎn)表,并通過網(wǎng)絡(luò)與工程師站中保存輸入輸出信息同步,在同步過程中會提示變量名稱不一致、類型不一致、數(shù)量不一致等信息。在確定組態(tài)無誤之后,使用如圖3 的組態(tài)管理功能將測試用例導(dǎo)入,在測試用例導(dǎo)入時(shí)會提示站號錯誤、變量名稱不一致、類型不一致等信息,修改相關(guān)錯誤后就會顯示用例導(dǎo)入成功,導(dǎo)入成功后保存需要使用的用例即可。
表1 測試用例示意圖Table 1 Test case diagram
利用用例管理功能對用例進(jìn)行分類,在核測量系統(tǒng)中通常按照控制器對應(yīng)的站號進(jìn)行分類管理,以便維護(hù)用例;也可以對分類后的用例更名加入版本、日期等內(nèi)容。
在圖3 的系統(tǒng)組態(tài)功能中選擇需要執(zhí)行的用例后跳轉(zhuǎn)到執(zhí)行畫面即開始對用例測試。用例的執(zhí)行分為兩種形式:自動執(zhí)行和單步執(zhí)行。自動執(zhí)行即按照規(guī)定好的輸入輸出變量、步長規(guī)定時(shí)間順序依次進(jìn)行;單步執(zhí)行需要人工手動進(jìn)行執(zhí)行完成一個(gè)步驟的操作之后,視操作結(jié)果來選擇是否進(jìn)行下一步測試,一般用在錯誤查找中。
測試完成后,測試結(jié)果會自動填入到實(shí)際值一欄中,如果與期望值相同,會在測試結(jié)果一欄中顯示“P”表示測試通過;如果與期望值不同會在測試結(jié)果一欄中顯示“F”表示失敗。如果需要保存測試結(jié)果,需要在圖3 中的報(bào)表管理功能中選擇需要生成測試結(jié)果的用例,然后生成結(jié)果,系統(tǒng)會自動填寫測試結(jié)果,時(shí)間等內(nèi)容以Excel 表格的形式保存到對應(yīng)的文件夾。
圖3 自動化測試工具界面Fig.3 Automated test tool interface
自動化測試工具僅為一臺計(jì)算機(jī),通過交換機(jī)與核測量系統(tǒng)處于同一網(wǎng)絡(luò)即可,設(shè)備簡單、操作簡便。另外,該自動化測試工具僅在軟件集成測試中使用,僅通過網(wǎng)絡(luò)接口與系統(tǒng)連接,無硬接線,不會涉及到測試設(shè)備的校準(zhǔn)、鑒定等一系列問題。
因?yàn)樽詣踊瘻y試工具不依賴于硬件,只要有系統(tǒng)組態(tài),有支持組態(tài)運(yùn)行的測試環(huán)境即可進(jìn)行測試,不需要系統(tǒng)硬件諸如機(jī)柜集成等方面的要求,因而可以與系統(tǒng)集成等并行開展,節(jié)省項(xiàng)目時(shí)間。另外該項(xiàng)目在前期開發(fā)過程中,可以針對常用的邏輯如IO 輸入“或”運(yùn)算,IO 輸入“與”運(yùn)算等設(shè)計(jì)模板,在使用時(shí)可以調(diào)用模板,填入輸出即可,縮短用例編寫時(shí)間。同時(shí),自動化測試工具具有較好的移植性,對于不同項(xiàng)目的核測系統(tǒng),只需要比較其類似功能的邏輯是否存在差異,對不存在差異的邏輯進(jìn)行輸入輸出變量的替換即可復(fù)用,極大提高了工作效率。
根據(jù)項(xiàng)目的使用經(jīng)驗(yàn),以IO 輸入的“或”邏輯為例,為了覆蓋所有的邏輯組合,共需要編寫21 個(gè)測試用例,每個(gè)23 個(gè)步驟,每個(gè)步驟1s 時(shí)間間隔,使用自動化測試工具需要483s,約8min。而使用人工測試,完成一個(gè)測試用例的時(shí)間約為10min??梢娮詣踊瘻y試工具極大地提高了測試效率。
為了減少測試人員素質(zhì)對測試結(jié)果造成的影響,按照核測量系統(tǒng)的執(zhí)行功能,在編寫測試用例時(shí)盡量使用已經(jīng)進(jìn)行過模板化的測試用例,這樣就避免了因測試人員素質(zhì)不同的人造成測試覆蓋率不足,邏輯組合遺漏等問題。
測試中,測試工具會自動讀回測試結(jié)果,與預(yù)期結(jié)果進(jìn)行比較,對一致的結(jié)果以“P”表示通過;對不一致的結(jié)果以“F”表示失敗,不再由人工進(jìn)行判斷,避免了人工對結(jié)果進(jìn)行比對時(shí)產(chǎn)生差錯,保證了測試的有效性。
因?yàn)樽詣踊瘻y試工具并不依賴于實(shí)際的系統(tǒng),只是通過網(wǎng)絡(luò)通訊的方式來強(qiáng)制變量。因此,諸如對小電流信號量程切換這類與實(shí)際信號值與測試時(shí)間要求很高的邏輯并不適用,仍需要人工搭建測試環(huán)境,或者在系統(tǒng)集成完成后進(jìn)行,其應(yīng)用還有著不夠全面等缺點(diǎn)。
根據(jù)目前項(xiàng)目的實(shí)際使用經(jīng)驗(yàn),軟件集成測試用例并不適用在線修改這樣的功能。實(shí)際使用中會發(fā)生用例錯誤等情況,可以使用在線的修改功能,但是在實(shí)際工作中,發(fā)現(xiàn)這一功能會使用例版本難易控制,因此也取消了對應(yīng)功能。所以,如何對自動化測試工具中的用例進(jìn)行管理也是需要詳細(xì)研究的課題。
自動化測試工具具有低成本、高效、規(guī)范、便捷等特點(diǎn),應(yīng)用在核測量項(xiàng)目中可以縮短項(xiàng)目周期,減少人力投入,保證項(xiàng)目的規(guī)范性,使項(xiàng)目質(zhì)量得到了保障。但是如何在工程項(xiàng)目環(huán)境中更合時(shí)宜使用該工具,以及對應(yīng)的用例版本管理仍需要在項(xiàng)目執(zhí)行過程中不斷摸索。