■ 王瑞 徐寧 王財進 王丁
安全軟件驗證確認在BTM開發中的應用
■ 王瑞 徐寧 王財進 王丁
以應答器傳輸模塊應用軟件為例,介紹驗證和確認人員參照EN 50128:2011標準,在整個軟件開發生命周期中的各項驗證和確認活動,為其他安全相關軟件的驗證確認活動提供參考。
EN 50128:2011;驗證確認;BTM應用軟件
EN 50128《鐵路應用 通信、信號和處理系統——用于鐵路控制和防護系統的軟件》是歐洲電氣委員會(CENELEC)下屬的SC9XA委員會以IEC 61508為基礎,針對鐵路應用安全相關軟件制定的標準。在EN 50128:2011標準中,對鐵路安全相關系統的軟件進行了安全完整性等級的劃分。根據不同的安全完整性等級,對系統整個軟件的軟件計劃、軟件需求、軟件結構設計、軟件模塊設計開發、軟件靜態測試、軟件動態測試、軟件集成測試、軟件確認等階段及階段 內的活動提出相應的流程和要求。其中,在軟件開發生命周期中各個階段進行驗證(Verification)和確認(Validation)是非常重要的內容。
應答器傳輸模塊(BTM)應用軟件主要負責應答器上行鏈路信號解調、應答器報文譯碼和向車載安全計算機發送應答器報文功能,其中應答器報文譯碼和向車載安全計算機發送應答器報文為安全相關功能。在設計開發這些功能時,需按照EN 50128:2011標準中規定的安全完整性等級4級(SIL 4)的相關要求進行。
BTM應用軟件主要實現應答器報文的解調、譯碼及與車載安全計算機進行通信的功能,實現了車-地通信功能。BTM應用軟件結構見圖1。
根據EN 50128:2011相關標準,BTM應用軟件的安全完整性等級應為4級(SIL4),軟件開發生命周期模型采用V模型(見圖2),可分為:軟件計劃階段、軟件 需求階段、軟件結構設計階段、軟件模塊設計階段、軟件代碼實現階段、軟件測試階段和軟件確認階段。在軟件開發的生命周期每個階段都應有驗證和確認工作的參與,以保證軟件開發生命周期內各階段工作和活動的正確可靠。

圖1 BTM應用軟件結構
圖3為EN 50128:2011標準中要求的關于SIL4等級的人員獨立性示意圖。參照EN 50128:2011標準的相關要求,在BTM應用軟件開發生命周期內,專門分配 了驗證和確認人員,確保了驗證和確認人員擁有足夠的獨立性——驗證人員僅向項目經理匯報,獨立于軟件系統開發人員,在技術方面具有否決權;確認人員工作獨立于軟件系統開發人員,為公司重要項目的決策者和把關者,在技術方面也具有一定的否定權,不用向項目經理報告。
驗證和確認活動貫穿于BTM應用軟件開發生命周期的各個階段,是一個循序漸進的過程。從計劃階段和需求階段開始,驗證和確認人員需在整個生命周期中循序漸進地對BTM應用軟件進行驗證確認,直至最后對完成的BTM應用軟件進行驗證確認。
4.1 軟件計劃階段
在軟件計劃階段,驗證和確認人員的主要任務是制定BTM應用軟件驗證和確認計劃。計劃內容主要包括:

圖2 軟件開發的生命周期模型

圖3 EN50128:2011標準人員職責分配
(1)驗證和確認的工作和目的;
(2)如何分配驗證和確認人員,以保證驗證和確認人員的獨立性;
(3)如何管理和開展開發生命周期中的驗證與確認活動;
(4)驗證確認的限制條件和活動環境等。
4.2 軟件需求階段
軟件需求階段包含需求分析和風險分析2個階段,主要圍繞軟件需求是否合理、需求描述是否準確清晰、風險分析是否全面正確、各種規避措施是否準確到位等內容進行驗證確認。在這一階段,由驗證和確認人員組織專家、項目經理和開發人員等相關人員開展工作。
需求階段的驗證確認是保證用戶的軟件需求轉化為設計之前能得到完全理解,軟件需求描述應清晰、正確、合理、可測試和可追蹤。以“當通信單元與列控車載計算機的通信鏈路異常時,該通信單元軟件能夠通過內部總線通知另外一系通信單元,并完成鏈路切換功能,保證設備正常工作”這一條需求為例,在驗證和確認該需求時應考慮到列控車載計算機的通信周期,以及鏈路切換時機等限制條件。實踐表明,驗證和確認工作在軟件需求階段非常重要。某些需求若不經過科學的驗證和確認,將對后期軟件開發設計造成很大影響。因此軟件需求應正確合理滿足用戶的需求,不能降低和過度拔高用戶的需求。
4.3 軟件設計階段
軟件設計階段可分為軟件結構設計、軟件模塊設計和軟件代碼實現3個階段。
(1)軟件結構設計階段:針對BTM應用軟件的整體架構進行設計;
(2)軟件模塊設計階段:針對BTM應用軟件詳細內容進行設計,主要包括每一個函數的輸入輸出及接口等內容;
(3)軟件代碼實現階段:將模塊設計轉變為代碼的過程,此階段輸出BTM應用軟件最終代碼。
在軟件設計階段驗證和確認的目的是確認BTM軟件需求在軟件設計中均被覆蓋,且可正確實現。這一階段,驗證和確認人員的主要工作是:
(1)驗證和確認在軟件結構設計和模塊設計中是否實現了所有的軟件需求。主要由驗證和確認人員組織專家、項目經理和開發設計人員等相關人員開展工作,從完整性、清晰性、準確性、合理性、可行性等方面針對相關文檔進行全面的檢查評審,評審相關文檔是否滿足BTM軟件需求及其可追溯性,并形成相應的驗證和確認報告。
(2)從軟件結構設計到軟件模塊設計進行逐步驗證。在驗證和確認過程中,對逐個需求逐層進行跟蹤分析,尤其是跟蹤那些重要的需求,確保它們在軟件結構設計階段和軟件模塊設計階段進行了正確合理體現。在該階段,驗證和確認人員采用的驗證方法主要是進行控制流分析和接口分析。
(3)在軟件設計階段還應針對軟件單元測試和軟件集成測試用例進行驗證,主要驗證和確認測試用例的正確性和可實施性,以及是否覆蓋了全部需求和設計內容。
(4)在軟件代碼編寫階段,驗證和確認編制的代碼是否符合軟件結構設計規范、軟件模塊設計規范和相關的編碼規范。在本階段,驗證和確認人員參照EN 50128:2011附錄A中的要求,借助TESTBED測試工具進行驗證和確認。
以“當通信單元與列控車載計算機的通信鏈路異常時,該通信單元軟件能夠通過內部總線通知另外一系通信單元,并完成鏈路切換功能,保證設備正常工作”這一條需求為例,首先應在軟件結構設計分配是否合理,BTM應用軟件與車載計算機的接口,BTM內部接口,以及BTM應用軟件的處理能力等方面進行驗證和確認。在代碼完成后,驗證和確認軟件單元測試和軟件集成測試用例,并借助TESTBED測試工具對代碼質量進行驗證和確認。
4.4 軟件測試階段
軟件測試階段主要包含軟件單元測試階段和軟件集成測試階段,主要實現BTM應用軟件代碼的單元模塊測試和集成測試的驗證確認。驗證和確認的手段是使用TESTBED測試工具進行BTM應用軟件的單元動態測試和軟件集成測試。
軟件測試的驗證和確認以白盒測試為主,兼做部分黑盒測試。驗證和確認人員通過分析和測試手段驗證軟件設計是否遵循系統設計文檔要求、設計是否合理、程序流程是否正確。具體要求如下:
(1)驗證和確認測試用例是否采用了合適的測試方法;
(2)驗證和確認測試用例是否100%覆蓋了軟件的所有語句;
(3)驗證和確認測試用例是否100%覆蓋了軟件的所有分支路徑;
(4)驗證和確認測試用例是否100%考慮了軟件中的所有邏輯條件語句;
(5)驗證和確認測試用例和其結果是否以機器可讀的形式記錄下來,以便后繼分析。
以BTM應用軟件與車載安全計算通信接口軟件為例,驗證和確認人員借助TESTBED測試工具針對這一部分軟件進行測試。HandleATPOrdersPDU函數可測性(Testability)、可維護性(Maintainability)、清晰度(Clarity)和回歸分析(Regression Analysis)測試均達到100%,測試通過(見圖4)。
當出現測試結果與預期結果不同的情況時,將由驗證和確認人員組織專家、項目經理、測試人員、設計開發人員等相關人員共同參與評審,分析產生此種差異的原因。如果確認此種差異是由設計代碼引入,則要確定代碼或設計的修改范圍,并進行相應的修改,之后進行回歸測試。驗證和確認過程中發現的問題修改,需要進行再驗證確認,以驗證確認問題是否解決。驗證確認控制流程見圖5。

圖4 TESTBED測試結果

圖5 驗證確認控制流程
4.5 軟件確認階段
在BTM應用軟件開發周期的最后確認階段,主要由確認驗證人員組織專家、項目經理和開發設計人員最終確認設計產出的軟件是否完全滿足用戶的需求及有關部門規定的相關安全指標。如果在確認過程中,確認人員對某一測試項目有疑問,還可由確認人員會同驗證人員,對這一測試項目進行復測。另外,按照第三方認證機構要求,確認人員可增測部分項目,對BTM應用軟件進行確認。
在BTM應用軟件確認階段,驗證和確認人員針對“軟件校驗1 023比特應答器報文數據的耗時不能大于20 μs”這一需求增加了部分測試用例。驗證和確認人員測試了校驗報文耗時大于20 μs、等于20 μs及校驗不正確等情況下BTM應用軟件的各種反應,對這一需求進行了進一步驗證確認。
參照EN 50128:2011標準,鐵路安全相關系統軟件開發從軟件計劃階段開始,歷經軟件需求階段、設計階段、測試階段及到最后的軟件確認階段,都應有驗證和確認人員的參與。以BTM應用軟件為例,介紹驗證和確認人員參照EN 50128:2011標準要求,依照驗證和確認計劃,始終保持驗證和確認工作的獨立性,在BTM應用軟件開發生命周期中各個階段進行的驗證和確認活動,為其他安全相關軟件在開發時需進行的驗證確認活動提供技術積累和經驗。
[1] EN 50128:2001 Railway applications-Communication,signalling and processing systems-Software for railway control and protection systems[S].
[2] EN 50128:2011 Railway applications-Communication,signalling and processing systems-Software for railway control and protection systems[S].
王 瑞:中國鐵道科學研究院通信信號研究所,助理研究員,北京,100081
徐 寧:中國鐵道科學研究院通信信號研究所,副研究員,北京,100081
王財進:中國鐵道科學研究院通信信號研究所,助理研究員,北京,100081
王 丁:中國鐵道科學研究院通信信號研究所,助理研究員,北京,100081
責任編輯 盧敏
U284;TP39
A
1672-061X(2015)02-0088-03
中國鐵道科學研究院科技研究開發計劃項目(2012YJ021)。
所獲獎項:2014年度中國鐵道學會科學技術獎二等獎。