董翠霞
(北京廣利核系統工程有限公司,北京 100094)
為確保DCS系統能夠滿足核電廠安全運行的要求,采用工廠測試和現場調試的形式對系統設備的功能和性能進行驗證,包括對系統軟件和硬件進行驗證。其中,系統應用軟件(邏輯組態)的測試是系統軟件驗證的重要項目,目的在于驗證應用軟件的正確性和完整性[1]。
核電DCS系統應用軟件邏輯功能的驗證是工廠測試的關鍵內容,在工程項目的工廠測試中,需要對整個安全級DCS系統的邏輯功能進行測試。目前,這一部分的測試工作是在工廠測試環境下的實體機柜上進行的測試。該測試過程受制于機柜集成裝配、系統集成測試等條件的制約,需要在工廠測試中后期階段才能具備測試條件。
現有技術存在以下缺點:一是受制于集成裝配、系統集成測試條件的制約,工作開展較晚,導致缺陷的修復和回歸時間較長;二是受制于DCS系統各個功能之間的相互影響,難以開展并行測試,測試效率低。
本文描述了一種應用軟件邏輯功能測試方法及平臺,以達到早期識別邏輯設計和實現的缺陷,降低質量成本,用以解決現有測試方法受制于集成裝配、系統集成,測試工作開展晚,缺陷發現晚,回歸缺陷質量成本高,且測試效率低的問題。
應用軟件測試方法通常分為兩種:一是單方案頁測試,按單頁邏輯圖,分析變量的邏輯關系,編寫測試用例,通過仿真軟件進行測試;二是單站功能測試(單頁或者多頁邏輯圖),依賴硬件,測試工作需要應用軟件與硬件相結合進行[2],能夠實現單站功能塊的測試驗證。
上述兩種方法中,方法一僅是單方案頁驗證,不具有完整工藝功能含義;方法二的驗證雖然具有工藝功能含義,但僅限于單站功能。對整個安全級DCS系統的邏輯功能測試的驗證是在系統集成后,該階段發現的缺陷,修復和回歸投入大、質量成本高。因此,需將應用軟件的邏輯功能測試改為具有工藝功能的驗證,以達到缺陷提前探測的目的。
為了實現具有工藝功能的驗證,可在方法二的基礎上搭建多個現場控制站(與供貨項目一致),但該方式基于對硬件的依賴,測試環境投入成本極高。因此,本文提出應用軟件虛擬仿真[3]的邏輯功能測試方法。該方法以系統需求為依據開展,根據系統需求,測試設計工作可與系統軟件設計工作同步開展,包括測試項目和相應的測試用例。系統軟件設計完成以后,系統集成完成之前,可將系統軟件下裝到虛擬DCS中,提前進行應用軟件邏輯功能的測試,提前發現缺陷,提前對系統軟件進行修復,避免遺留到實體DCS交付后測試,發現缺陷。
待系統集成完成將實體DCS交付測試后,將已修復的系統軟件下裝到實體DCS中,進行集成后應用軟件測試時,由于該方法的應用軟件邏輯功能驗證測試用例是具有工藝功能的,在虛擬DCS上使用的測試用例和測試結果可直接復用于實體DCS上進行集成測試,即測試用例無需修改直接使用,測試結果直接作為實體DCS測試結果判定依據。如圖1所示,圖中顏色填充部分為該方法所涉及的范圍。

圖1 邏輯功能測試流程示意圖Fig.1 Schematic diagram of logic function test flow
為實現上述應用軟件邏輯功能測試方法,本文提供了一種可完成該測試方法的測試平臺。其測試環境搭建如圖2所示,由自動測試平臺、虛擬DCS/實體DCS、交換機和DCS工程師站組成。工程師站用于實現將應用軟件編譯為可在虛擬DCS/實體DCS中執行的語言,并下裝到虛擬DCS/實體DCS現場控制站中(虛擬DCS/實體DCS為應用軟件的運行提供環境)。自動測試平臺,一方面提供現場設備Level0的仿真功能,用于構成應用軟件邏輯功能測試的閉環條件;另一方面自動執行測試,實現信號的注入、讀取功能,并根據判據判定測試結果。交換機用于實現自動測試平臺或者工程師站,通過DCS維護接口,與虛擬DCS/實體DCS進行數據交互。

圖2 測試環境組成Fig.2 Composition of the test environment
自動測試平臺中的現場設備Level0仿真模塊,在應用軟件測試中,是通過TCP/IP網絡接口實現與虛擬DCS的IO進行數據交互的;在系統集成測試中,是直接驅動硬件板卡,通過硬接線方式,直接與實體DCS的IO互連,實現數據交互。
自動測試平臺是集成了DCS應用軟件自動測試所需的硬件IO、用例解析模塊、自動測試功能、Level0設備仿真功能、結果顯示,及報告生成功能等的測試工具平臺,其原理如圖3所示。

圖3 自動測試平臺原理Fig.3 Principle of automatic test platform
邏輯功能自動測試工作原理如下:
第一步:加載測試用例。
第二步:自動測試平臺利用所加載的測試用例對下載有被測工程組態的虛擬DCS系統進行自動測試,獲得虛擬DCS系統的邏輯功能測試結果。
第三步:測試人員根據上述測試結果將缺陷反饋給工程設計人員,由工程設計人員對工程組態進行修復。
第四步:自動測試平臺利用所加載的測試用例,對下載有修復后的工程組態的實體DCS系統進行測試。
在測試過程中,自動測試平臺的4個主要功能模塊,用例解析模塊、Level0設備仿真模塊、自動測試功能模塊和報告生成模塊作用和關系詳述如下:
1)用例解析模塊
用于解析測試用例獲得輸入信號設定值及對應輸出信號的預期值。該模塊可解析的測試用例的形式包括真值表形式和波形圖形式,測試用例的內容包括初始化、正常、邊界,以及超邊界等情況[4]下的輸入信號的設定值和輸出信號的預期值[5]。當測試用例為真值表形式時,包括輸入信號設定值和相應輸出信號預期值兩部分,根據輸入信號對應的變量名位置的信息獲得相應的輸入信號每一步的設定值,根據輸出信號對應的變量名位置獲得每一步相應的預期值;當測試用例為波形圖形式時,波形圖的橫坐標為時間,縱坐標包括輸入信號設定值及對應的輸出信號預期值。在波形圖中任意時刻,只要輸入信號設定值和輸出信號預期值發生變化,即獲取輸入信號和預期值,作為一個測試步的輸入和輸出。以此類推,可以遍歷獲得整個波形圖用例的所有輸入信號設定值和對應輸出信號的預期值。
2)Level0設備仿真模塊
用于仿真外部設備,仿真的外部設備是現場的執行器或/和傳感器,包括閥門、停堆斷路器等。實體DCS/虛擬DCS系統發送控制信號給Level0設備仿真模塊,Level0設備仿真模塊反饋執行狀態和現場狀態信號給DCS系統,DCS系統根據反饋信號執行相應的處理,Level0設備仿真模塊與DCS系統構成閉環測試系統。虛擬DCS的IO是軟仿真形式的,Level0設備仿真模塊與虛擬DCS系統通過網絡接口互連,采用基于TCP/IP的網絡通訊協議,實現控制信號和狀態反饋信號的交互;現場的外部設備與實體DCS系統的連接需使用硬接線IO接口連接。為盡可能與真實應用一致,Level0設備仿真模塊與實體DCS系統通過硬接線互連,實現IO控制信號和狀態反饋信號的交互。

圖4 停堆保護功能測試原理示意圖Fig.4 Schematic diagram of the test principle of the shutdown protection function
3)自動測試功能模塊
用于實現邏輯功能測試的自動執行,根據用例解析模塊獲取的輸入信號設定值,向虛擬DCS/實體DCS注入設定值信號,并從虛擬DCS/實體DCS中讀取經過邏輯運算的對應輸出信號的值,通過與用例解析模塊獲取的對應輸出信號的預期值進行比較,判斷測試結果的正確性。以此類推,直至加載的所有的測試用例的全部測試步驟執行完成,測試結束。在上述的執行過程中,包括每一步的邏輯功能測試結果的實現。自動測試功能模塊還支持“測試暫停/繼續”“測試停止”操作,并支持根據測試情況對特定用例多次連續自動執行或者全部用例循環執行等。自動測試功能模塊通過網絡接口,采用基于鏈路層的自定義協議進行數據交互,實現輸入信號注入和輸出信號讀取。
4)自動測試功能模塊與Level0設備仿真模塊關系
這兩個模塊是并行運行的。當所測試的邏輯功能涉及外部設備時,自動測試功能模塊注入DCS系統信號,經過邏輯運算后產生外部設備控制信號發送給Level0設備仿真模塊,Level0設備仿真模塊將執行狀態信號反饋給DCS系統,在DCS系統中直接或者經過邏輯運算后,產生輸出信號由自動測試功能模塊讀取。當所測試的邏輯功能不涉及外部設備時,自動測試功能模塊注入DCS系統信號,直接經過邏輯運算后產生輸出信號,由自動測試功能模塊讀取。
5)報告生成模塊
用于根據所述虛擬DCS系統和實體DCS系統的邏輯功能測試結果,分別生成虛擬DCS系統邏輯功能測試狀態報告和實體DCS系統邏輯功能測試狀態報告。
測試應用過程以國內某自主化核電DCS的工廠測試階段停堆保護功能驗證測試為實例進行說明。
在真實DCS機柜移交之前,即可提前開展應用軟件邏輯功能測試。為便于說明應用過程,將2.2節中的自動測試原理進行詳細的展開,其過程如下:
1)以系統需求輸入為依據進行測試設計,輸出測試用例,測試用例以真值表或者波形圖的形式呈現。
2)自動測試平臺與虛擬DCS(下載有被測工程組態)通過維護接口互聯。
3)啟動自動測試平臺,將測試用例導入自動測試工具;設置好參數配置信息,進行自動測試。
4)自動測試過程中,每一步自動測試工具平臺將DCS輸入IO信號通過維護接口自定義協議寫入到虛擬DCS中,虛擬DCS邏輯運算結果作為自動測試平臺的Level0設備仿真的輸入,Level0設備仿真輸出結果作為虛擬DCS輸入返回,然后自動測試平臺通過維護接口從虛擬DCS中獲取經過邏輯運算的相應的輸出IO信號,并與預期值比較,判斷測試是否通過。一個測試用例可以遍歷所有邏輯組合,以達到充分驗證邏輯功能的目的。
5)每一個測試用例可以多遍反復自動執行,每一測試記錄均自動記錄在自動測試工具系統上,可以事后生成報告打印等處理。
6)此測試過程中,大部分的邏輯功能缺陷可被發現,在實體機柜移交前可提前修復缺陷。
7) 在實體機柜提交后,將虛擬DCS直接替換為下載有修復缺陷的工程組態的實體DCS,然后將虛擬環境下的測試用例無修改的移植到真實環境下,虛擬DCS下的測試結果直接作為實體DCS的判斷依據。
該測試方法和平臺擺脫了單站限制,可提供整套DCS虛擬測試環境,可執行單站用例,也可執行多站用例,使測試更加便捷。其能夠執行多站的功能用例,可提前發現以往工廠測試階段才能發現的缺陷。以國內某自主化核電DCS華龍堆型單機組應用軟件邏輯功能測試進行評估,該測試方法和平臺的使用將測試效率提高了30%。
傳統測試方法與軟件虛擬仿真測試方法和平臺在驗證范圍,對硬件的依賴、應用軟件集成測試缺陷探測和測試用例系統測試的可用性4個方面的對比見表1。

表1 不同測試方法對比表Table 1 Comparison of different test methods
通過對比可知,與現有技術相比,本文所述的應用軟件虛擬仿真測試方法和平臺,在實體機柜移交之前,編譯工程組態并下載至仿真DCS系統中,采用自動測試平臺在仿真DCS系統上對應用軟件開展邏輯功能測試,不僅解決了對實體機柜的依賴,而且可提前發現原本在集成測試階段才能發現的缺陷并及時修復,降低質量成本;其次,計算機仿真的DCS環境可以快速部署,可以使用多個仿真DCS系統同時開展測試,極大地提升測試效率,并且可將用于仿真DCS系統測試的測試用例,以及將得到的測試結果快速移植到實體環境下。虛實結合對比,可極大地提高實體環境測試質量和測試效率。根據平行理論,該方法和平臺達到了缺陷提前探測,數字驅動實體的目的。