測(cè)試(十二)——ISO 26262 ASIL等級(jí)對(duì)靜態(tài)測(cè)試的要求:工具置信度與證據(jù)鏈構(gòu)建)
?? 我的個(gè)人專(zhuān)欄《智能軟件工程AI4SE》《嵌入式面試總結(jié)》《嵌入式處理器架構(gòu)解析》《嵌入式與虛擬化》《嵌入式軟件測(cè)試》 Simplicity is the ultimate sophistication摘要本文圍繞 ISO 26262 標(biāo)準(zhǔn)對(duì)嵌入式軟件靜態(tài)測(cè)試的要求系統(tǒng)闡述 ASIL 等級(jí)與靜態(tài)測(cè)試深度、工具置信度等級(jí)TCL評(píng)估方法、工具鑒定流程以及靜態(tài)測(cè)試證據(jù)鏈的構(gòu)建路徑。文章重點(diǎn)說(shuō)明如何根據(jù) ASIL 等級(jí)確定工具置信度要求通過(guò) TI 與 TD 組合確定 TCL 等級(jí)并在工具置信度不足時(shí)開(kāi)展工具鑒定同時(shí)結(jié)合制動(dòng)控制模塊的追溯示例展示從安全需求到靜態(tài)測(cè)試規(guī)則、測(cè)試用例、測(cè)試結(jié)果、缺陷報(bào)告的完整證據(jù)鏈為功能安全評(píng)估提供可核查的支撐材料。1. 引言在功能安全開(kāi)發(fā)中ISO 26262 標(biāo)準(zhǔn)對(duì)嵌入式軟件的開(kāi)發(fā)過(guò)程提出了嚴(yán)格的驗(yàn)證要求。靜態(tài)測(cè)試作為軟件單元級(jí)驗(yàn)證的重要手段其執(zhí)行質(zhì)量直接關(guān)系到安全目標(biāo)的達(dá)成。然而靜態(tài)測(cè)試工具本身也是軟件同樣可能引入缺陷。因此ISO 26262 要求對(duì)靜態(tài)測(cè)試工具進(jìn)行置信度評(píng)估并構(gòu)建完整的證據(jù)鏈以證明測(cè)試結(jié)果的可信性。本文圍繞 ASIL 等級(jí)對(duì)靜態(tài)測(cè)試的要求重點(diǎn)闡述工具置信度評(píng)估方法與證據(jù)鏈構(gòu)建路徑。2. ASIL 等級(jí)與靜態(tài)測(cè)試要求概述ASILAutomotive Safety Integrity Level汽車(chē)安全完整性等級(jí)分為 A、B、C、D 四個(gè)等級(jí)其中 ASIL D 要求最為嚴(yán)格。不同 ASIL 等級(jí)對(duì)應(yīng)不同的安全目標(biāo)也決定了靜態(tài)測(cè)試的深度和嚴(yán)格程度。ASIL 等級(jí)靜態(tài)測(cè)試要求強(qiáng)度工具置信度要求ASIL A基礎(chǔ)要求TCL1 或 TCL2ASIL B中等要求TCL1 或 TCL2ASIL C較高要求TCL1通常ASIL D最高要求TCL1強(qiáng)制隨著 ASIL 等級(jí)提升靜態(tài)測(cè)試需要覆蓋更全面的缺陷類(lèi)別包括控制流、數(shù)據(jù)流、接口、邊界值等同時(shí)要求更高的結(jié)構(gòu)覆蓋率。3. 工具置信度等級(jí)TCL評(píng)估ISO 26262 第 8 部分定義了工具置信度等級(jí)Tool Confidence LevelTCL用于評(píng)估工具在特定使用場(chǎng)景下的可信程度。TCL 分為 TCL1、TCL2 和 TCL3 三個(gè)等級(jí)其中 TCL1 表示工具輸出可信度最高。3.1 工具影響TI評(píng)估工具影響Tool ImpactTI衡量工具輸出是否可能直接導(dǎo)致安全目標(biāo)失效。TI 分為 TI0 和 TI1 兩個(gè)等級(jí)TI0工具輸出不會(huì)直接導(dǎo)致安全目標(biāo)失效例如僅用于生成報(bào)告的輔助工具。TI1工具輸出可能直接導(dǎo)致安全目標(biāo)失效例如靜態(tài)分析工具漏報(bào)關(guān)鍵缺陷。3.2 工具錯(cuò)誤檢測(cè)TD評(píng)估工具錯(cuò)誤檢測(cè)Tool Error DetectionTD衡量工具輸出中的錯(cuò)誤能否被其他手段有效檢測(cè)。TD 分為 TD1、TD2 和 TD3 三個(gè)等級(jí)TD1存在高置信度的檢測(cè)機(jī)制能夠發(fā)現(xiàn)工具輸出中的錯(cuò)誤。TD2存在中等置信度的檢測(cè)機(jī)制。TD3不存在有效的錯(cuò)誤檢測(cè)機(jī)制。3.3 TCL 等級(jí)確定根據(jù) TI 和 TD 的組合可以確定工具的 TCL 等級(jí)。當(dāng)工具影響為 TI1 時(shí)TCL 等級(jí)由 TD 決定工具影響TI工具錯(cuò)誤檢測(cè)TD工具置信度等級(jí)TCLTI0任意TCL1TI1TD1TCL1TI1TD2TCL2TI1TD3TCL3對(duì)于 ASIL D 項(xiàng)目靜態(tài)測(cè)試工具通常需要達(dá)到 TCL1 等級(jí)這意味著工具影響為 TI1 時(shí)必須具備高置信度的錯(cuò)誤檢測(cè)機(jī)制TD1。4. 工具鑒定Tool Qualification流程當(dāng)靜態(tài)測(cè)試工具的 TCL 等級(jí)不滿足 ASIL 要求時(shí)需要進(jìn)行工具鑒定。工具鑒定的目標(biāo)是提供證據(jù)證明工具在特定使用場(chǎng)景下足夠可信。4.1 鑒定方法選擇ISO 26262 提供了多種工具鑒定方法包括方法 1a增加置信度通過(guò)工具開(kāi)發(fā)過(guò)程符合相關(guān)標(biāo)準(zhǔn)來(lái)證明。方法 1b驗(yàn)證工具通過(guò)測(cè)試工具本身來(lái)證明其正確性。方法 1c開(kāi)發(fā)符合安全標(biāo)準(zhǔn)的工具從源頭保證工具質(zhì)量。4.2 鑒定證據(jù)收集工具鑒定需要收集以下證據(jù)工具版本信息與配置說(shuō)明。工具開(kāi)發(fā)過(guò)程文檔包括需求、設(shè)計(jì)、測(cè)試記錄。工具在目標(biāo)項(xiàng)目中的使用場(chǎng)景說(shuō)明。工具驗(yàn)證結(jié)果包括測(cè)試用例和測(cè)試報(bào)告。工具已知限制和已知缺陷清單。5. 靜態(tài)測(cè)試證據(jù)鏈構(gòu)建證據(jù)鏈?zhǔn)亲C明靜態(tài)測(cè)試活動(dòng)滿足 ISO 26262 要求的關(guān)鍵交付物。一個(gè)完整的證據(jù)鏈應(yīng)當(dāng)覆蓋從測(cè)試計(jì)劃到測(cè)試報(bào)告的整個(gè)過(guò)程。5.1 證據(jù)鏈的組成要素靜態(tài)測(cè)試證據(jù)鏈通常包含以下要素測(cè)試計(jì)劃明確測(cè)試范圍、測(cè)試策略、通過(guò)準(zhǔn)則和工具配置。測(cè)試環(huán)境配置記錄工具版本、規(guī)則集配置、編譯選項(xiàng)等環(huán)境信息。測(cè)試用例與測(cè)試數(shù)據(jù)包括輸入數(shù)據(jù)、預(yù)期輸出和實(shí)際輸出。測(cè)試執(zhí)行記錄記錄測(cè)試執(zhí)行的時(shí)間、人員、結(jié)果。缺陷報(bào)告記錄發(fā)現(xiàn)的缺陷、嚴(yán)重等級(jí)和處理狀態(tài)。測(cè)試報(bào)告匯總測(cè)試結(jié)果評(píng)估是否滿足通過(guò)準(zhǔn)則。5.2 證據(jù)鏈的可追溯性證據(jù)鏈必須支持從安全需求到測(cè)試用例、再到測(cè)試結(jié)果的雙向追溯。具體包括安全需求追溯至對(duì)應(yīng)的靜態(tài)測(cè)試規(guī)則。靜態(tài)測(cè)試規(guī)則追溯至具體的測(cè)試用例。測(cè)試用例追溯至測(cè)試執(zhí)行記錄和缺陷報(bào)告。缺陷報(bào)告追溯至修復(fù)驗(yàn)證記錄。下面以一個(gè) ASIL C 項(xiàng)目的制動(dòng)控制模塊為例展示從安全需求到靜態(tài)測(cè)試規(guī)則、測(cè)試用例、測(cè)試結(jié)果、缺陷報(bào)告的完整追溯鏈。安全需求靜態(tài)測(cè)試規(guī)則測(cè)試用例測(cè)試結(jié)果缺陷報(bào)告SR-001制動(dòng)控制模塊不得出現(xiàn)未初始化變量RULE-001檢測(cè)未初始化變量MISRA C:2012 Rule 9.1TC-001構(gòu)造包含未初始化局部變量的函數(shù)并執(zhí)行靜態(tài)分析通過(guò)規(guī)則命中未初始化變量被檢出DR-001變量 brake_pressure 未初始化嚴(yán)重等級(jí)為高已修復(fù)并復(fù)測(cè)通過(guò)SR-002制動(dòng)控制模塊不得存在數(shù)組越界訪問(wèn)RULE-002檢測(cè)數(shù)組越界訪問(wèn)MISRA C:2012 Rule 18.1TC-002構(gòu)造索引超出數(shù)組邊界的訪問(wèn)路徑并執(zhí)行靜態(tài)分析通過(guò)規(guī)則命中越界訪問(wèn)被檢出DR-002數(shù)組 pedal_samples[8] 越界訪問(wèn)嚴(yán)重等級(jí)為高已修復(fù)并復(fù)測(cè)通過(guò)SR-003制動(dòng)控制模塊不得存在空指針解引用RULE-003檢測(cè)空指針解引用MISRA C:2012 Rule 11.9TC-003構(gòu)造空指針解引用路徑并執(zhí)行靜態(tài)分析通過(guò)規(guī)則命中空指針解引用被檢出DR-003指針 sensor_ptr 空指針解引用嚴(yán)重等級(jí)為高已修復(fù)并復(fù)測(cè)通過(guò)SR-004制動(dòng)控制模塊不得存在整數(shù)溢出風(fēng)險(xiǎn)RULE-004檢測(cè)整數(shù)溢出風(fēng)險(xiǎn)MISRA C:2012 Rule 10.4TC-004構(gòu)造可能觸發(fā)整數(shù)溢出的運(yùn)算表達(dá)式并執(zhí)行靜態(tài)分析通過(guò)規(guī)則命中整數(shù)溢出風(fēng)險(xiǎn)被檢出DR-004表達(dá)式 speed * factor 存在整數(shù)溢出風(fēng)險(xiǎn)嚴(yán)重等級(jí)為中已修復(fù)并復(fù)測(cè)通過(guò)上表展示了從安全需求出發(fā)逐級(jí)映射到靜態(tài)測(cè)試規(guī)則、測(cè)試用例、測(cè)試結(jié)果和缺陷報(bào)告的完整追溯鏈。每一行均可通過(guò)唯一編號(hào)實(shí)現(xiàn)雙向追溯例如從 DR-001 可反向定位到 TC-001、RULE-001 和 SR-001從而支撐功能安全評(píng)估中的證據(jù)核查。5.3 證據(jù)鏈的評(píng)審與歸檔證據(jù)鏈需要經(jīng)過(guò)獨(dú)立評(píng)審確認(rèn)其完整性、準(zhǔn)確性和一致性。評(píng)審?fù)ㄟ^(guò)后證據(jù)鏈應(yīng)歸檔保存作為功能安全評(píng)估的輸入材料。6. 不同 ASIL 等級(jí)下的靜態(tài)測(cè)試實(shí)踐6.1 ASIL A/B 項(xiàng)目實(shí)踐對(duì)于 ASIL A/B 項(xiàng)目靜態(tài)測(cè)試可以采用較為靈活的配置。工具置信度要求相對(duì)寬松但仍需建立基本的證據(jù)鏈記錄測(cè)試計(jì)劃和測(cè)試結(jié)果。6.2 ASIL C 項(xiàng)目實(shí)踐ASIL C 項(xiàng)目要求更嚴(yán)格的靜態(tài)測(cè)試覆蓋。建議采用經(jīng)過(guò)鑒定的靜態(tài)分析工具配置全面的規(guī)則集并建立完整的證據(jù)鏈包括測(cè)試環(huán)境配置和缺陷處理記錄。6.3 ASIL D 項(xiàng)目實(shí)踐ASIL D 項(xiàng)目對(duì)靜態(tài)測(cè)試的要求最為嚴(yán)格。必須使用 TCL1 等級(jí)的工具或完成工具鑒定。證據(jù)鏈需要覆蓋所有測(cè)試活動(dòng)并支持從安全需求到測(cè)試結(jié)果的完整追溯。建議引入獨(dú)立評(píng)審機(jī)制確保測(cè)試過(guò)程和結(jié)果的客觀性。7. 常見(jiàn)問(wèn)題與應(yīng)對(duì)策略7.1 工具置信度不足當(dāng)靜態(tài)測(cè)試工具無(wú)法達(dá)到目標(biāo) ASIL 等級(jí)要求的 TCL 時(shí)可以采取以下措施補(bǔ)充工具驗(yàn)證測(cè)試提升錯(cuò)誤檢測(cè)置信度。增加人工代碼評(píng)審作為補(bǔ)充驗(yàn)證手段。更換經(jīng)過(guò)鑒定的工具。7.2 證據(jù)鏈不完整證據(jù)鏈不完整是審核中常見(jiàn)的問(wèn)題。建議建立證據(jù)鏈管理模板在測(cè)試過(guò)程中同步記錄避免事后補(bǔ)錄導(dǎo)致信息缺失。7.3 規(guī)則集配置不當(dāng)靜態(tài)測(cè)試規(guī)則集應(yīng)與項(xiàng)目安全目標(biāo)匹配。建議根據(jù) ASIL 等級(jí)選擇對(duì)應(yīng)的規(guī)則子集并定期評(píng)審規(guī)則集的有效性。8. 總結(jié)ISO 26262 對(duì)嵌入式軟件靜態(tài)測(cè)試的要求隨 ASIL 等級(jí)提升而增強(qiáng)。工具置信度評(píng)估是確保測(cè)試結(jié)果可信的前提證據(jù)鏈構(gòu)建是證明測(cè)試活動(dòng)合規(guī)的關(guān)鍵。在實(shí)際項(xiàng)目中應(yīng)根據(jù) ASIL 等級(jí)選擇合適的工具配置和測(cè)試深度建立完整的證據(jù)鏈并通過(guò)獨(dú)立評(píng)審確保其質(zhì)量。通過(guò)系統(tǒng)化的工具置信度管理和證據(jù)鏈構(gòu)建可以有效支撐功能安全目標(biāo)的達(dá)成。