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