1. 開發過程說明
系統層面:包括軟硬件集成測試、系統集成測試以及整車測試。
硬件層面:包括硬件集成與測試。
軟件層面:單元測試、集成測試。
2. 功能安全總體要求
2.1 各項指標
2.2 診斷覆蓋度舉例
針對一個信號舉例說明:
3. 功能安全測試要求
3.1 測試計劃
核心內容應包括,
測試對象:需要測試的對象描述,以及測試的範圍描述;
測試人員:人員能力、人員職責範圍等;
測試環境:涉及到的仿真環境(Simulink)、臺架環境(HIL、實驗臺架等)等;
測試工具:用到的各種軟件以及硬件測試工具,如Canoe、Canape、Inca等,說明工具的型號以及版本信息;
測試方法:功能安全表格中提到的針對各個階段,所需採取的測試手段或方法;
測試標準:測試通過以及失敗的準則;
測試條件:包括測試准入條件、測試準出條件以及測試異常退出條件等;
測試迴歸:定義迴歸策略,如在產品末期,進行一次全迴歸測試等;
測試時間計劃表:針對各個階段進行詳細的測試計劃安排,確保各個階段人、事、物齊全,確保測試按照計劃進行。
3.2 測試規格
根據不同的測試對象進行分析,選擇合適的測試方法、編寫測試用例。
測試用例應包括,
用例ID:每個測試用例應有唯一的測試ID,方便建立追溯;
測試方法:說明測試用例選擇的測試方法;
測試環境:說明當前用例的環境;
測試對象:說明對應的測試對象版本、配置信息;
輸入條件:說明測試用例的輸入條件;
測試步驟:說明測試用例的執行步驟;
預期結果:說明測試用例執行後預期的輸出、輸出範圍以及功能表現等,說明通過與失敗評判標準。
3.3 軟件相關測試
3.3.1 軟件單元測試
測試對象:
包括軟件單元內部的語句、邏輯以及單元給外部調用的接口。
驗證方法:
表8 可通過靜態驗證工具來進行驗證,
表9中,一般需要進行數據流以及控制流分析圖。
驗證要求:
證明軟件單元滿足軟件單元設計規範;
證明軟件單元符合軟硬件接口的定義;
證明軟件單元具有一定的魯棒性;
證明軟件單元不包含非期望的功能,且滿足下表覆蓋度。
這裏核心是需要藉助一定的工具,統計需求覆蓋度以及代碼覆蓋度。
3.3.2 軟件集成測試
測試對象:
軟件單元拼接集成後的軟件,針對針對各個模塊的交互接口以及集成起來的功能進行驗證測試。
測試方法:
資源使用測試,包括消耗的CPU資源、RAM、ROM等。
驗證要求:
證明軟件實現與軟件架構設計的符合性;
證明軟件與與軟硬件接口規範的符合性;
證明軟件包含了已定義的功能;
證明軟件具有一定的魯棒性,具備有效的錯誤探測以及處理機制;
證明軟件使用資源與預期消耗資源一致(或小於);
應滿足在軟件架構層面對要求的覆蓋率要求。
備註:爲了達到足夠的覆蓋度,可以採用不同的集成方法,分階段進行集成。
3.3.3 軟件安全需求驗證
目標是驗證嵌入式軟件符合軟件安全需求;
軟件安全需求實現的測試需要在目標硬件平臺上完成;
測試環境可選擇下表所示:
3.4 硬件相關測試
3.4.1 硬件集成測試
測試對象:
針對硬件單板,集成硬件要素和測試硬件設計,以驗證硬件設計符合適當 AS I L等級的硬件安全要求;
測試方法:
測試要求:
應驗證針對硬件安全要求的安全機制實施的完整性和正確性;
應驗證硬件在外部應力下的魯棒性;
測試設備應按照國標要求(如ISO17025)。
3.5 系統相關測試
3.5.1 軟-硬件集成測試
測試對象:
HSI,應以適當的覆蓋率測試軟硬件接口(HS I)要求,同時考慮 AS I L等級或應給出沒有關於 HS I遺留問題的理由。
測試方法:
一般選用HIL臺架進行故障注入測試。
測試要求:
驗證安全機制在軟硬件層的正確功能性能、準確性和時序;
驗證外部和內部接口在軟硬件層執行的一致性和正確性;
驗證對於硬件失效探測機制在軟硬件層面上與故障模型有關的診斷覆蓋率的有效性;
驗證安全相關要素在軟硬件層的魯棒性水平。
3.5.2 系統集成測試
測試對象:
組成系統的各個要素按照系統設計進行集成集成後的系統,證明各個系統要素正確交互、符合技術和功能安全要求,併爲沒有可能導致違背安全目標的非預期行爲提供足夠的置信度水平。
測試方法:
測試要求:
驗證功能和技術要求在系統層面的正確執行;
驗證安全機制在系統層的正確功能性能行爲、準確性和時序;
外部和內部接口在系統層面執行的一致性和正確性;
安全機制在系統層面的失效覆蓋率的有效性;
驗證系統層面的魯棒性水平。
3.5.3 整車集成測試
測試對象:
集成到整車後的相關項,爲了探測整車集成期間的系統性故障。
測試方法:
測試要求:
驗證功能安全要求在整車層面的正確的執行;
驗證安全機制在整車層面的正確功能性能、準確性和時序;
驗證整車層面外部接口實現的一致性和正確性;
驗證安全機制在整車層面的失效覆蓋率的有效性;
驗證整車層面的魯棒性水平。