◆陳漢一 劉春明 韓小波
在DO-178C標準下對軍用信息系統(tǒng)軟件測試的考慮
◆陳漢一 劉春明 韓小波
(中國電子科技集團公司第28研究所 江蘇 210007)
DO-178C標準是在民航領(lǐng)域?qū)C載軟件進行適航認證的權(quán)威標準。本文首先對DO-178C標準針對軟件測試提出的目標要求進行了闡述,之后考慮在軍用信息系統(tǒng)軟件測試中參考實施DO-178C標準中強調(diào)的幾方面內(nèi)容,初步應(yīng)用到測試計劃、開發(fā)、執(zhí)行、覆蓋分析這幾個階段,期望通過加強軟件測試來提升軟件的可靠性。
DO-178C;軟件測試;測試目標
在軍用信息系統(tǒng)軟件的研制過程中,越來越重視軟件的安全性、可靠性,對軟件測試工作的要求也隨之變高。目前,國內(nèi)軍用軟件研發(fā)工作主要遵循GJB5000A《軍用軟件研制能力成熟度模型》,標準強調(diào)規(guī)范軟件研發(fā)過程,通過加強對過程管理控制提高軟件的質(zhì)量。
DO-178《機載系統(tǒng)和設(shè)備合格審定中的軟件考慮》是一套應(yīng)用于民航領(lǐng)域,對機載軟件進行適航認證的權(quán)威標準,與2011年12月發(fā)布了最新版本DO-178C。DO-178C針對不同安全等級的軟件分別提出了目標要求,通過審定確認目標的完成,確保軟件實現(xiàn)預(yù)期的功能,在安全性上滿足適航的要求。文獻[1]將DO-178C與GJB5000A進行了比較。
軟件測試是對軟件驗證的重要途徑,為了提高軟件的安全可靠性,本文研究了DO-178C標準對軟件測試提出的目標,考慮在軍用信息系統(tǒng)軟件的測試過程中實施。
DO-178C標準定義了幾種失效狀態(tài),分別為災(zāi)難性失效狀態(tài)、危險性/極其重要的失效狀態(tài)、重要的失效狀態(tài)、輕微的失效狀態(tài)以及無安全影響的失效狀態(tài)。依據(jù)軟件失效帶來的危害等級,將軟件分成以下5個安全等級[2]:
A級:異常狀態(tài)會引發(fā)系統(tǒng)災(zāi)難性失效狀態(tài)的軟件;
B級:異常狀態(tài)會引發(fā)系統(tǒng)極其嚴重失效狀態(tài)的軟件;
C級:異常狀態(tài)會引發(fā)系統(tǒng)重要失效狀態(tài)的軟件;
D級:異常狀態(tài)會引發(fā)系統(tǒng)輕微失效狀態(tài)的軟件;
E級:異常狀態(tài)會引發(fā)系統(tǒng)功能的失效,但并沒有給飛機工作能力或機組工作負荷帶來任何影響的軟件。
軟件級別越高,在軟件開發(fā)和驗證過程中,要求達到的目標也越多。
基于高層和低層需求的測試是DO-178C符合性要求的主要活動。表1中列出了DO-178C標準總結(jié)的基于需求的測試目標。
表1 基于需求的測試目標[2]
●該目標滿足獨立性
○該目標應(yīng)得到滿足
空白:目標的滿意度由申請人自行判斷
DO-178C聚焦于基于需求的測試,以保證需求得到滿足且僅需求得到滿足[3]。DO-178C提出了以下三種基于需求的測試方法[2]:
(1)軟硬件集成測試:在目標計算機上執(zhí)行軟件測試,識別軟件在其執(zhí)行環(huán)境中運行的錯誤。這種測試方法的目標就是要保證在目標計算機上運行的軟件能符合高層次的需求。
(2)軟件集成測試:這種測試方法的重點在軟件的相互關(guān)系,以保證軟件部件之間正確交互,并滿足需求和體系結(jié)構(gòu)。
(3)低層測試:該方法重點在于測試低層需求的符合性。
DO-178C還提出了正常測試用例和健壯性測試用例的開發(fā),并針對各等級的軟件提出了要求,A,B,C級軟件需要覆蓋高層需求和低層需求的正常、健壯性要求,低層次需求對D級軟件不作要求。
DO-178C標準對測試的覆蓋性也提出了一系列目標,主要包括需求覆蓋分析、結(jié)構(gòu)覆蓋分析。
2.3.1需求覆蓋分析
DO-178C標準對需求的覆蓋性提出了目標:達到高層次需求的測試范圍、達到低層次需求的測試范圍,確保所有的需求都得到了測試。D級軟件測試不要求覆蓋低層需求。
2.3.2結(jié)構(gòu)覆蓋分析
DO-178C標準針對不同的軟件等級,也提出了對結(jié)構(gòu)覆蓋的相關(guān)要求,如表2所示,A級軟件需要滿足語句覆蓋、判定覆蓋、修改的條件/判定覆蓋。結(jié)構(gòu)覆蓋分析是為了識別在基于需求的測試中沒有得到執(zhí)行的代碼結(jié)構(gòu)。
表2 結(jié)構(gòu)覆蓋要求
DO-178C標準還要求高安全等級的軟件要保證在基于需求的測試中執(zhí)行了軟件部件之間的數(shù)據(jù)耦合和控制耦合。DO-178C中給出了數(shù)據(jù)耦合和控制耦合的定義[2]:
(1)數(shù)據(jù)耦合:軟件部件對不是完全置于該部件控制下的數(shù)據(jù)的依賴性;
(2)控制耦合:一個軟件部件影響另一個軟件部件運行的方式和程度。
在國軍標中目標較常用的軍用信息系統(tǒng)軟件測試級別為單元測試、配置項測試、系統(tǒng)測試,可對應(yīng)到DO-178C中的底層測試、軟件集成測試、軟硬件集成測試。DO-178C標準對軟件測試工作強調(diào):測試聚焦于需求、開發(fā)正常測試用例和健壯性測試用例、測試覆蓋分析。本文考慮在軍用信息系統(tǒng)軟件的軟件測試工作中融合DO-178C標準中強調(diào)的這幾個方面。
在測試計劃階段,對測試進行需求分析與策劃,由軟件測試師和軟件負責人根據(jù)軟件需求、總體技術(shù)方案、項目開發(fā)計劃等文檔確定計劃執(zhí)行的測試范圍、測試項等,其他需要在測試計劃中制定的事項可參見文獻[4]。在配置項測試中,計劃的測試項應(yīng)完全覆蓋被測軟件配置項的功能、性能和外部接口;系統(tǒng)測試中,計劃執(zhí)行的測試項應(yīng)完全覆蓋被測軟件系統(tǒng)的功能、性能和外部接口。為了確保需求的覆蓋率,在每項需求和測試用例之間建立雙向追蹤,不能覆蓋需求時,須在測試計劃中給出合理說明。
測試用例基于軟件需求,在設(shè)計開發(fā)測試用例時,強調(diào)設(shè)計正常測試用例和異常測試用例。
異常測試用例的設(shè)計要點通常有:異常數(shù)據(jù)、異常數(shù)據(jù)類型、異常數(shù)據(jù)組合、異常數(shù)據(jù)序列、異常前提約束、非常規(guī)操作、最大負載、低配置、軟件硬件故障等。
依據(jù)不同的軟件安全等級,在單元測試中,要求覆蓋功能、接口的正常情況和異常情況;在配置項測試中,軟件配置項的每個特性都應(yīng)被經(jīng)過評審的正常測試用例和異常測試用例覆蓋;在系統(tǒng)測試中軟件系統(tǒng)的每個特性應(yīng)被經(jīng)過評審的正常測試用例和異常測試用例所覆蓋。
測試執(zhí)行過程應(yīng)按照測試規(guī)程要求進行,根據(jù)測試規(guī)程中的評估標準評估測試結(jié)果,測試執(zhí)行之后需要對測試結(jié)果進行評審,確保測試結(jié)果的正確性,對無法評估的測試用例進行分析。
系統(tǒng)測試通常需要在目標計算機上執(zhí)行,如果需要用目標計算機模擬器來執(zhí)行測試,需要評估模擬器與目標計算機之間的差別,表明可替代性。
根據(jù)軟件設(shè)計文檔中對軟件的安全等級劃分,在單元測試中對軟件進行結(jié)構(gòu)的測試覆蓋,包括語句覆蓋、判定覆蓋、修改的條件/判定覆蓋。不同級別的軟件需要滿足不同的覆蓋率,對D級軟件不作要求。由于軍用信息系統(tǒng)軟件較一般的機載軟件程序邏輯更復(fù)雜,覆蓋修改的條件/判定需要耗費過多的工作量,可考慮在軟件設(shè)計時對A級軟件進行細化,識別出A級軟件中的關(guān)鍵重要部件,對A級軟件中的關(guān)重件要求覆蓋修改的條件/判定。
可通過工具驗證結(jié)構(gòu)覆蓋率,在分析覆蓋率之前,需要根據(jù)需求編寫和評審測試。需求覆蓋率和結(jié)構(gòu)覆蓋率不是完全獨立的,應(yīng)先從低層需求著手,輸入符合需求的數(shù)據(jù)進行測試。針對沒有得到執(zhí)行的代碼,需要進行分析,并將分析結(jié)果寫入測試報告。
為了確?;谛枨蟮臏y試得到充分的執(zhí)行,還需對A、B、C級軟件進行數(shù)據(jù)耦合、控制耦合分析??赏ㄟ^工具或人工代碼審查的形式完成分析。
本文研究了DO-178C標準對軟件測試工作的目標要求,包括基于需求的測試目標、測試方法以及測試覆蓋性分析,并考慮將DO-178C標準中的一些目標要求運用到軍用信息系統(tǒng)軟件測試的測試計劃、測試開發(fā)、測試執(zhí)行以及測試分析過程中,希望從測試角度促進軟件質(zhì)量的提升。
[1]蔡喁,蔡開元. 機載軟件適航標準DO-178B/C研究[M]. 上海:上海交通大學出版社,2013.
[2] RTCA DO-178C,Software Consideration in Airborne System and Equipment Certification[S]. Washington:RTCA Inc, 2011.
[3]Leanna Rierson著. 崔曉峰譯. DO-178C標準實踐指南[M]. 北京:電子工業(yè)出版社,2015.
[4]GJB/Z 141-2004. 軍用軟件測試指南[S]. 中國人民解放軍總裝備部,2004.