国产精品一区二区三区91|午夜视频在线一区二区三|肉丝袜伦理一区二区三区|99精品久久久一区二区

首頁 > 技術(shù)文章 > 干貨 | 汽車功能安全軟件安全測試方法

干貨 | 汽車功能安全軟件安全測試方法

點擊次數(shù):922 更新時間:2023-02-06

近年來,智能網(wǎng)聯(lián)汽車行業(yè)已經(jīng)進入飛速發(fā)展的軌道,軟件定義汽車"已經(jīng)成為業(yè)內(nèi)人士的共識,同時也將面臨著功能安全、網(wǎng)絡(luò)安全等多重挑戰(zhàn)。本文通過對相關(guān)標(biāo)準(zhǔn)中測試要求的介紹,探討汽車功能安全測試的測試方法。


軟件安全測試內(nèi)容及方法

根據(jù)軟件開發(fā)V模型,軟件安全詳細(xì)設(shè)計完成之后,需要進行相應(yīng)的軟件驗證,集成及測試等內(nèi)容,即V模型右邊內(nèi)容,具體包括:軟件單元測試,軟件集成和測試,軟件安全要求驗證。具體如下圖所示:

2.png

 

軟件安全驗證方法

ISO 26262-6:2018針對軟件單元驗證、集成驗證、嵌入式軟件驗證這三部分內(nèi)容分別進行了闡述,并根據(jù)不同的ASIL等級對其驗證方法進行推薦:

3.png

4.png

5.png

 

上面列舉的三類測試,雖然它們屬于軟件開發(fā)V模型不同測試層級,但很多測試方法是共通的,例如基于需求的測試、接口測試、故障注入測試等等。

為更好地理解,我們可以從測試類型的角度,將以上測試方法分為:


• 靜態(tài)分析(Static Analysis)

• 動態(tài)分析(Dynamic Analysis)

對于功能安全軟件安全測試、軟件單元驗證、集成驗證、嵌入式軟件驗證對應(yīng)測試類型如下:

• 單元驗證:靜態(tài)分析 + 動態(tài)分析,靜態(tài)為主

• 集成驗證:靜態(tài)分析 + 動態(tài)分析,動態(tài)為主

• 嵌入式軟件驗證:動態(tài)分析


下面,對于靜態(tài)分析和動態(tài)分析進行詳細(xì)說明:


靜態(tài)分析

靜態(tài)測試屬于最基本的測試,是指不用執(zhí)行程序的測試,它主要采取代碼走查、技術(shù)評審、代碼審查等方法對軟件產(chǎn)品進行測試,主要包括以下內(nèi)容:

軟件/代碼是否滿足相關(guān)質(zhì)量標(biāo)準(zhǔn)?

─ 走查,結(jié)對編程,檢查

─ 控制流分析

─ 數(shù)據(jù)流分析

─ 靜態(tài)代碼分析

除不同類型的人為分析檢查外,靜態(tài)分析最重要內(nèi)容為靜態(tài)代碼分析,主要目的是檢查代碼編寫是否符合特定的編程規(guī)則。對于大部分車輛控制器代碼而言,靜態(tài)代碼分析,即C代碼靜態(tài)分析(如果基于模型開發(fā),則是自動生成的代碼),主要是保證代碼滿足MISRA C(Motor Industry Software Reliability Association, 汽車工業(yè)軟件可靠性協(xié)會)相關(guān)的要求。

靜態(tài)代碼分析一般可以直接采用自動化檢測軟件,例如SIMULINK、 Model Advisor; Vector、 VectorCAST; Perforce、Helix QAC等,通過配置代碼檢測規(guī)則,然后導(dǎo)入源文件進行自動化分析,如果不滿足相關(guān)要求,則需要對代碼進行修改,直至滿足為止。


動態(tài)分析

動態(tài)分析是指實際運行程序,并通過觀察程序運行的實際結(jié)果來發(fā)現(xiàn)錯誤的軟件測試技術(shù),它包括了以下幾個方面:

①軟件/代碼是否做了它應(yīng)該做的?

─ 基于需求測試─ 接口測試─ 背靠背測試

②軟件/代碼是否做了它不應(yīng)該做的?

─ 魯棒性測試

③軟件/代碼是否足夠?

─ 結(jié)構(gòu)覆蓋性測試

重要的動態(tài)測試包括:

【基于需求測試】 

基于分配的安全需求和測試環(huán)境,制定安全測試用例,測試用例一般包括5個關(guān)鍵參數(shù),即: 初始狀態(tài)或前提條件,數(shù)據(jù)設(shè)置、輸入、預(yù)期輸出、實際輸出。

【接口測試】     

不同軟件層次接口,包括信號名稱、數(shù)目、數(shù)據(jù)類型、范圍測試。

【故障注入測試】  

即魯棒性測試,故障注入測試主要目的是驗證系統(tǒng)設(shè)計、軟件設(shè)計過程所提出安全機制或安全措施的有效性,通過在特定位置注入錯誤,包括錯誤的數(shù)值、方向、頻率等,對系統(tǒng)功能安全機制響應(yīng)時間、診斷覆蓋等內(nèi)容進行驗證。

【背靠背測試】

基于模型設(shè)計的測試,驗證模型和生成的代碼的一致性,即采用相同的測試用例,同時輸入模型和生成的代碼進行執(zhí)行,對二者輸出結(jié)果進行比較,一致則通過,否則存在不一致。

除基本測試方法外,ISO 26262-6:2018對不同階段的軟件安全測試環(huán)境也有相應(yīng)的要求:

單元驗證及集成驗證:基于開發(fā)環(huán)境的軟件測試,包括模型在環(huán)、軟件在環(huán)、處理器在環(huán)、硬件在環(huán)。

嵌入式軟件驗證:硬件在環(huán)或車輛

 

我們的服務(wù)

廣電計量信息化服務(wù)事業(yè)部在汽車功能安全服務(wù)方面可提供相應(yīng)的培訓(xùn)、咨詢、認(rèn)證輔導(dǎo)服務(wù)。并且,可以基于汽車功能安全要求向整車企業(yè)及相關(guān)零部件企業(yè)提供完整的軟件評測服務(wù)。具體服務(wù)包括:

6.jpg