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

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

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

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

圖4 獨(dú)立性要求
所以,在安全軟件的開發(fā)項(xiàng)目中,應(yīng)設(shè)置獨(dú)立的V&V團(tuán)隊(duì),方能達(dá)到并符合標(biāo)準(zhǔn)的要求。
可以看出,通過這樣的V&V管理流程,可以對(duì)鐵路信號(hào)系統(tǒng)軟件開發(fā)過程中的測(cè)試和驗(yàn)證活動(dòng)進(jìn)行有效控制,對(duì)所有測(cè)試需求提供確認(rèn)證明,收集EN50128及其他安全標(biāo)準(zhǔn)的方法和技術(shù)使用的證據(jù),對(duì)開發(fā)和測(cè)試過程中使用到的工具質(zhì)量進(jìn)行評(píng)價(jià),對(duì)軟件中遺留的開口問題進(jìn)行歸納整理并形成輸出限制,并對(duì)整個(gè)V&V過程給出最終的結(jié)論。
目前,卡斯柯公司大部分鐵路信號(hào)系統(tǒng)的開發(fā)過程都采用了完整的V&V管理過程。V&V管理過程是貫徹在整個(gè)安全軟件開發(fā)生命周期的,是軟件開發(fā)項(xiàng)目管理中的重要環(huán)節(jié),是確保軟件開發(fā)正確實(shí)施的有力保障,為產(chǎn)品能順利通過第三方安全認(rèn)證提供了可靠的支持。隨著鐵路信號(hào)系統(tǒng)國產(chǎn)化進(jìn)程的不斷突破以及鐵路信號(hào)系統(tǒng)安全軟件的不斷研發(fā),進(jìn)一步完善和優(yōu)化既有的鐵路信號(hào)系統(tǒng)V&V管理過程勢(shì)在必行。同時(shí),也會(huì)進(jìn)一步結(jié)合工程項(xiàng)目實(shí)踐,摸索出一套更加有效的鐵路信號(hào)系統(tǒng)安全軟件V&V管理過程和策略。
[1]Steven R.Rakitin.軟件驗(yàn)證與確認(rèn)的最佳管理方法[M].包曉露,焦躍,譯.北京:電子工業(yè)出版社,2002.
[2]EN 50126可靠性、可用性、可維護(hù)性及安全性的規(guī)格及示范:鐵路應(yīng)用[S].1999.
[3]EN 50128通信、信號(hào)和處理系統(tǒng)——鐵路控制及防護(hù)系統(tǒng)軟件:鐵路應(yīng)用[S].2011.
[4]EN 50129通信、信號(hào)和處理系統(tǒng)——安全相關(guān)的信號(hào)電子系統(tǒng):鐵路應(yīng)用[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)