徐登科 王 鯤 朱艷軍 劉 雋
中國鐵道科學研究院通信信號研究所,100081 北京
*研究實習員 **助理研究員
歐洲鐵路標準是歐洲電工標準委員會 (CENELEC)根據列車安全控制系統的技術條件制定的一系列安全相關系統開發和評估的參考標準。EN50128標準是相關系列標準的一部分,它對鐵路控制和防護設備中使用的可編程電子系統的軟件開發和安全保障進行了總體規范,并為開發不同安全完整性等級的系統軟件提供了相應的技術和措施,適用于鐵路控制和防護系統開發和實現的軟件以及軟件和系統之間。主要內容包括軟件安全完整性等級、軟件生命周期各階段的活動細則和文檔規范,以及人員的分配和職責等。各階段的活動包括軟件需求規范、軟件結構、軟件設計與實現、軟件驗證與測試、軟/硬件集成、軟件確認、軟件評估、軟件質量保障、軟件維護和軟件配置等。
在 EN50128標準中,為了確保開發各階段輸入條件的合理性與一致性,以及產品輸出的正確性與安全性,必須對某一特定階段的產品進行測試。測試前應先明確軟件安全完整性等級,才能采取相應的安全措施。在 EN50128中,將軟件安全完整性等級從 0級到 4級劃分為 5個等級。軟件安全完整性等級越高,軟件失效后的危險性影響也就越大,軟件開發時所應采取的安全保障技術和措施也就越復雜。因此,軟件安全完整性等級的高低,直接影響系統的安全性和資源的合理應用。EN50128中并沒有給出哪些風險應選取哪一級別的軟件安全完整性等級,這就需要在確定軟件安全完整性等級時,應遵循 EN50126中獲得安全完整性等級的一般過程,并綜合考慮軟件應用的特性、安全性功能的范圍劃分,以及社會經濟等諸多因素。
另外,按照 EN50128規定的條件,需對軟件開發的每個階段進行安全控制,要求各階段都有定義、活動、審查,并形成文檔以供交流、備查和維護。因此,需要在軟件質量保障計劃中明確所選取的軟件開發模型,以此來描述軟件開發的全部過程、活動和任務。雖然 EN50128中推薦了 2種典型的模型,但是在軟件開發時還要根據自身項目和開發的特點,在 EN50128的指導下設計出簡單、實用的軟件開發模型。
為了說明測試活動,以軟件安全完整性等級SIL4為例,根據軟件測試在軟件開發周期中的活動分布情況,將軟件測試的主要活動分為軟件模塊測試、軟件集成、軟/硬件集成。其中軟件集成測試由驗證員完成,其他活動都由設計者完成。驗證員除了完成軟件集成測試,還要驗證從需求、設計、一直到編碼的活動過程。
在執行安全相關系統的軟件測試活動時,首先應該在軟件需求規范和軟件質量保障計劃中,分別獲取軟件安全完整性等級和軟件開發生命周期模型。在鐵路安全相關系統中,鐵路信號系統軟件通常具有較高的的安全完整性等級。在此,以鐵路信號計算機聯鎖系統的輸出控制子系統的軟件為例,軟件安全完整性等級為 SIL4,軟件開發周期模型為 V模型,利用 EN50128指導軟件測試活動的執行。標準的制定通常是起總體規范和指導的作用,因此,在引用的時候應結合實際情況進行適當調整,使得整個過程更符合開發和管理流程。
按照軟件產品的定義范圍和安全功能劃分情況,在進行測試時,不僅要關心軟件內部的關系和特性,還應考慮軟件與系統之間的聯系。因此,從軟件工程的角度出發,結合 EN50128對軟件測試的要求,將軟件測試相關的活動劃分為軟件模塊測試、集成測試和系統測試 3個階段,并以圖1所示的流程執行測試。

圖1 軟件測試活動及流程控制
該應用中將整個軟件開發流程分為設計、測試、驗證和確認 4個過程。在每個設計階段,測試員在設計者完成設計和調試后,按照相應的測試要求執行測試,并分析和總結測試結果,形成測試報告。驗證員對每個設計階段和測試階段的正確性、一致性等進行階段性驗證。確認員對每一階段的設計、測試和驗證活動進行檢查,以確認是否可以進入下一階段的活動。
1.軟件模塊測試。主要是驗證每個模塊是否正確、合理地實現了設計規范所預定的功能,并盡可能早地找出軟件在設計與實現過程中可能存在的缺陷和不足。為此,需要嚴格按照測試計劃,對每個模塊依據設計的測試用例進行測試,以證實各模塊都完成了其特定的功能并符合軟件編碼規則要求。在軟件模塊測試階段主要采用了靜態分析和動態分析相結合的方法。
靜態分析是在軟件模塊不執行的情況下進行的測試活動,而動態分析是在測試輸入的驅動下執行軟件模塊的測試方法。在 EN50128中按照不同的軟件安全完整性等級,提供了許多靜態分析和動態分析所采取的技術方法和措施。該應用中根據SIL4推薦的要求,選取數據流分析、控制流分析和代碼走讀的技術,以邊界值分析、等價類劃分和錯誤猜測的方法設計測試用例,并對軟件模塊及整體的質量進行度量。在執行軟件模塊測試時,除了檢查每個模塊是否滿足規范需求之外,還以DO178B作為覆蓋率的要求標準,采用自動化測試工具,以保證所有源代碼以及條件的組合都至少有效執行一次,大大提高了測試的效率和質量。
2.軟件集成測試。通過一定的集成策略和方法,將完全通過模塊測試的軟件組合成一個整體,并根據軟件結構設計的要求對軟件接口和功能進行的測試活動。其目的是證明各軟件模塊的接口以及接口之間都滿足規定的需求。
執行集成測試時,首先應根據被測系統的特點,指定合適的集成測試策略。常見的集成策略,如自頂向下的集成、自底向上的集成等。該應用中,由于在模塊測試中已經對每個模塊進行了測試,所以選取自底向上的逐步爆炸式集成策略,并借助測試工具分析的軟件調用關系圖,完成模塊的集成。然后采用黑盒和灰盒測試技術設計測試用例,并將其作為輸入,借助自動化測試工具在編譯和仿真環境下進行測試。在進行軟件集成測試時,一定要遵循軟件測試的目標,即找出軟件中存在的缺陷和不足,以免和調試混淆。
3.系統測試。在完成了軟件的集成測試之后,對于比較復雜的系統,還應該完成軟/硬件的集成測試,以證明軟、硬件之間的相互作用能正確地完成它們預定的功能,然后再進行系統測試。由于該輸出子系統的軟件相對比較簡單,所以在系統測試時兼做軟/硬件集成測試,以確保它們的相容性。
系統測試是在集成測試完成后,在正式的運行環境中,將軟件、硬件、數據和人員等結合在一起,進行的一種綜合性測試。在測試員完成系統測試并提交測試報告后,驗證員對其結果和過程進行檢查,并由確認員進行最終的軟件確認,產生軟件確認報告。
系統測試可以分為功能性和非功能性二大類,其中功能測試是系統測試的基礎,通常采用黑盒測試技術,用來驗證軟件系統是否嚴格按照需求規范的要求予以實現;非功能性測試包含很多類型的測試,該應用中主要選取性能測試和安全性測試。
為了體現整個評估過程的獨立性,EN50128中對于安全完整性等級為 SIL4的人員配置采取了2種結構:一種是驗證員和確認員可以是同一個人,而且獨立于設計者/實現者,不直接向項目經理報告;另一種是驗證員和確認員必須是不同的人,驗證員直接向項目經理報告而確認員獨立。因為不論采取哪種方式,驗證員即承擔了驗證的角色又完成了測試的任務,所以在此應用中,為了更加體現各階段活動的獨立性,在 EN50128的基礎上,根據安全管理和控制要求,增加了集成者/測試員,對獨立性方面采取如圖2所示的組織結構。

圖2 實際應用的獨立性組織結構
與 EN50128提供的軟件測試獨立性組織結構相比,該結構主要有以下特點。
首先,集成者/測試員和驗證員獨立。在EN50128的軟件測試活動中,軟件模塊測試、軟件集成、軟/硬件集成階段的驗證環節無法監控,加上在驗證員和確認員是同一人的情況下,測試過程的質量更無法得到保障。另外,軟件測試屬于對軟件源代碼的驗證活動,以找出軟件中存在缺陷和不足為主,而驗證是檢查該階段輸出是否符合前一階段需求的行為。因此,該配置采取了測試和驗證由不同人員完成的方式,充分保證了該階段活動的獨立性。
其次,集成者/測試員和設計者獨立。在EN50128中,軟件模塊測試和軟/硬件集成都由設計者完成,在設計者和編程人員是同一人的情況下,設計者測試自身編寫的代碼,很容易造成測試盲區。對于安全相關系統的軟件,設計者通常考慮軟件完成了應該完成的功能,而容易忽視軟件不應該做的事情,并造成測試和調試混淆,導致在安全問題中埋下隱患。
最后,驗證員和確認員獨立。避免了驗證員和確認員是同一人的情況,驗證員對設計和測試的活動進行初步的驗證,再由確認員對該階段的總體活動進行檢查,而且確認員可以根據該階段設計、測試、驗證的具體情況,決定是否可以開始下一階段的執行,這樣有利于盡可能早的發現軟件錯誤,并得到及時修正缺陷,大大減少了后期修復缺陷的費用。
結合歐洲鐵路標準 EN50128,指導鐵路信號安全相關系統的軟件測試的執行。在整個測試應用過程中,始終貫徹測試與設計獨立、驗證與測試獨立、確認與驗證獨立的原則,采用靜態和動態相結合、黑盒和白盒相結合、人工檢查和自動測試相結合的測試技術,完成了該輸出子系統的軟件測試,為其滿足安全完整性等級起到了重要的作用。通過分析和探討該應用中測試的流程、組織結構及其獨立性,總結出了一套適合鐵路信號安全相關系統通用的軟件測試方法,為以后測試其他安全相關系統的軟件提供了寶貴的技術積累和經驗。
[1] EN-50128-2001,Railway applications-Communications,signalling and processing systems-Software for railway control and protection systems[S],2001.
[2] 趙大偉,田小芳,譚永東.EN50129及其在鐵路安全相關系統中的應用研究[J].中國安全科學學報,2007,17(10):102-108.
[3] (美)Glenford J.Myers.The Art of Software Testing(Second Edition)[M].John Wiley&Sons,Inc.,2004.