安全關(guān)鍵型軟件標(biāo)準(zhǔn)高度關(guān)注如何有效地測試軟件。他們指出,有效的軟件測試需要一種規(guī)范的方法,其中代碼覆蓋率用于提供有關(guān)迄今為止測試有效性的反饋。應(yīng)用于系統(tǒng)的測試嚴(yán)格程度必須由系統(tǒng)故障的影響決定。后果越嚴(yán)重,測試必須越嚴(yán)格。
覆蓋率分析是軟件安全的重要組成部分,但隨之而來的是兩個問題 - 覆蓋率是多少 - 以及我如何最大限度地減少實施流程所涉及的工作量。讓我們看一下安全關(guān)鍵流程標(biāo)準(zhǔn)的指南,看看它們?nèi)绾斡懻摳采w范圍,以及覆蓋范圍如何影響風(fēng)險管理。我們還將考慮實施工作 - 基本規(guī)則是從簡單開始并建立 - 并嘗試了解這些因素如何結(jié)合在一起。
在現(xiàn)實生活中 – 從選擇承保級別的實際角度來看,始終從報表承保范圍開始,并在必要時從那里開始工作。DO-178 和 ISO 26262 的指南可幫助您確定適合您項目的覆蓋級別。這兩個標(biāo)準(zhǔn)都要求進(jìn)行系統(tǒng)安全評估,以確定故障的影響和系統(tǒng)目標(biāo)故障率,這反過來又定義了證明系統(tǒng)已經(jīng)過適當(dāng)測試所需的測試級別。毋庸置疑,失敗的影響越大,測試效果必須越嚴(yán)格。然后強制要求適當(dāng)級別的代碼覆蓋率,以證明已達(dá)到適當(dāng)?shù)臏y試級別。
這導(dǎo)致了一些問題,例如您的系統(tǒng)對您的任務(wù)有多重要?我應(yīng)該以什么樣的故障率為目標(biāo)?下表提供了一些關(guān)于選擇美國聯(lián)邦航空管理局 (FAA) 就 DO-178 討論的適當(dāng)覆蓋范圍級別的指導(dǎo)。

代碼覆蓋率作為測試嚴(yán)格性的衡量標(biāo)準(zhǔn)必須謹(jǐn)慎應(yīng)用。例如,在沒有測試計劃的情況下執(zhí)行系統(tǒng)所實現(xiàn)的覆蓋范圍是不合適的。執(zhí)行必須由測試計劃和需求驅(qū)動。通常,安全關(guān)鍵軟件標(biāo)準(zhǔn)的指導(dǎo)是,為了證明適當(dāng)?shù)臏y試嚴(yán)格程度,測試必須由需求驅(qū)動并在系統(tǒng)級別執(zhí)行。但是,根據(jù)適當(dāng)?shù)囊?,您可以使用在單元級別驅(qū)動的測試來補充此測試。只有這樣,才適合使用覆蓋率分析來衡量測試的完整性。
在實踐中,從系統(tǒng)級測試中實現(xiàn) 100% 的代碼覆蓋率既不合適也沒有必要。實現(xiàn)系統(tǒng)的最大代碼覆蓋率是一個迭代過程。使用代碼覆蓋率結(jié)果作為反饋,可以識別測試過程中的缺陷,例如缺少需求、缺少測試用例、無法訪問、不需要或失效/停用的代碼。然后可以添加測試用例,解決需求,重構(gòu)代碼以解決提出的問題。然后可以更新和重復(fù)測試,直到滿足項目的測試效果目標(biāo)。這可能包括考慮未使用的代碼(例如,當(dāng)僅使用部分開源組件時)或用測試工具的結(jié)果增強系統(tǒng)級測試結(jié)果,甚至代碼檢查。
在選擇有助于進(jìn)行覆蓋率測量的工具時,請務(wù)必注意,并非所有覆蓋率分析工具都是平等的,選擇錯誤的工具可能會損害您準(zhǔn)確測量覆蓋范圍的能力,或者更糟的是,提供不正確的結(jié)果。以下是選擇覆蓋范圍分析工具時需要考慮的一些問題:
? 覆蓋率測量實施的內(nèi)存占用量是多少,尤其是在測試嵌入式系統(tǒng)時?
? 該工具是否支持您的嵌入式系統(tǒng)?
? 運行時數(shù)據(jù)的內(nèi)存占用量是多少?您的系統(tǒng)是否有足夠的內(nèi)存來進(jìn)行有意義的測量?
? 檢測是否會影響系統(tǒng)運行時行為?
DO-178 通過要求必須驗證用于測量代碼覆蓋率的任何工具,以便在目標(biāo)環(huán)境中產(chǎn)生準(zhǔn)確、可靠的結(jié)果,從而為這些決策提供指導(dǎo)。因此,您需要確保您選擇的工具符合 DO-178 的要求,以便可以放心地使用它產(chǎn)生的結(jié)果,而無需進(jìn)一步驗證。檢查工具的譜系。
代碼覆蓋率 — 提供基本保證
任何軟件項目的代碼質(zhì)量都可以從應(yīng)用安全關(guān)鍵標(biāo)準(zhǔn)中的一些簡單指南中受益。為了控制測試的有效性,必須使用代碼覆蓋率來衡量測試的影響,使用適合軟件所需的測試嚴(yán)格程度的代碼覆蓋率級別。為了確保測試的嚴(yán)格性達(dá)到適當(dāng)?shù)乃剑袦y試都必須基于需求并在系統(tǒng)級別執(zhí)行。測試,測量,重復(fù)。如果沒有代碼覆蓋率分析,就不可能獲得提高測試有效性所需的反饋、知識和理解。選擇覆蓋范圍分析工具時,請確保選擇 DO-178 限定工具,以確保選擇具有適當(dāng)譜系的工具。通過遵循這些準(zhǔn)則,任何軟件項目都可以達(dá)到安全關(guān)鍵系統(tǒng)通常預(yù)期的軟件質(zhì)量水平。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5177文章
20007瀏覽量
325636 -
代碼
+關(guān)注
關(guān)注
30文章
4927瀏覽量
72510
發(fā)布評論請先 登錄
為什么AGV是工業(yè)自動化必不可少?
嵌入式軟件測試與專業(yè)測試工具的必要性深度解析
4G工業(yè)網(wǎng)關(guān)是否還有需求
HarmonyOSAI編程單元測試用例
太陽光模擬器關(guān)鍵參數(shù) | 光譜匹配度、光譜覆蓋率及光譜偏離率
太陽光模擬器性能的影響參數(shù):光譜匹配度、光譜覆蓋率及光譜偏離率
如何評估協(xié)議分析儀的性能指標(biāo)?
HarmonyOS AI輔助編程工具(CodeGenie)代碼測試
如何判斷晶振是否起振
新能源車軟件單元測試深度解析:自動駕駛系統(tǒng)視角
IPv6 開啟網(wǎng)絡(luò)新時代的強勁引擎

100%代碼覆蓋率分析是否必不可少
評論