安全關(guān)鍵型軟件標(biāo)準(zhǔn)高度關(guān)注如何有效地測(cè)試軟件。他們指出,有效的軟件測(cè)試需要一種規(guī)范的方法,其中代碼覆蓋率用于提供有關(guān)迄今為止測(cè)試有效性的反饋。應(yīng)用于系統(tǒng)的測(cè)試嚴(yán)格程度必須由系統(tǒng)故障的影響決定。后果越嚴(yán)重,測(cè)試必須越嚴(yán)格。
覆蓋率分析是軟件安全的重要組成部分,但隨之而來的是兩個(gè)問題 - 覆蓋率是多少 - 以及我如何最大限度地減少實(shí)施流程所涉及的工作量。讓我們看一下安全關(guān)鍵流程標(biāo)準(zhǔn)的指南,看看它們?nèi)绾斡懻摳采w范圍,以及覆蓋范圍如何影響風(fēng)險(xiǎn)管理。我們還將考慮實(shí)施工作 - 基本規(guī)則是從簡(jiǎn)單開始并建立 - 并嘗試了解這些因素如何結(jié)合在一起。
在現(xiàn)實(shí)生活中 – 從選擇承保級(jí)別的實(shí)際角度來看,始終從報(bào)表承保范圍開始,并在必要時(shí)從那里開始工作。DO-178 和 ISO 26262 的指南可幫助您確定適合您項(xiàng)目的覆蓋級(jí)別。這兩個(gè)標(biāo)準(zhǔn)都要求進(jìn)行系統(tǒng)安全評(píng)估,以確定故障的影響和系統(tǒng)目標(biāo)故障率,這反過來又定義了證明系統(tǒng)已經(jīng)過適當(dāng)測(cè)試所需的測(cè)試級(jí)別。毋庸置疑,失敗的影響越大,測(cè)試效果必須越嚴(yán)格。然后強(qiáng)制要求適當(dāng)級(jí)別的代碼覆蓋率,以證明已達(dá)到適當(dāng)?shù)臏y(cè)試級(jí)別。
這導(dǎo)致了一些問題,例如您的系統(tǒng)對(duì)您的任務(wù)有多重要?我應(yīng)該以什么樣的故障率為目標(biāo)?下表提供了一些關(guān)于選擇美國(guó)聯(lián)邦航空管理局 (FAA) 就 DO-178 討論的適當(dāng)覆蓋范圍級(jí)別的指導(dǎo)。
代碼覆蓋率作為測(cè)試嚴(yán)格性的衡量標(biāo)準(zhǔn)必須謹(jǐn)慎應(yīng)用。例如,在沒有測(cè)試計(jì)劃的情況下執(zhí)行系統(tǒng)所實(shí)現(xiàn)的覆蓋范圍是不合適的。執(zhí)行必須由測(cè)試計(jì)劃和需求驅(qū)動(dòng)。通常,安全關(guān)鍵軟件標(biāo)準(zhǔn)的指導(dǎo)是,為了證明適當(dāng)?shù)臏y(cè)試嚴(yán)格程度,測(cè)試必須由需求驅(qū)動(dòng)并在系統(tǒng)級(jí)別執(zhí)行。但是,根據(jù)適當(dāng)?shù)囊?,您可以使用在單元?jí)別驅(qū)動(dòng)的測(cè)試來補(bǔ)充此測(cè)試。只有這樣,才適合使用覆蓋率分析來衡量測(cè)試的完整性。
在實(shí)踐中,從系統(tǒng)級(jí)測(cè)試中實(shí)現(xiàn) 100% 的代碼覆蓋率既不合適也沒有必要。實(shí)現(xiàn)系統(tǒng)的最大代碼覆蓋率是一個(gè)迭代過程。使用代碼覆蓋率結(jié)果作為反饋,可以識(shí)別測(cè)試過程中的缺陷,例如缺少需求、缺少測(cè)試用例、無法訪問、不需要或失效/停用的代碼。然后可以添加測(cè)試用例,解決需求,重構(gòu)代碼以解決提出的問題。然后可以更新和重復(fù)測(cè)試,直到滿足項(xiàng)目的測(cè)試效果目標(biāo)。這可能包括考慮未使用的代碼(例如,當(dāng)僅使用部分開源組件時(shí))或用測(cè)試工具的結(jié)果增強(qiáng)系統(tǒng)級(jí)測(cè)試結(jié)果,甚至代碼檢查。
在選擇有助于進(jìn)行覆蓋率測(cè)量的工具時(shí),請(qǐng)務(wù)必注意,并非所有覆蓋率分析工具都是平等的,選擇錯(cuò)誤的工具可能會(huì)損害您準(zhǔn)確測(cè)量覆蓋范圍的能力,或者更糟的是,提供不正確的結(jié)果。以下是選擇覆蓋范圍分析工具時(shí)需要考慮的一些問題:
? 覆蓋率測(cè)量實(shí)施的內(nèi)存占用量是多少,尤其是在測(cè)試嵌入式系統(tǒng)時(shí)?
? 該工具是否支持您的嵌入式系統(tǒng)?
? 運(yùn)行時(shí)數(shù)據(jù)的內(nèi)存占用量是多少?您的系統(tǒng)是否有足夠的內(nèi)存來進(jìn)行有意義的測(cè)量?
? 檢測(cè)是否會(huì)影響系統(tǒng)運(yùn)行時(shí)行為?
DO-178 通過要求必須驗(yàn)證用于測(cè)量代碼覆蓋率的任何工具,以便在目標(biāo)環(huán)境中產(chǎn)生準(zhǔn)確、可靠的結(jié)果,從而為這些決策提供指導(dǎo)。因此,您需要確保您選擇的工具符合 DO-178 的要求,以便可以放心地使用它產(chǎn)生的結(jié)果,而無需進(jìn)一步驗(yàn)證。檢查工具的譜系。
代碼覆蓋率 — 提供基本保證
任何軟件項(xiàng)目的代碼質(zhì)量都可以從應(yīng)用安全關(guān)鍵標(biāo)準(zhǔn)中的一些簡(jiǎn)單指南中受益。為了控制測(cè)試的有效性,必須使用代碼覆蓋率來衡量測(cè)試的影響,使用適合軟件所需的測(cè)試嚴(yán)格程度的代碼覆蓋率級(jí)別。為了確保測(cè)試的嚴(yán)格性達(dá)到適當(dāng)?shù)乃?,所有測(cè)試都必須基于需求并在系統(tǒng)級(jí)別執(zhí)行。測(cè)試,測(cè)量,重復(fù)。如果沒有代碼覆蓋率分析,就不可能獲得提高測(cè)試有效性所需的反饋、知識(shí)和理解。選擇覆蓋范圍分析工具時(shí),請(qǐng)確保選擇 DO-178 限定工具,以確保選擇具有適當(dāng)譜系的工具。通過遵循這些準(zhǔn)則,任何軟件項(xiàng)目都可以達(dá)到安全關(guān)鍵系統(tǒng)通常預(yù)期的軟件質(zhì)量水平。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5046文章
18817瀏覽量
298516 -
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67765
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論