席文茜
(卡斯柯信號有限公司,上海 200071)
鐵路信號系統安全軟件的V&V管理策略
席文茜
(卡斯柯信號有限公司,上海 200071)
結合相應的鐵路安全標準要求和實際項目應用經驗,由淺入深地對鐵路信號系統V&V (Verification (驗證) & Validation (確認)管理過程的思想和策略進行介紹,為鐵路安全軟件開發過程提供了貫穿軟件全生命周期的指導思路和推薦模式,從而提高軟件開發效率和有效性。
EN50128;V&V;系統性失效;SIL4;測試
鐵路信號系統是借助于電子工業自動化的手段實現對鐵路行車與調車作業進行安全有序地管理,是鐵路運輸的基礎設備。很多信號子系統需要達到SIL4級的安全級別。雖然如此,鐵路信號系統也可能出現故障。出現的故障分為兩種模式,即隨機性失效和系統性失效。
隨機性(硬件)失效是由于硬件老化或物理材料或體制降級造成的。這種失效是隨機出現的,可以通過概率統計分析得出其分布。
系統性失效是由需求、設計錯誤或管理、維護問題引起,或者可以說,是人為因素造成的。因此其根源是明確的,只要激發其起因,必有相應的結果或后果。換句話說,只要能夠改變其因,其失效是可以根除的。軟件失效就是個典型的例子,是指軟件在運行過程中產生的一種不希望或不可被接受的輸出行為。可把軟件看作是一個決定性函數,同樣的輸入條件,必定有一樣的輸出。一般情況下,為了防止軟件失效,會采取一些技術和方法,如圖1所示。
研究和實踐表明,在鐵路信號系統的安全軟件開發過程中,可以通過一些方法排除或減少系統性失效的情況發生,V&V過程即為推薦的排錯流程方法。

圖1 防止軟件失效的4種方法
如上所述,為了確保開發過程可控,減少人為失誤,通過合理的V&V策略,為產品開發過程提供一套貫穿軟件全生命周期的保障流程:包括定義整個項目中文檔追蹤關系,闡明EN50128及其他標準要求的方法和技術,以及規劃所有必須的驗證和測試活動等。通過設計和實施這些V&V活動,可以確保在系統軟件開發過程中各級文檔與其上、下級文檔的一致性,能夠盡早發現需求和設計中的問題,使項目進度、質量可控;通過V&V活動,可以保證測試設計對測試需求覆蓋的完整性,確保正確執行測試活動,最終保證實現的產品與需求和設計的一致性。同時,通過檢視整個開發過程,最終提供產品用于滿足用戶原始需求的相應證據。
所以V&V策略是手段,是幫助軟件開發在整個生命周期過程中將需求、設計、代碼、測試活動串聯起來。可以說,沒有V&V,項目開發過程難以得到有效控制;沒有V&V,產品開發質量難以得到有效保障。
V&V,即Verification (驗證) & Validation(確認)。
Verification,是通過對證據的檢查和分析,來判斷各開發階段的輸出滿足對輸入需求的完整性、正確性和一致性要求。具體可通過諸如文檔驗證、評審、審核、代碼走讀、代碼驗證來實現。
Validation,是通過對證據的檢查和分析,來判斷輸出的產品,如文檔或軟件滿足指定需求,特別是安全、質量和操作性等方面內容。具體可通過包括執行測試或審核等方式進行確認。
3.1V&V活動內容的定義
軟件開發的瀑布模型將軟件生命周期劃分為計劃、需求、設計、構建、編碼、測試等6個階段,同時模型也規定了它們自上而下、相互銜接的固定次序。按照生命周期模型的特點設計對應的V&V活動,如圖2所示。

圖2 軟件生命周期中的V&V活動
項目開始階段,需根據項目特點和系統、軟件的安全等級,規劃V&V策略,制定V&V計劃。在軟件開發的各階段根據V&V計劃開展V&V活動,其中包括:
1)開發文檔的評審和驗證,需要說明在評審和驗證過程中的發現細節,給出結論;
2)測試文檔的評審和驗證,需要說明在評審和驗證過程中的發現細節,給出結論;
3)測試執行,發現問題提交缺陷跟蹤管理;
4)回歸測試影響分析,確定回歸范圍;
5)測試驗證及內部審計,確保測試結果真實可靠;
6)整理V&V報告,匯總所有開發過程的證據以滿足EN50128及其他標準條款的要求。
需要注意的是,并不是所有的系統需求都可以通過設計測試用例、執行測試來進行驗證。諸如對系統應用環境的要求、系統軟件遵循的標準、以及一些告警標簽等目視需求,這些需求可通過分配給其他確認活動,如證明(Demonstration)、分析(Analysis)、電磁兼容試驗(EMC)來驗證關閉。
當所有的開發文檔更新后,驗證人員還需檢查修改情況,所有的驗證結果需交付給確認人員審核。對于每一個新的變化和問題都必須再次進行驗證。
3.2需求追蹤及意義
更進一步,需求跟蹤可以改善產品質量,降低維護成本,而且很容易實現重用。需求追蹤的目的是建立并維護開發過程中一系列成果之間的一致性,確保最終的工作成果符合用戶需求,如圖3所示。包括:

圖3 需求追蹤定義
保證需求的完備、設計對需求的覆蓋;
盡早發現需求和設計中的問題,使項目進度可控;
保證測試對需求和設計覆蓋的完整性;
保證實現的產品與需求和設計一致。
執行驗證,分別在導出的完整性Completeness和追蹤性Traceability表格中進行,通過逐條驗證父需求是否被完整正確覆蓋、子需求是否被正確追蹤。具體驗證時可參照下列原則:
檢查導出的內容是否正確(包括父子需求標簽、內容、屬性);
逐條檢查父需求的分配(allocation),確認分配是否正確;
逐條檢查父子需求的一致性,確認子需求完整覆蓋了父需求;
逐條檢查父子需求的安全屬性,確認所有非SIL0的需求被不少于一條的非SIL0子需求繼承,確認所有非安全的用例沒有追蹤安全需求;
逐條檢查父子需求的可追蹤性,確認父需求是子需求的源。
3.3驗證的內容和要求
驗證工作非常復雜,需要對照比較開發文檔與EN50128及其他安全標準的要求,檢查是否所有要求的內容都已在開發設計中體現,如對某種開發技術的應用要求、對特定應用的指導說明等。在驗證過程中,應根據V&V計劃定義的跟蹤覆蓋關系完整識別出輸入文件,防止文檔驗證時遺漏某個上級文檔,尤其是接口描述文檔。由于驗證活動不是簡單地檢查鏈接關系,它需要落實到具體內容和邏輯的正確性,所以要求驗證人員應該對需求和設計非常熟悉,以免驗證活動形式化。審核驗證報告時,是否所有的檢查項都具備驗證結果,對于上下層對應需求發生的較大變化,不適用于驗證條款的檢查項是否都給出了合理的解釋,附件和正文里的版本信息是否正確,驗證表格和正文里的統計數據是否一致等內容都需要關注。同時,還需檢查測試報告中的需求覆蓋狀態表格是否正確。對于測試過程中使用的測試平臺、測試工具、測試數據,也需要進行版本管理。
3.4測試的基本原則
為了設計出完整有效的測試用例以保障安全軟件測試質量, 需考慮使用一些基本的用例設計技術。常用的白盒測試用例設計方法,如分支覆蓋、語句覆蓋、條件覆蓋、判定覆蓋等。常用的黑盒測試用例設計方法,如等價類劃分、邊界值測試、因果圖、判定表、錯誤猜測等。往往在進行用例設計時,也需要考慮綜合運用以上技術。
為了設計出有效的測試用例,還必須滿足以下原則:
不應基于測試將不發現問題的假設來設計測試計劃;
檢查軟件是否執行了指定的行為只是測試的一部分,還應檢查軟件是否執行了未指定的行為;
應為非法的、非預期的條件以及正常的、預期的條件設計測試用例;
測試用例中必須包含期望輸出;
在代碼段中發現更多錯誤的概率與已經發現很多錯誤的代碼段成正比,按此推論應有目的地進行測試。
實際上,測試是一種高度創造性與挑戰智慧的任務,對于每一個測試用例,都必須徹底檢查每一個測試結果。對測試日志、測試配置、過程數據和測試結果進行必要的、清晰的、準確的記錄,確保測試記錄的完整性。另外,還要提高測試用例的復用性,避免丟棄測試用例,除非被測程序本身就是臨時的。
測試執行完成后需進行測試驗證活動。測試驗證主要是抽查測試執行與測試計劃和測試報告的一致性、抽查測試用例對輸入文檔的覆蓋完整性、抽查缺陷庫中缺陷信息的正確和完整性、檢查測試報告內容的完備性及是否滿足出口準則。一般在測試活動結束后或中間版本測試結束后,驗證測試活動按照測試計劃和用例執行。
3.5V&V活動獨立性要求
在最新的EN50128-2011中,對軟件開發組織的獨立性要求如圖4所示。

圖4 獨立性要求
所以,在安全軟件的開發項目中,應設置獨立的V&V團隊,方能達到并符合標準的要求。
可以看出,通過這樣的V&V管理流程,可以對鐵路信號系統軟件開發過程中的測試和驗證活動進行有效控制,對所有測試需求提供確認證明,收集EN50128及其他安全標準的方法和技術使用的證據,對開發和測試過程中使用到的工具質量進行評價,對軟件中遺留的開口問題進行歸納整理并形成輸出限制,并對整個V&V過程給出最終的結論。
目前,卡斯柯公司大部分鐵路信號系統的開發過程都采用了完整的V&V管理過程。V&V管理過程是貫徹在整個安全軟件開發生命周期的,是軟件開發項目管理中的重要環節,是確保軟件開發正確實施的有力保障,為產品能順利通過第三方安全認證提供了可靠的支持。隨著鐵路信號系統國產化進程的不斷突破以及鐵路信號系統安全軟件的不斷研發,進一步完善和優化既有的鐵路信號系統V&V管理過程勢在必行。同時,也會進一步結合工程項目實踐,摸索出一套更加有效的鐵路信號系統安全軟件V&V管理過程和策略。
[1]Steven R.Rakitin.軟件驗證與確認的最佳管理方法[M].包曉露,焦躍,譯.北京:電子工業出版社,2002.
[2]EN 50126可靠性、可用性、可維護性及安全性的規格及示范:鐵路應用[S].1999.
[3]EN 50128通信、信號和處理系統——鐵路控制及防護系統軟件:鐵路應用[S].2011.
[4]EN 50129通信、信號和處理系統——安全相關的信號電子系統:鐵路應用[S].2003.
Based on the relevant railway safety specifi cations and actual engineering experience, the paper introduces the ideas and strategies of V&V (Verifi cation & Validation) management procedures and provide guidance and proposed models for railway safety software development in the full-life period, in order to improve the software developing effi ciency and validity.
EN50128 standard; V&V; systematic failure; SIL4; testing
10.3969/j.issn.1673-4440.2016.04.005
2016-04-13)