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