靳永毅, 王 楠,張占軍,郭 猛,鄧 鵬,李志軍,孫同果
(中核控制系統工程有限公司,北京 100176)
核測量系統作為反應堆保護和控制系統的重要組成部分,其軟件主要實現的功能為測量中子注量率、計算反應堆功率與周期、定值比較、反應堆保護信號輸出等[1];軟件集成測試主要是檢查軟件單位之間的接口是否正確以及軟件單位之間的邏輯是否正確,其結果對后續的系統測試存在著重要影響[2]。由此可見,核測量系統軟件集成測試的質量將直接影響到整個核測量系統的穩定性。長期以來核測量系統的軟件集成測試一直使用人工的測試方法,由于該系統軟件邏輯組合多、接口數量多,同時受限于測試者素質的千差萬別等原因,如何保證測試的質量與提高測試效率一直是測試工作的一個重點。

圖1 帶有自動化測試工具的核測量系統構成Fig.1 Structure of neutron measurement system with automatic testing tools

圖2 自動化測試工具網絡配置圖Fig.2 Automation test tool network configuration diagram
經過工程實際應用,在軟件集成測試中引入自動化測試工具,應用自動測試原理通過自動發送和接收邏輯運算后的數據,可以極大地提高測試質量,保證測試效率。
如圖1 所示,核測量系統由4 個相同且獨立的通道組成,每個通道為一個獨立的保護柜,柜內裝有源量程、中間量程、功率量程的調理單元與處理單元,每個量程的調理單元與處理單元組合成為一個站,即1 號保護柜中的源量程處理單元與源量程調理單元為1 號站;1 號柜內的中間量程處理單元與中間量程調理單位為2 號站,以此類推[3]。
工程師站:為可移動的計算機,用來對保護柜處理器機箱進行下裝及監視,還可對各個量程的參數進行設定。
自動化測試工裝:為一臺計算機,通過交換機與工程師站、核測量系統的各個控制站處于同一個網絡,可以通過相關的通信協議進行數據收發及處理。
如圖2 自動化測試工具網絡配置圖可知,自動化測試工具與工程師站及核測量系統處于同一個網絡中的同一網段,通過設置不同的IP 地址來區別具體的設備,核測量系統保護柜中各站的IP 地址由撥碼開關來設置。根據系統的IO 點表,制作自動化測試工具需要使用的點表,并且導入測試工具。自動化測試工具可以通過通信協議來同步核測量系統的組態,將組態中的IO 變量與已經導入系統的IO點表進行對比,對變量名稱不一致、變量缺失等問題進行提示,通過修改保證兩者完全一致。
之后導入根據系統組態編寫的測試用例,同理,系統會根據組態中的變量名稱來檢查導入測試工具的變量名稱,對錯誤內容進行提示。
測試時,根據需要在測試用例中規定好輸入變量、輸出變量、期望輸入值與每一步的時間間隔,測試工具即會使用相關的通信協議來強制輸入變量,并讀回輸入變量通過邏輯運算得到的測試結果,此時輸出變量會自動填寫在測試用例中并與預期結果進行比較,不一致的地方會在測試結果一欄中標識錯誤。
自動化測試工具使用的測試用例是基于Excel 編寫的模板化用例見表1,在測試用例中規定好了站號、輸入變量、輸出變量的期望值和輸出變量的實際值、步長等參數。其中,站號是當前變量所處控制器的名稱;輸入變量和輸出變量是邏輯圖確定的當前測試邏輯輸入變量與輸出變量;在步驟一行中對應的是步驟序號;在步驟一列中分別是步長即執行該步驟所需要的時間、輸入信號對應的輸入值和由輸入信號數值及邏輯組合計算出來的輸出結果期望值,輸出結果的實際值由測試工裝自動填寫。
測試用例編寫完成后需要導入到測試工裝中,在測試導入工裝之前需要先將輸入輸出變量點表及其對應的信號類型、接線點、量程等先導入組態,使用表1 中測試工裝的系統組態功能導入輸入輸出變量點表,并通過網絡與工程師站中保存輸入輸出信息同步,在同步過程中會提示變量名稱不一致、類型不一致、數量不一致等信息。在確定組態無誤之后,使用如圖3 的組態管理功能將測試用例導入,在測試用例導入時會提示站號錯誤、變量名稱不一致、類型不一致等信息,修改相關錯誤后就會顯示用例導入成功,導入成功后保存需要使用的用例即可。

表1 測試用例示意圖Table 1 Test case diagram
利用用例管理功能對用例進行分類,在核測量系統中通常按照控制器對應的站號進行分類管理,以便維護用例;也可以對分類后的用例更名加入版本、日期等內容。
在圖3 的系統組態功能中選擇需要執行的用例后跳轉到執行畫面即開始對用例測試。用例的執行分為兩種形式:自動執行和單步執行。自動執行即按照規定好的輸入輸出變量、步長規定時間順序依次進行;單步執行需要人工手動進行執行完成一個步驟的操作之后,視操作結果來選擇是否進行下一步測試,一般用在錯誤查找中。
測試完成后,測試結果會自動填入到實際值一欄中,如果與期望值相同,會在測試結果一欄中顯示“P”表示測試通過;如果與期望值不同會在測試結果一欄中顯示“F”表示失敗。如果需要保存測試結果,需要在圖3 中的報表管理功能中選擇需要生成測試結果的用例,然后生成結果,系統會自動填寫測試結果,時間等內容以Excel 表格的形式保存到對應的文件夾。

圖3 自動化測試工具界面Fig.3 Automated test tool interface
自動化測試工具僅為一臺計算機,通過交換機與核測量系統處于同一網絡即可,設備簡單、操作簡便。另外,該自動化測試工具僅在軟件集成測試中使用,僅通過網絡接口與系統連接,無硬接線,不會涉及到測試設備的校準、鑒定等一系列問題。
因為自動化測試工具不依賴于硬件,只要有系統組態,有支持組態運行的測試環境即可進行測試,不需要系統硬件諸如機柜集成等方面的要求,因而可以與系統集成等并行開展,節省項目時間。另外該項目在前期開發過程中,可以針對常用的邏輯如IO 輸入“或”運算,IO 輸入“與”運算等設計模板,在使用時可以調用模板,填入輸出即可,縮短用例編寫時間。同時,自動化測試工具具有較好的移植性,對于不同項目的核測系統,只需要比較其類似功能的邏輯是否存在差異,對不存在差異的邏輯進行輸入輸出變量的替換即可復用,極大提高了工作效率。
根據項目的使用經驗,以IO 輸入的“或”邏輯為例,為了覆蓋所有的邏輯組合,共需要編寫21 個測試用例,每個23 個步驟,每個步驟1s 時間間隔,使用自動化測試工具需要483s,約8min。而使用人工測試,完成一個測試用例的時間約為10min。可見自動化測試工具極大地提高了測試效率。
為了減少測試人員素質對測試結果造成的影響,按照核測量系統的執行功能,在編寫測試用例時盡量使用已經進行過模板化的測試用例,這樣就避免了因測試人員素質不同的人造成測試覆蓋率不足,邏輯組合遺漏等問題。
測試中,測試工具會自動讀回測試結果,與預期結果進行比較,對一致的結果以“P”表示通過;對不一致的結果以“F”表示失敗,不再由人工進行判斷,避免了人工對結果進行比對時產生差錯,保證了測試的有效性。
因為自動化測試工具并不依賴于實際的系統,只是通過網絡通訊的方式來強制變量。因此,諸如對小電流信號量程切換這類與實際信號值與測試時間要求很高的邏輯并不適用,仍需要人工搭建測試環境,或者在系統集成完成后進行,其應用還有著不夠全面等缺點。
根據目前項目的實際使用經驗,軟件集成測試用例并不適用在線修改這樣的功能。實際使用中會發生用例錯誤等情況,可以使用在線的修改功能,但是在實際工作中,發現這一功能會使用例版本難易控制,因此也取消了對應功能。所以,如何對自動化測試工具中的用例進行管理也是需要詳細研究的課題。
自動化測試工具具有低成本、高效、規范、便捷等特點,應用在核測量項目中可以縮短項目周期,減少人力投入,保證項目的規范性,使項目質量得到了保障。但是如何在工程項目環境中更合時宜使用該工具,以及對應的用例版本管理仍需要在項目執行過程中不斷摸索。