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

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

圖2 測(cè)試環(huán)境組成Fig.2 Composition of the test environment
自動(dòng)測(cè)試平臺(tái)中的現(xiàn)場(chǎng)設(shè)備Level0仿真模塊,在應(yīng)用軟件測(cè)試中,是通過(guò)TCP/IP網(wǎng)絡(luò)接口實(shí)現(xiàn)與虛擬DCS的IO進(jìn)行數(shù)據(jù)交互的;在系統(tǒng)集成測(cè)試中,是直接驅(qū)動(dòng)硬件板卡,通過(guò)硬接線方式,直接與實(shí)體DCS的IO互連,實(shí)現(xiàn)數(shù)據(jù)交互。
自動(dòng)測(cè)試平臺(tái)是集成了DCS應(yīng)用軟件自動(dòng)測(cè)試所需的硬件IO、用例解析模塊、自動(dòng)測(cè)試功能、Level0設(shè)備仿真功能、結(jié)果顯示,及報(bào)告生成功能等的測(cè)試工具平臺(tái),其原理如圖3所示。

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

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

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