符合ISO 26262標準的模型驗證技術
2020年,疫情影響著我們每個人的生活。
這一年,終將被歷史記住。
這一年,每個人戴上防護口罩,保護自己和家國。
這一年,很多人參與線上學習,get新技能為工作加油。
這一年,蠻多人關注汽車ISO26262,堅定踐行道路安全衛士。
汽車行業,越來越多企業取得了ISO26262流程認證、產品認證。隨著軟體功能比重加大,符合ISO26262標準的軟體開發過程,藉助MBD技術構建模型,軟體的驗證當然也要考慮模型的靜態驗證(基於模型的規範檢查)、模型的動態驗證(基於模型的動態測試)。
這一篇,我們介紹下,符合ISO26262標準軟體要求,採用MBD開發方式,如何進行模型的驗證,如何做好軟體的“防護服”或“防護口罩”,進而提升軟體安全性。與大家分享結合模型形式的ISO 26262軟體驗證要求、驗證流程及實踐。
軟體驗證“口罩防護”,功能安全“綠碼通行”
ISO 26262 軟體驗證要求
軟體開發啟動階段建模指南要求
——摘自ISO 26262-6:2018,Table1
• 1a執行低複雜性:透過多個度量指標,來度量模型的複雜性,比如:
♦ Number of subsystems(子系統個數)
♦ Number of blocks(模組個數)
♦ Number of linked library(連結庫的個數)
♦ Number of charts(Chart個數)
♦ Number of all objects in the chart(Chart中物件個數)
♦ Number of states(狀態個數)
♦ Number of transitions(轉移個數)
♦ Number of MATLAB function(ML函式個數)
♦ Number of stateflow code lines(SF程式碼行數)
♦ Effective lines of MATLAB function code metric(ML程式碼有效行數)
♦ Subsystem depth(子系統深度)
♦ Data and structure layer separation(資料和結構分層)
♦ Cyclomatic Complexity (Local, Global)(圈複雜度)
其中,圈複雜度是備受企業關注的模型度量指標,它表徵著模型中獨立路徑的個數。該指標的閾值約束,能夠指導模型最佳化,有利於降低模型的負載率。
• 1b使用語言子集、1c使用強資料型別、併發(2018版新增)等其他要求,
ISO 26262 軟體驗證流程
軟體驗證分為靜態驗證、動態驗證2個方面,我們重點來看看如何對模型進行靜態驗證、動態驗證。
•
模型靜態驗證,概要理解為模型規範檢查。
♦ 模型靜態驗證要求:
靜態驗證方法
——摘自ISO 26262-6:2018,Table7
1b結對程式設計(2018版新增),可以透過2人組合方式火花碰撞解決潛在問題。
1d半形式驗證,透過語法分析,藉助自動化工具,快速進行模型規範檢查,修改。
♦ 模型靜態驗證工作流程:
Step1:定建模規範集合,藉助企業經驗/行業標準規範/第三方推薦,定製出符合專案/產品要求的建模規範。行業標準規範,比如MAAB/HIS/MISAR_AC_SLSF等。
Step2:搭建建模規範自動化工具,把Step1中定義的建模規範集合,透過靜態的模型語法分析進行自動化分析。規範檢查工具,比如使用者自定義開發指令碼/第三方專業工具如MI等。
Step3:釋出及應用,匯出模型規範檢查報告。
Step4:根據報告追溯模型不符合規範之處,變更模型。
Step5:重複Step2,最終按Step3終版報告。
模型靜態驗證—工作流
•
動態驗證方面,即我們經常會做的一項活動,動態測試。
♦ 模型動態驗證要求:以模型為測試物件,透過測試要求、測試方法、測試用例、覆蓋率要求進行一些約束。以單元驗證為例,需要滿足以下要求。
動態驗證方法
——摘自ISO 26262-6:2018,Table7
1n模型程式碼間的背靠背測試,模型作為一個“背”,模型自動生成的程式碼作為一個“背”,給與兩個同樣的激勵,來對比輸出結果。
其他方面,1j基於需求測試、1k介面測試、1l故障注入測試 等,
動態驗證生成測試用例方法
——摘自ISO 26262-6:2018,Table8
模型動態驗證,需要透過一定的方法,來分析test case。比如1c邊界值法,可以根據需求的邊界,比如有上邊界a、下邊界b,一般可以取:下邊界略小、下邊界、下邊界略大、邊界間普通值、上邊界略小、上邊界、上邊界略大值,生成test case。
其他方面,1a基於需求分析、1b等價類生成與分析等,
結構覆蓋率要求
——摘自ISO 26262-6:2018,Table9
評價動態驗證是否充分,首要滿足需求覆蓋率。其次,要考慮結構覆蓋率指標。如不滿足,需要提供充分的證據來說明達不到覆蓋率的原因。
1b分支覆蓋,結合模型來理解,也叫判定覆蓋(DC),使得模型中每個判斷的取真分支和取假分支至少經歷一次,即判斷的真假均曾被滿足。以下圖模型為例:
分析模型結構覆蓋率
可以透過以下測試用例,達到分支覆蓋率要求:
測試用例
其他方面,1a 語句覆蓋、1c MC/DC覆蓋等,
♦ 模型動態驗證工作流程:
Step1:制定測試計劃、策略
Step2:編寫測試用例
Step3:構建測試工程
Step4:匯出測試報告(問題清單)
Step5:根據報告/問題修改模型
Step5:重複Step2(補充測試用例)- Step5
Step6:匯出最終測試報告
在模型動態驗證過程中,可以選擇不同的測試環境,來執行測試。
選擇不同的模型動態驗證環境
ISO 26262 軟體驗證實踐
在此,也結合ISO 26262 的V流程,小編也給大家分享下模型靜態驗證+模型動態驗證的專案實踐總覽,歡迎大家圍觀。
• 幫助使用者構建模型靜態驗證規範集合及輔助環境:
模型靜態驗證規範集合及輔助環境
模型靜態驗證—工程化
• 幫助使用者安全功能安全要求,構建一體化基於模型動態驗證(動態測試)平臺:
符合功能安全的一體化基於模型動態驗證(動態測試)平臺
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31536169/viewspace-2693477/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 符合 ISO 26262 標準的模型驗證諮詢服務模型
- GL Studio — 符合26262 標準的HMI 開發工具
- medini analyze — 符合ISO 26262 的功能安全平臺工具
- 保證軟體開發過程遵循ISO 26262標準的十個進階步驟
- 符合ISO 26262 的嵌入式軟體一體化測試工具
- 從標準到技術,保證IT組織的安全
- 符合ISO26262的零部件級的軟體測試解決方案
- TUV萊茵向廣汽研究院頒發ISO 26262與ISO 21448認證證書
- SOA技術標準的應用
- 4月16日線上研討會預熱 | medini analyze — 符合ISO 26262的功能安全平臺工具
- ISO14000標準認證需提交資料(轉載)
- POSIX.1 and ISO C標準標頭檔案
- web技術標準三要素Web
- 一篇技術文章合格的標準
- SOA技術標準的比較說明
- [技術討論]軟體的產品、技術、標準對話
- 如何保證 Java 應用安全?標準答案來了 | 龍蜥技術Java
- 微光集電獲TUV南德ISO 26262功能安全管理開發流程證書
- Mx Suite — ISO 26262 認證的嵌入式軟體一體化測試平臺UI
- 驗證碼的作用和相關技術
- Wsgiref 包——符合 WSGI 標準的 Web 服務實現(一)Web
- 網際網路創業標準,你符合嗎?創業
- 芯原晶片設計流程獲得ISO 26262汽車功能安全管理體系認證晶片
- 【原創】Struts1.x系列教程(12):Validator驗證框架的內建標準驗證框架
- 聊聊如何驗證線上的版本是符合預期的版本
- 小程式:技術標準與生態的演變
- webapi - 模型驗證WebAPI模型
- 驗證碼防薅羊毛技術的解讀
- TUV萊茵為斑馬智行智慧駕駛作業系統核心頒發ISO 26262 ASIL D認證證書作業系統
- 目標檢測 YOLO v3 驗證 COCO 模型YOLO模型
- 資料許可權技術驗證
- 技術準備:機率、模型和編碼 (轉)模型
- 技術團隊的標準化與可複用文化
- 謹慎做資料庫技術的標準化(轉)資料庫
- 為什麼要了解智慧家居技術標準?
- 可行動網路應用物件技術標準物件
- 實時驗證碼技術可改進生物識別身份驗證
- 網路模型的交叉驗證模型