■ 王瑞 徐寧 王財進(jìn) 王丁
安全軟件驗證確認(rèn)在BTM開發(fā)中的應(yīng)用
■ 王瑞 徐寧 王財進(jìn) 王丁
以應(yīng)答器傳輸模塊應(yīng)用軟件為例,介紹驗證和確認(rèn)人員參照EN 50128:2011標(biāo)準(zhǔn),在整個軟件開發(fā)生命周期中的各項驗證和確認(rèn)活動,為其他安全相關(guān)軟件的驗證確認(rèn)活動提供參考。
EN 50128:2011;驗證確認(rèn);BTM應(yīng)用軟件
EN 50128《鐵路應(yīng)用 通信、信號和處理系統(tǒng)——用于鐵路控制和防護(hù)系統(tǒng)的軟件》是歐洲電氣委員會(CENELEC)下屬的SC9XA委員會以IEC 61508為基礎(chǔ),針對鐵路應(yīng)用安全相關(guān)軟件制定的標(biāo)準(zhǔn)。在EN 50128:2011標(biāo)準(zhǔn)中,對鐵路安全相關(guān)系統(tǒng)的軟件進(jìn)行了安全完整性等級的劃分。根據(jù)不同的安全完整性等級,對系統(tǒng)整個軟件的軟件計劃、軟件需求、軟件結(jié)構(gòu)設(shè)計、軟件模塊設(shè)計開發(fā)、軟件靜態(tài)測試、軟件動態(tài)測試、軟件集成測試、軟件確認(rèn)等階段及階段 內(nèi)的活動提出相應(yīng)的流程和要求。其中,在軟件開發(fā)生命周期中各個階段進(jìn)行驗證(Verification)和確認(rèn)(Validation)是非常重要的內(nèi)容。
應(yīng)答器傳輸模塊(BTM)應(yīng)用軟件主要負(fù)責(zé)應(yīng)答器上行鏈路信號解調(diào)、應(yīng)答器報文譯碼和向車載安全計算機發(fā)送應(yīng)答器報文功能,其中應(yīng)答器報文譯碼和向車載安全計算機發(fā)送應(yīng)答器報文為安全相關(guān)功能。在設(shè)計開發(fā)這些功能時,需按照EN 50128:2011標(biāo)準(zhǔn)中規(guī)定的安全完整性等級4級(SIL 4)的相關(guān)要求進(jìn)行。
BTM應(yīng)用軟件主要實現(xiàn)應(yīng)答器報文的解調(diào)、譯碼及與車載安全計算機進(jìn)行通信的功能,實現(xiàn)了車-地通信功能。BTM應(yīng)用軟件結(jié)構(gòu)見圖1。
根據(jù)EN 50128:2011相關(guān)標(biāo)準(zhǔn),BTM應(yīng)用軟件的安全完整性等級應(yīng)為4級(SIL4),軟件開發(fā)生命周期模型采用V模型(見圖2),可分為:軟件計劃階段、軟件 需求階段、軟件結(jié)構(gòu)設(shè)計階段、軟件模塊設(shè)計階段、軟件代碼實現(xiàn)階段、軟件測試階段和軟件確認(rèn)階段。在軟件開發(fā)的生命周期每個階段都應(yīng)有驗證和確認(rèn)工作的參與,以保證軟件開發(fā)生命周期內(nèi)各階段工作和活動的正確可靠。
圖1 BTM應(yīng)用軟件結(jié)構(gòu)
圖3為EN 50128:2011標(biāo)準(zhǔn)中要求的關(guān)于SIL4等級的人員獨立性示意圖。參照EN 50128:2011標(biāo)準(zhǔn)的相關(guān)要求,在BTM應(yīng)用軟件開發(fā)生命周期內(nèi),專門分配 了驗證和確認(rèn)人員,確保了驗證和確認(rèn)人員擁有足夠的獨立性——驗證人員僅向項目經(jīng)理匯報,獨立于軟件系統(tǒng)開發(fā)人員,在技術(shù)方面具有否決權(quán);確認(rèn)人員工作獨立于軟件系統(tǒng)開發(fā)人員,為公司重要項目的決策者和把關(guān)者,在技術(shù)方面也具有一定的否定權(quán),不用向項目經(jīng)理報告。
驗證和確認(rèn)活動貫穿于BTM應(yīng)用軟件開發(fā)生命周期的各個階段,是一個循序漸進(jìn)的過程。從計劃階段和需求階段開始,驗證和確認(rèn)人員需在整個生命周期中循序漸進(jìn)地對BTM應(yīng)用軟件進(jìn)行驗證確認(rèn),直至最后對完成的BTM應(yīng)用軟件進(jìn)行驗證確認(rèn)。
4.1 軟件計劃階段
在軟件計劃階段,驗證和確認(rèn)人員的主要任務(wù)是制定BTM應(yīng)用軟件驗證和確認(rèn)計劃。計劃內(nèi)容主要包括:
圖2 軟件開發(fā)的生命周期模型
圖3 EN50128:2011標(biāo)準(zhǔn)人員職責(zé)分配
(1)驗證和確認(rèn)的工作和目的;
(2)如何分配驗證和確認(rèn)人員,以保證驗證和確認(rèn)人員的獨立性;
(3)如何管理和開展開發(fā)生命周期中的驗證與確認(rèn)活動;
(4)驗證確認(rèn)的限制條件和活動環(huán)境等。
4.2 軟件需求階段
軟件需求階段包含需求分析和風(fēng)險分析2個階段,主要圍繞軟件需求是否合理、需求描述是否準(zhǔn)確清晰、風(fēng)險分析是否全面正確、各種規(guī)避措施是否準(zhǔn)確到位等內(nèi)容進(jìn)行驗證確認(rèn)。在這一階段,由驗證和確認(rèn)人員組織專家、項目經(jīng)理和開發(fā)人員等相關(guān)人員開展工作。
需求階段的驗證確認(rèn)是保證用戶的軟件需求轉(zhuǎn)化為設(shè)計之前能得到完全理解,軟件需求描述應(yīng)清晰、正確、合理、可測試和可追蹤。以“當(dāng)通信單元與列控車載計算機的通信鏈路異常時,該通信單元軟件能夠通過內(nèi)部總線通知另外一系通信單元,并完成鏈路切換功能,保證設(shè)備正常工作”這一條需求為例,在驗證和確認(rèn)該需求時應(yīng)考慮到列控車載計算機的通信周期,以及鏈路切換時機等限制條件。實踐表明,驗證和確認(rèn)工作在軟件需求階段非常重要。某些需求若不經(jīng)過科學(xué)的驗證和確認(rèn),將對后期軟件開發(fā)設(shè)計造成很大影響。因此軟件需求應(yīng)正確合理滿足用戶的需求,不能降低和過度拔高用戶的需求。
4.3 軟件設(shè)計階段
軟件設(shè)計階段可分為軟件結(jié)構(gòu)設(shè)計、軟件模塊設(shè)計和軟件代碼實現(xiàn)3個階段。
(1)軟件結(jié)構(gòu)設(shè)計階段:針對BTM應(yīng)用軟件的整體架構(gòu)進(jìn)行設(shè)計;
(2)軟件模塊設(shè)計階段:針對BTM應(yīng)用軟件詳細(xì)內(nèi)容進(jìn)行設(shè)計,主要包括每一個函數(shù)的輸入輸出及接口等內(nèi)容;
(3)軟件代碼實現(xiàn)階段:將模塊設(shè)計轉(zhuǎn)變?yōu)榇a的過程,此階段輸出BTM應(yīng)用軟件最終代碼。
在軟件設(shè)計階段驗證和確認(rèn)的目的是確認(rèn)BTM軟件需求在軟件設(shè)計中均被覆蓋,且可正確實現(xiàn)。這一階段,驗證和確認(rèn)人員的主要工作是:
(1)驗證和確認(rèn)在軟件結(jié)構(gòu)設(shè)計和模塊設(shè)計中是否實現(xiàn)了所有的軟件需求。主要由驗證和確認(rèn)人員組織專家、項目經(jīng)理和開發(fā)設(shè)計人員等相關(guān)人員開展工作,從完整性、清晰性、準(zhǔn)確性、合理性、可行性等方面針對相關(guān)文檔進(jìn)行全面的檢查評審,評審相關(guān)文檔是否滿足BTM軟件需求及其可追溯性,并形成相應(yīng)的驗證和確認(rèn)報告。
(2)從軟件結(jié)構(gòu)設(shè)計到軟件模塊設(shè)計進(jìn)行逐步驗證。在驗證和確認(rèn)過程中,對逐個需求逐層進(jìn)行跟蹤分析,尤其是跟蹤那些重要的需求,確保它們在軟件結(jié)構(gòu)設(shè)計階段和軟件模塊設(shè)計階段進(jìn)行了正確合理體現(xiàn)。在該階段,驗證和確認(rèn)人員采用的驗證方法主要是進(jìn)行控制流分析和接口分析。
(3)在軟件設(shè)計階段還應(yīng)針對軟件單元測試和軟件集成測試用例進(jìn)行驗證,主要驗證和確認(rèn)測試用例的正確性和可實施性,以及是否覆蓋了全部需求和設(shè)計內(nèi)容。
(4)在軟件代碼編寫階段,驗證和確認(rèn)編制的代碼是否符合軟件結(jié)構(gòu)設(shè)計規(guī)范、軟件模塊設(shè)計規(guī)范和相關(guān)的編碼規(guī)范。在本階段,驗證和確認(rèn)人員參照EN 50128:2011附錄A中的要求,借助TESTBED測試工具進(jìn)行驗證和確認(rèn)。
以“當(dāng)通信單元與列控車載計算機的通信鏈路異常時,該通信單元軟件能夠通過內(nèi)部總線通知另外一系通信單元,并完成鏈路切換功能,保證設(shè)備正常工作”這一條需求為例,首先應(yīng)在軟件結(jié)構(gòu)設(shè)計分配是否合理,BTM應(yīng)用軟件與車載計算機的接口,BTM內(nèi)部接口,以及BTM應(yīng)用軟件的處理能力等方面進(jìn)行驗證和確認(rèn)。在代碼完成后,驗證和確認(rèn)軟件單元測試和軟件集成測試用例,并借助TESTBED測試工具對代碼質(zhì)量進(jìn)行驗證和確認(rèn)。
4.4 軟件測試階段
軟件測試階段主要包含軟件單元測試階段和軟件集成測試階段,主要實現(xiàn)BTM應(yīng)用軟件代碼的單元模塊測試和集成測試的驗證確認(rèn)。驗證和確認(rèn)的手段是使用TESTBED測試工具進(jìn)行BTM應(yīng)用軟件的單元動態(tài)測試和軟件集成測試。
軟件測試的驗證和確認(rèn)以白盒測試為主,兼做部分黑盒測試。驗證和確認(rèn)人員通過分析和測試手段驗證軟件設(shè)計是否遵循系統(tǒng)設(shè)計文檔要求、設(shè)計是否合理、程序流程是否正確。具體要求如下:
(1)驗證和確認(rèn)測試用例是否采用了合適的測試方法;
(2)驗證和確認(rèn)測試用例是否100%覆蓋了軟件的所有語句;
(3)驗證和確認(rèn)測試用例是否100%覆蓋了軟件的所有分支路徑;
(4)驗證和確認(rèn)測試用例是否100%考慮了軟件中的所有邏輯條件語句;
(5)驗證和確認(rèn)測試用例和其結(jié)果是否以機器可讀的形式記錄下來,以便后繼分析。
以BTM應(yīng)用軟件與車載安全計算通信接口軟件為例,驗證和確認(rèn)人員借助TESTBED測試工具針對這一部分軟件進(jìn)行測試。HandleATPOrdersPDU函數(shù)可測性(Testability)、可維護(hù)性(Maintainability)、清晰度(Clarity)和回歸分析(Regression Analysis)測試均達(dá)到100%,測試通過(見圖4)。
當(dāng)出現(xiàn)測試結(jié)果與預(yù)期結(jié)果不同的情況時,將由驗證和確認(rèn)人員組織專家、項目經(jīng)理、測試人員、設(shè)計開發(fā)人員等相關(guān)人員共同參與評審,分析產(chǎn)生此種差異的原因。如果確認(rèn)此種差異是由設(shè)計代碼引入,則要確定代碼或設(shè)計的修改范圍,并進(jìn)行相應(yīng)的修改,之后進(jìn)行回歸測試。驗證和確認(rèn)過程中發(fā)現(xiàn)的問題修改,需要進(jìn)行再驗證確認(rèn),以驗證確認(rèn)問題是否解決。驗證確認(rèn)控制流程見圖5。
圖4 TESTBED測試結(jié)果
圖5 驗證確認(rèn)控制流程
4.5 軟件確認(rèn)階段
在BTM應(yīng)用軟件開發(fā)周期的最后確認(rèn)階段,主要由確認(rèn)驗證人員組織專家、項目經(jīng)理和開發(fā)設(shè)計人員最終確認(rèn)設(shè)計產(chǎn)出的軟件是否完全滿足用戶的需求及有關(guān)部門規(guī)定的相關(guān)安全指標(biāo)。如果在確認(rèn)過程中,確認(rèn)人員對某一測試項目有疑問,還可由確認(rèn)人員會同驗證人員,對這一測試項目進(jìn)行復(fù)測。另外,按照第三方認(rèn)證機構(gòu)要求,確認(rèn)人員可增測部分項目,對BTM應(yīng)用軟件進(jìn)行確認(rèn)。
在BTM應(yīng)用軟件確認(rèn)階段,驗證和確認(rèn)人員針對“軟件校驗1 023比特應(yīng)答器報文數(shù)據(jù)的耗時不能大于20 μs”這一需求增加了部分測試用例。驗證和確認(rèn)人員測試了校驗報文耗時大于20 μs、等于20 μs及校驗不正確等情況下BTM應(yīng)用軟件的各種反應(yīng),對這一需求進(jìn)行了進(jìn)一步驗證確認(rèn)。
參照EN 50128:2011標(biāo)準(zhǔn),鐵路安全相關(guān)系統(tǒng)軟件開發(fā)從軟件計劃階段開始,歷經(jīng)軟件需求階段、設(shè)計階段、測試階段及到最后的軟件確認(rèn)階段,都應(yīng)有驗證和確認(rèn)人員的參與。以BTM應(yīng)用軟件為例,介紹驗證和確認(rèn)人員參照EN 50128:2011標(biāo)準(zhǔn)要求,依照驗證和確認(rèn)計劃,始終保持驗證和確認(rèn)工作的獨立性,在BTM應(yīng)用軟件開發(fā)生命周期中各個階段進(jìn)行的驗證和確認(rèn)活動,為其他安全相關(guān)軟件在開發(fā)時需進(jìn)行的驗證確認(rèn)活動提供技術(shù)積累和經(jīng)驗。
[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].
王 瑞:中國鐵道科學(xué)研究院通信信號研究所,助理研究員,北京,100081
徐 寧:中國鐵道科學(xué)研究院通信信號研究所,副研究員,北京,100081
王財進(jìn):中國鐵道科學(xué)研究院通信信號研究所,助理研究員,北京,100081
王 ?。褐袊F道科學(xué)研究院通信信號研究所,助理研究員,北京,100081
責(zé)任編輯 盧敏
U284;TP39
A
1672-061X(2015)02-0088-03
中國鐵道科學(xué)研究院科技研究開發(fā)計劃項目(2012YJ021)。
所獲獎項:2014年度中國鐵道學(xué)會科學(xué)技術(shù)獎二等獎。