卡斯柯信號有限公司 李文明
城市軌道交通迅猛發展,對計算機聯鎖技術的安全性和可靠性提出了更高的要求。開發出符合歐洲鐵路信號標準EN5012X系列的計算機聯鎖產品,并通過第三方獨立認證成為大勢所趨。本文對EN50126,EN50128和EN50159對測試驗證方面的要求進行深入研究,并結合公司的計算機聯鎖產品,對EN5012X系列標準在計算機聯鎖產品開發過程中的應用做了深入的探討和說明。
信號系統在控制列車高速運行上起著越來越重要的作用,城市軌道交通的安全和可靠的運行在一定程度上取決于信號系統的安全性和可靠性的高低。眾多乘客的安全出行和信號系統的安全可靠性緊密的連接在一起。計算機聯鎖產品作為行車指揮控制自動化系統的主要組成部分,將領先的通信技術和計算機技術相結合,以提高運輸效率和保障行車安全。國內城市軌道交通的快速發展,對計算機聯鎖系統提出更高的要求。為滿足嚴苛的安全和可靠性要求,需要對歐洲電氣標準化委員會(CENELEC)針對信號系統的行業標準,即EN5012X標準進行研究,并進一步的結合公司的計算機聯鎖系統的特點,研究和開發出一套符合歐標的聯鎖產品開發流程。其中在開發流程中,測試與驗證階段的應用將是本文介紹的重點部分。本文將從人員獨立性、驗證、測試確認等方面進行介紹,如何確保計算機聯鎖產品的測試驗證和確認過程符合標準中對SIL4級產品的要求并順利通過第三方安全認證。
上世紀90年代,以IEC61508《電氣/電子/可編程電子安全系統的功能安全》為基礎,附加列車安全控制系統的技術條件,歐洲電氣標準化委員會(CENELEC)下屬的SC9XA委員會制定了一系列以計算機控制的信號系統作為對象的鐵路信號標準EN5012X。主要由以下幾個有關鐵路信號的安全標準,相應的標準關系如圖1所示。
EN50126鐵路應用-可靠性、可用度、可維修性和安全性(RAMS)技術條件和證明
EN50129鐵路應用-通信、信號和處理系統-安全相關的鐵路電子系統
EN50128鐵路應用-通信、信號和處理系統-鐵路控制和防護電子系統的軟件
EN50159鐵路應用-通信、信號和處理系統-安全相關的通信。
EN50126定義了整個鐵路系統的可靠性(reliability)、可用性(availability)、可維護性(maintainability)、安全性(safety),簡稱RAMS,并規定了安全生命周期內各個階段對RAMS的管理和要求。EN50126提供了國際和國內信號市場的基本準繩,為在一定時間內安全的完成一定等級的鐵路運輸系統提供了證據。進一步的說,EN50126定義了RAMS四者之間的關系以及影響RAMS的因素以及方法等。

圖1 CENELEC標準關系圖
EN50129定義了鐵路信號系統安全驗收和安全論據的要求,該標準主要對鐵路電子系統硬件方面的要求和安全論據進行了定義。考慮如何利用安全技術和分析方法降低安全相關系統的硬件故障概率,通過定義系統生命周期各階段的安全性目標和必須達到的要求對系統開發應用的每一個環節進行嚴格把關。通過質量管理措施、安全管理措施、功能和技術安全措施,才可進行安全接受和認證。
EN50128是針對軟件的安全提出相應的設計和規范標準,它建立在Working Group9 IEC/TC65(簡稱WG9)的研究成果上。標準對于鐵路控制和防護系統的軟件進行安全完整性等級(SIL)的劃分,根據不同的SIL等級,對整個軟件開發生命周期的階段活動提出對應的流程和措施要求。其中對軟件進行驗證和測試是進行第三方獨立認證評估的重要環節。
EN50159用于處理安全相關設備在傳輸系統中安全相關通信的標準。從功能完整性和安全完整性兩個角度來構造一個安全相關的傳輸系統。標準歸納了與通信相關的安全需求,用于指導為功能安全和技術安全提出證據。標準同時列舉了在通信系統中的安全危害來自傳輸系統的失效、傳輸過程中的環境干擾以及自然災害,并將多種危害可能迸發的后果歸結為丟包、亂序、重復、插入、延時等多種錯誤威脅。標準進一步的將傳輸系統類型分為封閉傳輸系統和開放傳輸系統。通過對傳輸系統的劃分,根據標準推薦的防御方法,有效的指導開發人員針對可能存在的風險進行規避。

圖2 計算機聯鎖產品人員組織架構
中國鐵路總公司將聯鎖系統的安全完整性等級定為SIL4級,根據EN50128-2011版標準在人員獨立性上的要求,計算機聯鎖產品的開發生命周期內,將確認驗證團隊和軟件開發團隊完全獨立。確包括靜態分析和動態測試。軟件靜態分析有規則檢查和代碼走讀。程序員遵照公司制定的C語言編碼規范進行編碼,完成之后使用TestBed工具進行規則檢查,如有違反項,需進行修改并再次檢查,直到所有違反項均被修正。進行代碼走讀,遵照公司制定的認、驗證、確認人員僅向驗證與確認經理進行匯報,不對項目經理進行直接負責。測試團隊和軟件開發團隊通過高級經理進行資源的協調和技術方案的決議。計算機聯鎖產品人員組織架構如圖2所示。

表1 需求驗證分配方法
驗證貫穿于系統的整個生命周期。根據產品開發計劃、質量保證計劃和安全保證計劃,驗證與確認經理負責編寫驗證與確認計劃,定義系統全生命周期內的驗證與確認活動及活動中涉及到的文檔結構,驗證與確認計劃應符合EN50128、EN50129等相關規范,并且需要在驗證與確認計劃或者項目開發計劃書中定義清楚工具的T1、T2、T3類等級,確保驗證與確認活動正確開展。對于測試平臺(包括自動化測試平臺)此類工具,可以單獨立項進行開發管理,也可以作為產品開發的一個組件進行開發管理。
由高級經理組織驗證與確認計劃的評審和驗證,在驗證與確認計劃通過評審后,高級經理組織對驗證與確認計劃進行驗證,出具相應的系統驗證與確認計劃驗證報告。
驗證人員在驗證與確認計劃中查看文檔追蹤關系,明確自己需要驗證的輸入文檔,確認所驗文檔(即子文檔)需要覆蓋的上級文檔(即父文檔)有哪些,并與驗證與確認經理確認以防止遺漏。并和項目經理確認父子文檔的版本以防止誤用文檔版本。
在人員資質上,驗證人員需要經過驗證方面的培訓和學會驗證工具的使用,并且對所驗證的文檔充分熟悉。在執行驗證時候,需要從完整性和跟蹤性兩個角度進行逐條逐句的驗證。總體的思路是需要子文檔能夠完整覆蓋父文檔的需求,確認父文檔需求是子需求的源頭,符合完整性、正確性、一致性原則。
更重要的是,驗證不僅僅需要檢查鏈接關系,更應該檢查父子文檔的覆蓋完整性、內容正確性、基線內的一致性。特別的,對于需求設計類文檔的驗證,驗證人員需要檢查需求標簽屬性,如安全完整性SIL等級繼承的正確性等,以及需求是否是清晰、可測、無二義性。而對于測試用例文檔驗證,驗證人員要根據計算機聯鎖產品的應用場景,查看是否符合產品的特定要求。
測試人員首先制定測試計劃,包含確定測試范圍,測試方案,根據確定測試的出入口準則、缺陷級別。其中測試方案規定測試系統的結構、測試環境、測試工具、測試原理、測試方法作為測試用例設計和執行的指導依據等。此外在測試計劃制定的過程中,需要進行需求驗證分配及管理,確保聯鎖需求被各個測試階段測試用例或者其他驗證方法有效、正確及完整覆蓋。驗證和分配的方法可參考表1所示。需求驗證分配表格由驗證與確認經理組織進行評審或審核,當需求或設計變更時,將變更需求驗證分配表格。
測試用例的設計上,依據需求驗證分配表格,分析并選用已有的測試用例進行修改完善或設計新的測試用例;獲取所需要的測試數據;完成測試樁函數的實現;根據測試資源、風險等約束條件,確認測試用例執行順序;獲取測試資源,開發測試軟件;建立并準備測試環境;評審測試用例的正確性、有效性和覆蓋充分性,評審測試環境和設備工具是否齊備并符合技術要求,評審通過后方可進入測試執行階段。特別需要強調的是,由于窮舉測試通常不可能,項目時間,測試資源有限,通過合理的測試方法組合,制定測試策略就顯得尤為重要,要分清主次,有所側重,通過測試方法的組合和設定合理的覆蓋率目標達到預定的質量目標。
根據EN50128標準的相關要求,計算機聯鎖產品的測試過程包括:單元測試、軟件/系統的集成測試和軟件/系統的確認測試。
單元測試是用來驗證代碼實現與軟件詳細設計的一致性,方法軟件代碼走讀規范執行;軟件動態測試采用的方法有基于結構的測試,錯誤猜測,邊界值測試和等價類劃分測試案例執行,在計算機聯鎖產品的測試中按照標準EN50128-2011推薦,使用語句覆蓋、分支覆蓋、修正的條件決策覆蓋率(MCDC),并要求覆蓋率均達到100%。
集成測試是在真實的目標機環境下進行測試,目的是檢驗軟件單元之間、任務(Task)之間的接口關系,并驗證已集成軟件系統是否符合設計要求。軟件集成測試一般應采用白盒測試和黑盒測試方法,從全局數據結構及軟件的適合性、準確性、互操作性、容錯性、資源利用性等軟件質量子特性方面考慮,確定測試內容。聯鎖軟件的集成測試采用自頂向下分步集成的方式,集成測試需要測試人員自己開發樁和驅動,通過打印日志的方式記錄測試結果,同時對測試日志進行判斷以確認設計的正確性。
確認測試的目的是檢驗軟件與需求規格說明的一致性。將已經集成好的聯鎖軟件,作為整個元素,與硬件板卡、接口模擬器、數據配置軟件、數據等其他系統元素結合在一起,在真實的目標機環境下,主要采用黑盒測試的方法設計測試用例,對系統進行一系列的組裝和確認測試,以覆蓋EN50128要求的功能測試和性能測試。軟件確認測試主要測試單系情況,重點關注所提供的布爾運算功能和安全機制、及其它非功能需求,并在被測軟件中插樁進行故障注入測試。而雙系情況的測試主要由系統層面的測試完成。
計算機聯鎖產品的系統集成測試是在真實或模擬真實系統工作環境下測試,其測試的重點在于測試各子系統間(如板卡之間、聯鎖處理子系統和操作顯示機之間)的接口是否滿足接口定義文件所規定的通信協議和消息傳遞的要求,以及集成后的聯鎖系統功能的正確性。對于與接口無關的功能需求,測試中分配給其他測試階段覆蓋,并保證證據鏈完整。
計算機聯鎖產品的系統確認測試是在真實聯鎖系統工作環境下檢驗完整的軟件配置項能否和聯鎖系統正確連接,并滿足聯鎖系統需求中的要求。具體包括針對系統功能和安全需求進行功能測試、性能測試以及健壯性測試,而在接口測試上側重于外部接口(如計算機聯鎖和區域控制器ZC、計算機聯鎖和鄰站聯鎖CBI)的測試。
計算機聯鎖系統通過安全網絡通信協議和ZC鄰站CBI進行通信。圖3所示為測試ZC鄰站CBI接口時候的測試環境圖。計算機聯鎖設備采用真實的聯鎖機架,操作顯示設備和維修機連接在測試環境圖中,接口模擬設備運行PC機上,并提供了良好的人機界面的顯示。通過操作顯示設備,維修機上進行參數追蹤和日志報警記錄,接口模擬器上觀察和發送接口信息,進行通信接口的測試。除常規的協議層測試、應用層測試、倒機切換測試外,為滿足EN50159中對于接口通信的要求,接口模擬器上按照通信協議注入丟包、亂序、超時等故障。
在聯鎖產品系統確認測試階段結束后,驗證與確認經理確認計算機聯鎖產品項目的驗證與確認活動是否按照驗證與確認計劃執行,確認驗證與確認活動執行過程與驗證與確認計劃的一致性,根據需要作為確認人員獨立補充測試案例或者場景進行測試活動;確認驗證與確認活動與EN50128等規范的符合性及基線內文檔版本一致性;評估開放的缺陷對產品質量的影響,檢查輸出限制手冊和用戶手冊的驗證情況。根據以上的檢查要點,最終形成驗證與確認報告。

圖3 聯鎖系統的測試架構(測試ZC鄰站CBI)
第三方安全評估是評估開發生命周期的過程和輸出產品是否具有規定的安全完善等級(SIL)。第三方評估人員評審項目的采用的一個重要手段就是對關鍵文檔進行評審。聯鎖產品作為SIL4級的安全產品,其開發和認證需要大量的文檔工作。文檔的完整、精確、一致、可追蹤以及可審計是通過認證的必要條件,也是后期可維護的重要保證。根據評估人員針對文檔反饋的問題清單進行答復,并經評估人員確認后對文檔進行修改。另一個重要的評估依據是評估人員隨著聯鎖產品開發過程進行的日常評估活動,如質量和安全評審,抽取測試用例,進行現場的測試見證。在聯鎖產品開發周期結束時,評估人員給出評估結論。iLOCK型產品是我公司基于NISAL安全原理自主開發并采用2乘2取2架構的,具有高安全和高可靠性的計算機聯鎖系統。該產品于2009年通過了TUV的CENENLEC SIL4安全認證,近年來也根據產品的更新升級多次進行補充認證,并順利通過安全認證。
結束語:從EN5012X標準中對驗證與確認活動要求,驗證與確認的重要性不言而喻。通過對EN5012X標準的研究和分析,計算機聯鎖產品在開發認證的過程中項目按照制定的驗證與確認計劃,人員架構上始終堅持開發、測試、驗證、確認四者相獨立的原則,進行聯鎖系統產品的開發生命周期的測試、驗證、確認活動。驗證與確認活動保證需求的完備、設計對需求的覆蓋及一致性,保證實現的產品與需求和設計相符合,保證了輸出文檔的質量符合EN5012X,為順利的通過第三方安全評估的奠定了堅實的基礎。同時對于EN5012X標準,要理解實質,杜絕教條,且需要隨著后續的維護開發和實踐靈活運用。