卡斯柯信號有限公司 李文明
城市軌道交通迅猛發(fā)展,對計算機(jī)聯(lián)鎖技術(shù)的安全性和可靠性提出了更高的要求。開發(fā)出符合歐洲鐵路信號標(biāo)準(zhǔn)EN5012X系列的計算機(jī)聯(lián)鎖產(chǎn)品,并通過第三方獨立認(rèn)證成為大勢所趨。本文對EN50126,EN50128和EN50159對測試驗證方面的要求進(jìn)行深入研究,并結(jié)合公司的計算機(jī)聯(lián)鎖產(chǎn)品,對EN5012X系列標(biāo)準(zhǔn)在計算機(jī)聯(lián)鎖產(chǎn)品開發(fā)過程中的應(yīng)用做了深入的探討和說明。
信號系統(tǒng)在控制列車高速運行上起著越來越重要的作用,城市軌道交通的安全和可靠的運行在一定程度上取決于信號系統(tǒng)的安全性和可靠性的高低。眾多乘客的安全出行和信號系統(tǒng)的安全可靠性緊密的連接在一起。計算機(jī)聯(lián)鎖產(chǎn)品作為行車指揮控制自動化系統(tǒng)的主要組成部分,將領(lǐng)先的通信技術(shù)和計算機(jī)技術(shù)相結(jié)合,以提高運輸效率和保障行車安全。國內(nèi)城市軌道交通的快速發(fā)展,對計算機(jī)聯(lián)鎖系統(tǒng)提出更高的要求。為滿足嚴(yán)苛的安全和可靠性要求,需要對歐洲電氣標(biāo)準(zhǔn)化委員會(CENELEC)針對信號系統(tǒng)的行業(yè)標(biāo)準(zhǔn),即EN5012X標(biāo)準(zhǔn)進(jìn)行研究,并進(jìn)一步的結(jié)合公司的計算機(jī)聯(lián)鎖系統(tǒng)的特點,研究和開發(fā)出一套符合歐標(biāo)的聯(lián)鎖產(chǎn)品開發(fā)流程。其中在開發(fā)流程中,測試與驗證階段的應(yīng)用將是本文介紹的重點部分。本文將從人員獨立性、驗證、測試確認(rèn)等方面進(jìn)行介紹,如何確保計算機(jī)聯(lián)鎖產(chǎn)品的測試驗證和確認(rèn)過程符合標(biāo)準(zhǔn)中對SIL4級產(chǎn)品的要求并順利通過第三方安全認(rèn)證。
上世紀(jì)90年代,以IEC61508《電氣/電子/可編程電子安全系統(tǒng)的功能安全》為基礎(chǔ),附加列車安全控制系統(tǒng)的技術(shù)條件,歐洲電氣標(biāo)準(zhǔn)化委員會(CENELEC)下屬的SC9XA委員會制定了一系列以計算機(jī)控制的信號系統(tǒng)作為對象的鐵路信號標(biāo)準(zhǔn)EN5012X。主要由以下幾個有關(guān)鐵路信號的安全標(biāo)準(zhǔn),相應(yīng)的標(biāo)準(zhǔn)關(guān)系如圖1所示。
EN50126鐵路應(yīng)用-可靠性、可用度、可維修性和安全性(RAMS)技術(shù)條件和證明
EN50129鐵路應(yīng)用-通信、信號和處理系統(tǒng)-安全相關(guān)的鐵路電子系統(tǒng)
EN50128鐵路應(yīng)用-通信、信號和處理系統(tǒng)-鐵路控制和防護(hù)電子系統(tǒng)的軟件
EN50159鐵路應(yīng)用-通信、信號和處理系統(tǒng)-安全相關(guān)的通信。
EN50126定義了整個鐵路系統(tǒng)的可靠性(reliability)、可用性(availability)、可維護(hù)性(maintainability)、安全性(safety),簡稱RAMS,并規(guī)定了安全生命周期內(nèi)各個階段對RAMS的管理和要求。EN50126提供了國際和國內(nèi)信號市場的基本準(zhǔn)繩,為在一定時間內(nèi)安全的完成一定等級的鐵路運輸系統(tǒng)提供了證據(jù)。進(jìn)一步的說,EN50126定義了RAMS四者之間的關(guān)系以及影響RAMS的因素以及方法等。
圖1 CENELEC標(biāo)準(zhǔn)關(guān)系圖
EN50129定義了鐵路信號系統(tǒng)安全驗收和安全論據(jù)的要求,該標(biāo)準(zhǔn)主要對鐵路電子系統(tǒng)硬件方面的要求和安全論據(jù)進(jìn)行了定義??紤]如何利用安全技術(shù)和分析方法降低安全相關(guān)系統(tǒng)的硬件故障概率,通過定義系統(tǒng)生命周期各階段的安全性目標(biāo)和必須達(dá)到的要求對系統(tǒng)開發(fā)應(yīng)用的每一個環(huán)節(jié)進(jìn)行嚴(yán)格把關(guān)。通過質(zhì)量管理措施、安全管理措施、功能和技術(shù)安全措施,才可進(jìn)行安全接受和認(rèn)證。
EN50128是針對軟件的安全提出相應(yīng)的設(shè)計和規(guī)范標(biāo)準(zhǔn),它建立在Working Group9 IEC/TC65(簡稱WG9)的研究成果上。標(biāo)準(zhǔn)對于鐵路控制和防護(hù)系統(tǒng)的軟件進(jìn)行安全完整性等級(SIL)的劃分,根據(jù)不同的SIL等級,對整個軟件開發(fā)生命周期的階段活動提出對應(yīng)的流程和措施要求。其中對軟件進(jìn)行驗證和測試是進(jìn)行第三方獨立認(rèn)證評估的重要環(huán)節(jié)。
EN50159用于處理安全相關(guān)設(shè)備在傳輸系統(tǒng)中安全相關(guān)通信的標(biāo)準(zhǔn)。從功能完整性和安全完整性兩個角度來構(gòu)造一個安全相關(guān)的傳輸系統(tǒng)。標(biāo)準(zhǔn)歸納了與通信相關(guān)的安全需求,用于指導(dǎo)為功能安全和技術(shù)安全提出證據(jù)。標(biāo)準(zhǔn)同時列舉了在通信系統(tǒng)中的安全危害來自傳輸系統(tǒng)的失效、傳輸過程中的環(huán)境干擾以及自然災(zāi)害,并將多種危害可能迸發(fā)的后果歸結(jié)為丟包、亂序、重復(fù)、插入、延時等多種錯誤威脅。標(biāo)準(zhǔn)進(jìn)一步的將傳輸系統(tǒng)類型分為封閉傳輸系統(tǒng)和開放傳輸系統(tǒng)。通過對傳輸系統(tǒng)的劃分,根據(jù)標(biāo)準(zhǔn)推薦的防御方法,有效的指導(dǎo)開發(fā)人員針對可能存在的風(fēng)險進(jìn)行規(guī)避。
圖2 計算機(jī)聯(lián)鎖產(chǎn)品人員組織架構(gòu)
中國鐵路總公司將聯(lián)鎖系統(tǒng)的安全完整性等級定為SIL4級,根據(jù)EN50128-2011版標(biāo)準(zhǔn)在人員獨立性上的要求,計算機(jī)聯(lián)鎖產(chǎn)品的開發(fā)生命周期內(nèi),將確認(rèn)驗證團(tuán)隊和軟件開發(fā)團(tuán)隊完全獨立。確包括靜態(tài)分析和動態(tài)測試。軟件靜態(tài)分析有規(guī)則檢查和代碼走讀。程序員遵照公司制定的C語言編碼規(guī)范進(jìn)行編碼,完成之后使用TestBed工具進(jìn)行規(guī)則檢查,如有違反項,需進(jìn)行修改并再次檢查,直到所有違反項均被修正。進(jìn)行代碼走讀,遵照公司制定的認(rèn)、驗證、確認(rèn)人員僅向驗證與確認(rèn)經(jīng)理進(jìn)行匯報,不對項目經(jīng)理進(jìn)行直接負(fù)責(zé)。測試團(tuán)隊和軟件開發(fā)團(tuán)隊通過高級經(jīng)理進(jìn)行資源的協(xié)調(diào)和技術(shù)方案的決議。計算機(jī)聯(lián)鎖產(chǎn)品人員組織架構(gòu)如圖2所示。
表1 需求驗證分配方法
驗證貫穿于系統(tǒng)的整個生命周期。根據(jù)產(chǎn)品開發(fā)計劃、質(zhì)量保證計劃和安全保證計劃,驗證與確認(rèn)經(jīng)理負(fù)責(zé)編寫驗證與確認(rèn)計劃,定義系統(tǒng)全生命周期內(nèi)的驗證與確認(rèn)活動及活動中涉及到的文檔結(jié)構(gòu),驗證與確認(rèn)計劃應(yīng)符合EN50128、EN50129等相關(guān)規(guī)范,并且需要在驗證與確認(rèn)計劃或者項目開發(fā)計劃書中定義清楚工具的T1、T2、T3類等級,確保驗證與確認(rèn)活動正確開展。對于測試平臺(包括自動化測試平臺)此類工具,可以單獨立項進(jìn)行開發(fā)管理,也可以作為產(chǎn)品開發(fā)的一個組件進(jìn)行開發(fā)管理。
由高級經(jīng)理組織驗證與確認(rèn)計劃的評審和驗證,在驗證與確認(rèn)計劃通過評審后,高級經(jīng)理組織對驗證與確認(rèn)計劃進(jìn)行驗證,出具相應(yīng)的系統(tǒng)驗證與確認(rèn)計劃驗證報告。
驗證人員在驗證與確認(rèn)計劃中查看文檔追蹤關(guān)系,明確自己需要驗證的輸入文檔,確認(rèn)所驗文檔(即子文檔)需要覆蓋的上級文檔(即父文檔)有哪些,并與驗證與確認(rèn)經(jīng)理確認(rèn)以防止遺漏。并和項目經(jīng)理確認(rèn)父子文檔的版本以防止誤用文檔版本。
在人員資質(zhì)上,驗證人員需要經(jīng)過驗證方面的培訓(xùn)和學(xué)會驗證工具的使用,并且對所驗證的文檔充分熟悉。在執(zhí)行驗證時候,需要從完整性和跟蹤性兩個角度進(jìn)行逐條逐句的驗證??傮w的思路是需要子文檔能夠完整覆蓋父文檔的需求,確認(rèn)父文檔需求是子需求的源頭,符合完整性、正確性、一致性原則。
更重要的是,驗證不僅僅需要檢查鏈接關(guān)系,更應(yīng)該檢查父子文檔的覆蓋完整性、內(nèi)容正確性、基線內(nèi)的一致性。特別的,對于需求設(shè)計類文檔的驗證,驗證人員需要檢查需求標(biāo)簽屬性,如安全完整性SIL等級繼承的正確性等,以及需求是否是清晰、可測、無二義性。而對于測試用例文檔驗證,驗證人員要根據(jù)計算機(jī)聯(lián)鎖產(chǎn)品的應(yīng)用場景,查看是否符合產(chǎn)品的特定要求。
測試人員首先制定測試計劃,包含確定測試范圍,測試方案,根據(jù)確定測試的出入口準(zhǔn)則、缺陷級別。其中測試方案規(guī)定測試系統(tǒng)的結(jié)構(gòu)、測試環(huán)境、測試工具、測試原理、測試方法作為測試用例設(shè)計和執(zhí)行的指導(dǎo)依據(jù)等。此外在測試計劃制定的過程中,需要進(jìn)行需求驗證分配及管理,確保聯(lián)鎖需求被各個測試階段測試用例或者其他驗證方法有效、正確及完整覆蓋。驗證和分配的方法可參考表1所示。需求驗證分配表格由驗證與確認(rèn)經(jīng)理組織進(jìn)行評審或?qū)徍?,?dāng)需求或設(shè)計變更時,將變更需求驗證分配表格。
測試用例的設(shè)計上,依據(jù)需求驗證分配表格,分析并選用已有的測試用例進(jìn)行修改完善或設(shè)計新的測試用例;獲取所需要的測試數(shù)據(jù);完成測試樁函數(shù)的實現(xiàn);根據(jù)測試資源、風(fēng)險等約束條件,確認(rèn)測試用例執(zhí)行順序;獲取測試資源,開發(fā)測試軟件;建立并準(zhǔn)備測試環(huán)境;評審測試用例的正確性、有效性和覆蓋充分性,評審測試環(huán)境和設(shè)備工具是否齊備并符合技術(shù)要求,評審?fù)ㄟ^后方可進(jìn)入測試執(zhí)行階段。特別需要強(qiáng)調(diào)的是,由于窮舉測試通常不可能,項目時間,測試資源有限,通過合理的測試方法組合,制定測試策略就顯得尤為重要,要分清主次,有所側(cè)重,通過測試方法的組合和設(shè)定合理的覆蓋率目標(biāo)達(dá)到預(yù)定的質(zhì)量目標(biāo)。
根據(jù)EN50128標(biāo)準(zhǔn)的相關(guān)要求,計算機(jī)聯(lián)鎖產(chǎn)品的測試過程包括:單元測試、軟件/系統(tǒng)的集成測試和軟件/系統(tǒng)的確認(rèn)測試。
單元測試是用來驗證代碼實現(xiàn)與軟件詳細(xì)設(shè)計的一致性,方法軟件代碼走讀規(guī)范執(zhí)行;軟件動態(tài)測試采用的方法有基于結(jié)構(gòu)的測試,錯誤猜測,邊界值測試和等價類劃分測試案例執(zhí)行,在計算機(jī)聯(lián)鎖產(chǎn)品的測試中按照標(biāo)準(zhǔn)EN50128-2011推薦,使用語句覆蓋、分支覆蓋、修正的條件決策覆蓋率(MCDC),并要求覆蓋率均達(dá)到100%。
集成測試是在真實的目標(biāo)機(jī)環(huán)境下進(jìn)行測試,目的是檢驗軟件單元之間、任務(wù)(Task)之間的接口關(guān)系,并驗證已集成軟件系統(tǒng)是否符合設(shè)計要求。軟件集成測試一般應(yīng)采用白盒測試和黑盒測試方法,從全局?jǐn)?shù)據(jù)結(jié)構(gòu)及軟件的適合性、準(zhǔn)確性、互操作性、容錯性、資源利用性等軟件質(zhì)量子特性方面考慮,確定測試內(nèi)容。聯(lián)鎖軟件的集成測試采用自頂向下分步集成的方式,集成測試需要測試人員自己開發(fā)樁和驅(qū)動,通過打印日志的方式記錄測試結(jié)果,同時對測試日志進(jìn)行判斷以確認(rèn)設(shè)計的正確性。
確認(rèn)測試的目的是檢驗軟件與需求規(guī)格說明的一致性。將已經(jīng)集成好的聯(lián)鎖軟件,作為整個元素,與硬件板卡、接口模擬器、數(shù)據(jù)配置軟件、數(shù)據(jù)等其他系統(tǒng)元素結(jié)合在一起,在真實的目標(biāo)機(jī)環(huán)境下,主要采用黑盒測試的方法設(shè)計測試用例,對系統(tǒng)進(jìn)行一系列的組裝和確認(rèn)測試,以覆蓋EN50128要求的功能測試和性能測試。軟件確認(rèn)測試主要測試單系情況,重點關(guān)注所提供的布爾運算功能和安全機(jī)制、及其它非功能需求,并在被測軟件中插樁進(jìn)行故障注入測試。而雙系情況的測試主要由系統(tǒng)層面的測試完成。
計算機(jī)聯(lián)鎖產(chǎn)品的系統(tǒng)集成測試是在真實或模擬真實系統(tǒng)工作環(huán)境下測試,其測試的重點在于測試各子系統(tǒng)間(如板卡之間、聯(lián)鎖處理子系統(tǒng)和操作顯示機(jī)之間)的接口是否滿足接口定義文件所規(guī)定的通信協(xié)議和消息傳遞的要求,以及集成后的聯(lián)鎖系統(tǒng)功能的正確性。對于與接口無關(guān)的功能需求,測試中分配給其他測試階段覆蓋,并保證證據(jù)鏈完整。
計算機(jī)聯(lián)鎖產(chǎn)品的系統(tǒng)確認(rèn)測試是在真實聯(lián)鎖系統(tǒng)工作環(huán)境下檢驗完整的軟件配置項能否和聯(lián)鎖系統(tǒng)正確連接,并滿足聯(lián)鎖系統(tǒng)需求中的要求。具體包括針對系統(tǒng)功能和安全需求進(jìn)行功能測試、性能測試以及健壯性測試,而在接口測試上側(cè)重于外部接口(如計算機(jī)聯(lián)鎖和區(qū)域控制器ZC、計算機(jī)聯(lián)鎖和鄰站聯(lián)鎖CBI)的測試。
計算機(jī)聯(lián)鎖系統(tǒng)通過安全網(wǎng)絡(luò)通信協(xié)議和ZC鄰站CBI進(jìn)行通信。圖3所示為測試ZC鄰站CBI接口時候的測試環(huán)境圖。計算機(jī)聯(lián)鎖設(shè)備采用真實的聯(lián)鎖機(jī)架,操作顯示設(shè)備和維修機(jī)連接在測試環(huán)境圖中,接口模擬設(shè)備運行PC機(jī)上,并提供了良好的人機(jī)界面的顯示。通過操作顯示設(shè)備,維修機(jī)上進(jìn)行參數(shù)追蹤和日志報警記錄,接口模擬器上觀察和發(fā)送接口信息,進(jìn)行通信接口的測試。除常規(guī)的協(xié)議層測試、應(yīng)用層測試、倒機(jī)切換測試外,為滿足EN50159中對于接口通信的要求,接口模擬器上按照通信協(xié)議注入丟包、亂序、超時等故障。
在聯(lián)鎖產(chǎn)品系統(tǒng)確認(rèn)測試階段結(jié)束后,驗證與確認(rèn)經(jīng)理確認(rèn)計算機(jī)聯(lián)鎖產(chǎn)品項目的驗證與確認(rèn)活動是否按照驗證與確認(rèn)計劃執(zhí)行,確認(rèn)驗證與確認(rèn)活動執(zhí)行過程與驗證與確認(rèn)計劃的一致性,根據(jù)需要作為確認(rèn)人員獨立補(bǔ)充測試案例或者場景進(jìn)行測試活動;確認(rèn)驗證與確認(rèn)活動與EN50128等規(guī)范的符合性及基線內(nèi)文檔版本一致性;評估開放的缺陷對產(chǎn)品質(zhì)量的影響,檢查輸出限制手冊和用戶手冊的驗證情況。根據(jù)以上的檢查要點,最終形成驗證與確認(rèn)報告。
圖3 聯(lián)鎖系統(tǒng)的測試架構(gòu)(測試ZC鄰站CBI)
第三方安全評估是評估開發(fā)生命周期的過程和輸出產(chǎn)品是否具有規(guī)定的安全完善等級(SIL)。第三方評估人員評審項目的采用的一個重要手段就是對關(guān)鍵文檔進(jìn)行評審。聯(lián)鎖產(chǎn)品作為SIL4級的安全產(chǎn)品,其開發(fā)和認(rèn)證需要大量的文檔工作。文檔的完整、精確、一致、可追蹤以及可審計是通過認(rèn)證的必要條件,也是后期可維護(hù)的重要保證。根據(jù)評估人員針對文檔反饋的問題清單進(jìn)行答復(fù),并經(jīng)評估人員確認(rèn)后對文檔進(jìn)行修改。另一個重要的評估依據(jù)是評估人員隨著聯(lián)鎖產(chǎn)品開發(fā)過程進(jìn)行的日常評估活動,如質(zhì)量和安全評審,抽取測試用例,進(jìn)行現(xiàn)場的測試見證。在聯(lián)鎖產(chǎn)品開發(fā)周期結(jié)束時,評估人員給出評估結(jié)論。iLOCK型產(chǎn)品是我公司基于NISAL安全原理自主開發(fā)并采用2乘2取2架構(gòu)的,具有高安全和高可靠性的計算機(jī)聯(lián)鎖系統(tǒng)。該產(chǎn)品于2009年通過了TUV的CENENLEC SIL4安全認(rèn)證,近年來也根據(jù)產(chǎn)品的更新升級多次進(jìn)行補(bǔ)充認(rèn)證,并順利通過安全認(rèn)證。
結(jié)束語:從EN5012X標(biāo)準(zhǔn)中對驗證與確認(rèn)活動要求,驗證與確認(rèn)的重要性不言而喻。通過對EN5012X標(biāo)準(zhǔn)的研究和分析,計算機(jī)聯(lián)鎖產(chǎn)品在開發(fā)認(rèn)證的過程中項目按照制定的驗證與確認(rèn)計劃,人員架構(gòu)上始終堅持開發(fā)、測試、驗證、確認(rèn)四者相獨立的原則,進(jìn)行聯(lián)鎖系統(tǒng)產(chǎn)品的開發(fā)生命周期的測試、驗證、確認(rèn)活動。驗證與確認(rèn)活動保證需求的完備、設(shè)計對需求的覆蓋及一致性,保證實現(xiàn)的產(chǎn)品與需求和設(shè)計相符合,保證了輸出文檔的質(zhì)量符合EN5012X,為順利的通過第三方安全評估的奠定了堅實的基礎(chǔ)。同時對于EN5012X標(biāo)準(zhǔn),要理解實質(zhì),杜絕教條,且需要隨著后續(xù)的維護(hù)開發(fā)和實踐靈活運用。