徐展,夏丹陽(中核控制系統(tǒng)工程有限公司,北京 100176)
核電廠DCS安全級(jí)應(yīng)用軟件的集成測(cè)試方法
徐展,夏丹陽(中核控制系統(tǒng)工程有限公司,北京 100176)
核電廠DCS安全級(jí)系統(tǒng)是整個(gè)DCS系統(tǒng)的重要組成部分,確保核電廠DCS安全級(jí)系統(tǒng)應(yīng)用軟件的安全可靠性是至關(guān)重要的,軟件驗(yàn)證和確認(rèn)活動(dòng)給核電廠安全可靠性提供了重要保障,這其中包括一些相關(guān)測(cè)試活動(dòng),軟件集成測(cè)試是驗(yàn)證和確認(rèn)活動(dòng)的重要環(huán)節(jié)。本文遵循標(biāo)準(zhǔn)IEEE-1012軟件驗(yàn)證與確認(rèn),針對(duì)安全級(jí)平臺(tái)Tricon系統(tǒng),給出了一套完整的軟件集成測(cè)試方法。
軟件集成測(cè)試;驗(yàn)證和確認(rèn);DCS安全級(jí)應(yīng)用軟件
數(shù)字化技術(shù)已經(jīng)在各工業(yè)領(lǐng)域得到了廣泛成功的應(yīng)用。近年來,為了提高核電運(yùn)行的安全性、可靠性及經(jīng)濟(jì)型,數(shù)字化技術(shù)已經(jīng)成為核電儀控技術(shù)發(fā)展的普遍趨勢(shì)[1]。在核電儀控系統(tǒng)的數(shù)字化過程中,一個(gè)必然要解決的關(guān)鍵問題是安全級(jí)平臺(tái)軟件的驗(yàn)證與確認(rèn)過程[2]。這其中包括一些相關(guān)測(cè)試活動(dòng),軟件集成測(cè)試就是DCS設(shè)備在出廠驗(yàn)收之前對(duì)系統(tǒng)軟件的一步重要驗(yàn)證活動(dòng)。
核電廠DCS安全級(jí)平臺(tái)軟件是指針對(duì)待定核電廠,實(shí)現(xiàn)核電廠安全儀控功能的應(yīng)用軟件,根據(jù)反應(yīng)堆設(shè)計(jì)基準(zhǔn)及規(guī)范,核電數(shù)字化保護(hù)系統(tǒng)中運(yùn)行的安全級(jí)軟件需采取模塊化的結(jié)構(gòu),它是由一系列的安全功能組成的,而每一個(gè)安全功能內(nèi)部按照數(shù)據(jù)處理的不同以模塊的形式劃分。
核電數(shù)字化保護(hù)系統(tǒng),主要包括反應(yīng)堆事故停堆系統(tǒng)和專設(shè)安全系統(tǒng),其中運(yùn)行的軟件也必然要包括兩部分,一部分用于執(zhí)行反應(yīng)堆停堆功能,當(dāng)需要時(shí)產(chǎn)生控制動(dòng)作觸發(fā)反應(yīng)堆停堆。另一部分用于執(zhí)行專設(shè)安全 設(shè)施功能,安全設(shè)施包括驅(qū)動(dòng)單元及適當(dāng)?shù)脑O(shè)備布置,根據(jù)驅(qū)動(dòng)系統(tǒng)或操作員發(fā)出的信號(hào)實(shí)現(xiàn)保護(hù)功能。
安全級(jí)平臺(tái)Tricon系統(tǒng)可以承擔(dān)核電安全級(jí)保護(hù)系統(tǒng)的作用,Tricon系統(tǒng)軟件Tristation1131已經(jīng)通過美國(guó)核管會(huì)(NRC)的認(rèn)證,可以用于核電安全級(jí)保護(hù)系統(tǒng),但為了確保整個(gè)核電數(shù)字化保護(hù)系統(tǒng)功能的安全、可靠實(shí)現(xiàn),上述系統(tǒng)中運(yùn)行的軟件必須進(jìn)行完整、嚴(yán)格的V&V活動(dòng)。
安全級(jí)軟件的V&V是一個(gè)嚴(yán)格按步驟評(píng)定軟件產(chǎn)品的過程,這種評(píng)定貫穿于軟件產(chǎn)品的整個(gè)生命周期,應(yīng)視為集成在整個(gè)軟件開發(fā)項(xiàng)目中一個(gè)完整而獨(dú)立的過程。安全級(jí)軟件的驗(yàn)證與確認(rèn)使用審查、分析及測(cè)試等技術(shù),來評(píng)定一個(gè)完整的軟件系統(tǒng)及其開發(fā)過程中的中間產(chǎn)品是否滿足預(yù)期的功能要求和質(zhì)量要求。
應(yīng)用軟件集成測(cè)試主要涉及到軟件程序單元的集成,以確保已集成的軟件部件符合軟件設(shè)計(jì),滿足系統(tǒng)功能和需求。下面以福清1、2號(hào)機(jī)組核電項(xiàng)目中基于安全級(jí)平臺(tái)Tricon的反應(yīng)堆保護(hù)系統(tǒng)應(yīng)用軟件為例,來說明整個(gè)軟件集成測(cè)試過程。
4.1 測(cè)試目的及范圍
在標(biāo)準(zhǔn)文件IEEE-1012中指出,在整個(gè)軟件生命周期中的設(shè)計(jì)階段,基于軟件需求規(guī)格書(SRS)和軟件設(shè)計(jì)說明書(SDD)可以生成軟件集成測(cè)試計(jì)劃,而隨后基于測(cè)試計(jì)劃、SRS、SDD及用戶文檔可生成測(cè)試設(shè)計(jì);在實(shí)施階段,基于測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、SRS、SDD及用戶文檔可生成測(cè)試用例和測(cè)試規(guī)程;在測(cè)試階段,依據(jù)測(cè)試規(guī)程對(duì)源代碼和可執(zhí)行代碼來執(zhí)行測(cè)試。
軟件集成測(cè)試確保開發(fā)的軟件符合期望的設(shè)計(jì),具體來說就是,確保正確地執(zhí)行SDD以及滿足SRS中的軟件需求,因此軟件集成測(cè)試包括白盒測(cè)試(驗(yàn)證SDD)和黑盒測(cè)試(確認(rèn)SRS)。
黑盒測(cè)試屬于一種基于需求的功能性測(cè)試,在測(cè)試用例和測(cè)試腳本及規(guī)程的設(shè)計(jì)中都需要保證測(cè)試覆蓋到所有的需求,并且可以從正反兩個(gè)方向來對(duì)測(cè)試和需求進(jìn)行追蹤,執(zhí)行黑盒測(cè)試用來檢測(cè)設(shè)計(jì)是否滿足需求。因此,對(duì)于軟件集成測(cè)試來說,黑盒測(cè)試就是來檢測(cè)是否滿足SRS規(guī)定的軟件需求。
白盒測(cè)試用來驗(yàn)證程序、應(yīng)用軟件邏輯和運(yùn)算功能。本項(xiàng)目軟件集成測(cè)試要求達(dá)到路徑覆蓋,即對(duì)SDD中各個(gè)約束條件之間的每種組合至少進(jìn)行一次測(cè)試:例如,依據(jù)各輸入的組合來建立所有情況的測(cè)試用例。在軟件集成測(cè)試之前對(duì)于SRS和SDD里的單元部件已經(jīng)進(jìn)行過測(cè)試了,所以軟件集成測(cè)試重點(diǎn)在于各個(gè)部件之間的連接集成情況。
4.2 測(cè)試特性
基于IEEE-1012標(biāo)準(zhǔn)文件和軟件驗(yàn)證和確認(rèn)計(jì)劃(SVVP),軟件集成測(cè)試的輸入文件是SRS和SDD,福清1、2號(hào)機(jī)組項(xiàng)目測(cè)試特性為:
(1)SRS文件具體的軟件需求;
(2)SDD文件中每個(gè)部件(entity)的代碼結(jié)構(gòu)(code structure);
(3)SDD文件中每個(gè)部件的輸入輸出點(diǎn)表。
軟件集成測(cè)試的目標(biāo)是盡可能找出軟件執(zhí)行代碼中的錯(cuò)誤指令。當(dāng)執(zhí)行代碼偏離SRS的軟件需求和SDD的代碼結(jié)構(gòu)時(shí),軟件集成測(cè)試要能發(fā)現(xiàn)這些錯(cuò)誤,并用文件來記錄下來。
引用部件(entity)這個(gè)概念來描述SDD中一組相關(guān)邏輯設(shè)計(jì),為了和SDD保持一致,軟件集成測(cè)試按照每個(gè)部件這種方法來編寫測(cè)試用例。
4.3 測(cè)試手段和工具
軟件集成測(cè)試是在tristation 1131及其仿真環(huán)境下來進(jìn)行測(cè)試的,而并不需要tricon硬件支持。Excel表格和測(cè)試宏代碼可以通過動(dòng)態(tài)數(shù)據(jù)交換(DDE)來實(shí)現(xiàn)tristation 1131和仿真系統(tǒng)的連接通信。通過仿真得到的輸出結(jié)果反饋到excel表格上跟預(yù)期的輸出結(jié)果進(jìn)行比較,看是否滿足軟件的測(cè)試需求。
4.4 測(cè)試用例表格
軟件集成測(cè)試用例通過excel工具生成一個(gè)表格,其中包括輸入輸出點(diǎn)表,通過/不通過標(biāo)準(zhǔn)等,測(cè)試分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩種,所謂靜態(tài)測(cè)試是指測(cè)量的輸出值可以在確定的輸入下得到確切結(jié)果,而不是暫時(shí)得到的瞬態(tài)結(jié)果,一般不隨著時(shí)間的變化而變化。圖1為一個(gè)靜態(tài)的測(cè)試用例表格:
圖1 靜態(tài)測(cè)試用例表格
所謂的動(dòng)態(tài)測(cè)試是指時(shí)間相關(guān)的邏輯測(cè)試,為了保證時(shí)間參數(shù)的正確性,我們能夠得到在每個(gè)時(shí)間掃描周期上的輸出結(jié)果,以便于看到某一點(diǎn)在各個(gè)時(shí)刻的輸出變化值。圖2為一個(gè)動(dòng)態(tài)的測(cè)試用例表格:
圖2 動(dòng)態(tài)測(cè)試用例表格
4.5 測(cè)試用例設(shè)計(jì)原則
測(cè)試用例的每一步(test case step)是根據(jù)軟件需求和代碼結(jié)構(gòu)來設(shè)計(jì)的。通常第一步來查看SDD文件中的代碼結(jié)構(gòu)是否正確,通常采用下圖方式根據(jù)不同的代碼結(jié)構(gòu)來編寫不同的測(cè)試用例,第二步查看是否SRS中的需求被這些測(cè)試用例完全覆蓋。我們重點(diǎn)來說第一步,圖3展示了具體的測(cè)試用例編寫原則:
圖3 測(cè)試用例編寫原則
(1)首先根據(jù)具體的邏輯分為兩大類:時(shí)間相關(guān)的邏輯和時(shí)間無關(guān)的邏輯。對(duì)于時(shí)間無關(guān)的邏輯,只需要進(jìn)行編寫靜態(tài)測(cè)試用例;對(duì)于時(shí)間相關(guān)的邏輯,還需要編寫額外的動(dòng)態(tài)測(cè)試用例。
(2)根據(jù)輸入個(gè)數(shù)來決定時(shí)間無關(guān)邏輯的復(fù)雜程度。當(dāng)輸入的個(gè)數(shù)小于或等于8,這種情況屬于簡(jiǎn)單邏輯;當(dāng)輸入的個(gè)數(shù)大于8,這種情況屬于復(fù)雜邏輯,需要把輸入分成幾組來測(cè)試,當(dāng)測(cè)試其中的一組時(shí),其他組的輸入可根據(jù)邏輯情況設(shè)置適當(dāng)?shù)妮斎胫?,只要不影響到其測(cè)試結(jié)果即可。
(3)代碼結(jié)構(gòu)還需根據(jù)輸入數(shù)據(jù)類型和記憶類型進(jìn)一步分類,當(dāng)對(duì)無記憶二進(jìn)制類型的簡(jiǎn)單邏輯進(jìn)行測(cè)試時(shí),利用2N個(gè)測(cè)試用例便能把所有的二進(jìn)制組合情況進(jìn)行測(cè)試,N為輸入的個(gè)數(shù)。
(4)對(duì)于時(shí)間相關(guān)的邏輯可以根據(jù)不同的模塊進(jìn)行編寫測(cè)試用例,對(duì)于LEADLAG, LEADLAG_R, DR_PI, FI這些超前滯后類模塊時(shí),利用階躍響應(yīng)進(jìn)行測(cè)試;對(duì)于BUP_CONTROL, RAMP, RAMP_R, ACTUATOR_FAULT, TON, TOF, TP_R這些時(shí)間延遲類模塊時(shí),根據(jù)具體的時(shí)間參數(shù)設(shè)定延遲的時(shí)間,在靜態(tài)測(cè)試用例中進(jìn)行測(cè)試,這些時(shí)間參數(shù)還會(huì)在動(dòng)態(tài)測(cè)試用例中重復(fù)測(cè)試。
4.6 宏代碼使用及自動(dòng)測(cè)試方法
為了快速準(zhǔn)確的完成軟件集成測(cè)試,使用visual basic application(VBA)語言來編寫宏代碼,實(shí)現(xiàn)自動(dòng)化測(cè)試過程。宏代碼實(shí)現(xiàn)的功能是接受測(cè)試開始指令,讀取需要的參數(shù),設(shè)置DDE和仿真器連接,把具體值寫到相應(yīng)的輸入變量當(dāng)中,等待特定的時(shí)間執(zhí)行邏輯,再從仿真器讀取相應(yīng)的輸出值寫到excel表格中去,并跟期望值進(jìn)行比較,得到通過/不通過結(jié)果。
在編寫完這些宏代碼之后,實(shí)際開始測(cè)試時(shí),測(cè)試人員會(huì)執(zhí)行Excel中寫好的宏代碼,使得excel表格中的輸入值自動(dòng)的寫入仿真器中,并使輸出值自動(dòng)地反饋到excel表格中去。
本文在參考安全級(jí)軟件V&V國(guó)際標(biāo)準(zhǔn)的基礎(chǔ)上,以福清1、2號(hào)機(jī)組核電項(xiàng)目為例,給出了一套完整的安全級(jí)應(yīng)用軟件集成測(cè)試方法,并應(yīng)用到基于安全級(jí)平臺(tái)tricon系統(tǒng)的反應(yīng)堆保護(hù)系統(tǒng)應(yīng)用軟件集成測(cè)試中去,為提高軟件的安全性和可靠性提供了保障。
[1] 高超, 胡立生. 核級(jí)軟件的驗(yàn)證與確認(rèn)技術(shù)研究[J]. 微型電腦應(yīng)用, 2010, 4.
[2] IAEA TRS No. 384: Verification and Validation Related toNuclear Power Plant Instrument and Control[S].
[3] IEEE Std 1012-2004: IEEE Standard for Software Verification and Validation [S].
Software Integration Test for DCS Safety Related System of Nuclear Power Plant
The safety-level system is the most important part of the whole distributed control system (DCS) in nuclear power plant. It’s important to ensure the safety and reliability of safety-level system application software for nuclear power plant. Software verification and validation provide the important protection for the safety and reliability of nuclear power plant, which include several related test activities. Software integration test is an important part of verification and validation activities. A useful and powerful method of the software integration test on Tricon system for safety related system is given in this article based on IEEE standard 1012 software verification and validation.
SIT (Software Integration Test); V&V(Verification and Validation); DCS safety related system
B
1003-0492(2015)06-0103-03
TM623.8
徐展(1984-),男,滿族,遼寧丹東人,工程師,碩士研究生,現(xiàn)主要從事核電驗(yàn)證和確認(rèn)的工作。
夏丹陽(1982-),女,四川人,工程師,碩士研究生,現(xiàn)主要從事核電驗(yàn)證和確認(rèn)的工作。