2020年,疫情影響著我們每個(gè)人的生活。
這一年,終將被歷史記住。
這一年,每個(gè)人戴上防護(hù)口罩,保護(hù)自己和家國。
這一年,很多人參與線上學(xué)習(xí),get新技能為工作加油。
這一年,蠻多人關(guān)注汽車ISO26262,堅(jiān)定踐行道路安全衛(wèi)士。
汽車行業(yè),越來越多企業(yè)取得了ISO26262流程認(rèn)證、產(chǎn)品認(rèn)證。隨著軟件功能比重加大,符合ISO26262標(biāo)準(zhǔn)的軟件開發(fā)過程,借助MBD技術(shù)構(gòu)建模型,軟件的驗(yàn)證當(dāng)然也要考慮模型的靜態(tài)驗(yàn)證(基于模型的規(guī)范檢查)、模型的動(dòng)態(tài)驗(yàn)證(基于模型的動(dòng)態(tài)測試)。
這一篇,我們介紹下,符合ISO26262標(biāo)準(zhǔn)軟件要求,采用MBD開發(fā)方式,如何進(jìn)行模型的驗(yàn)證,如何做好軟件的“防護(hù)服”或“防護(hù)口罩”,進(jìn)而提升軟件安全性。與大家分享結(jié)合模型形式的ISO 26262軟件驗(yàn)證要求、驗(yàn)證流程及實(shí)踐。
軟件驗(yàn)證“口罩防護(hù)”,功能安全“綠碼通行”
ISO 26262 軟件驗(yàn)證要求
軟件開發(fā)啟動(dòng)階段建模指南要求
——摘自ISO 26262-6:2018,Table1
? 1a執(zhí)行低復(fù)雜性:通過多個(gè)度量指標(biāo),來度量模型的復(fù)雜性,比如:
? Number of subsystems(子系統(tǒng)個(gè)數(shù))
? Number of blocks(模塊個(gè)數(shù))
? Number of linked library(鏈接庫的個(gè)數(shù))
? Number of charts(Chart個(gè)數(shù))
? Number of all objects in the chart(Chart中對象個(gè)數(shù))
? Number of states(狀態(tài)個(gè)數(shù))
? Number of transitions(轉(zhuǎn)移個(gè)數(shù))
? Number of MATLAB function(ML函數(shù)個(gè)數(shù))
? Number of stateflow code lines(SF代碼行數(shù))
? Effective lines of MATLAB function code metric(ML代碼有效行數(shù))
? Subsystem depth(子系統(tǒng)深度)
? Data and structure layer separation(數(shù)據(jù)和結(jié)構(gòu)分層)
? Cyclomatic Complexity (Local, Global)(圈復(fù)雜度)
其中,圈復(fù)雜度是備受企業(yè)關(guān)注的模型度量指標(biāo),它表征著模型中獨(dú)立路徑的個(gè)數(shù)。該指標(biāo)的閾值約束,能夠指導(dǎo)模型優(yōu)化,有利于降低模型的負(fù)載率。
ISO 26262 軟件驗(yàn)證流程
軟件驗(yàn)證分為靜態(tài)驗(yàn)證、動(dòng)態(tài)驗(yàn)證2個(gè)方面,我們重點(diǎn)來看看如何對模型進(jìn)行靜態(tài)驗(yàn)證、動(dòng)態(tài)驗(yàn)證。
? 模型靜態(tài)驗(yàn)證,概要理解為模型規(guī)范檢查。
? 模型靜態(tài)驗(yàn)證要求:
靜態(tài)驗(yàn)證方法
——摘自ISO 26262-6:2018,Table7
1b結(jié)對編程(2018版新增),可以通過2人組合方式火花碰撞解決潛在問題。
? 模型靜態(tài)驗(yàn)證工作流程:
Step1:定建模規(guī)范集合,借助企業(yè)經(jīng)驗(yàn)/行業(yè)標(biāo)準(zhǔn)規(guī)范/第三方推薦,定制出符合項(xiàng)目/產(chǎn)品要求的建模規(guī)范。行業(yè)標(biāo)準(zhǔn)規(guī)范,比如MAAB/HIS/MISAR_AC_SLSF等。
Step2:搭建建模規(guī)范自動(dòng)化工具,把Step1中定義的建模規(guī)范集合,通過靜態(tài)的模型語法分析進(jìn)行自動(dòng)化分析。規(guī)范檢查工具,比如用戶自定義開發(fā)腳本/第三方專業(yè)工具如MI等。
Step3:發(fā)布及應(yīng)用,導(dǎo)出模型規(guī)范檢查報(bào)告。
Step4:根據(jù)報(bào)告追溯模型不符合規(guī)范之處,變更模型。
Step5:重復(fù)Step2,按Step3終版報(bào)告。
模型靜態(tài)驗(yàn)證—工作流
? 動(dòng)態(tài)驗(yàn)證方面,即我們經(jīng)常會做的一項(xiàng)活動(dòng),動(dòng)態(tài)測試。
? 模型動(dòng)態(tài)驗(yàn)證要求:以模型為測試對象,通過測試要求、測試方法、測試用例、覆蓋率要求進(jìn)行一些約束。以單元驗(yàn)證為例,需要滿足以下要求。
動(dòng)態(tài)驗(yàn)證方法
——摘自ISO 26262-6:2018,Table7
1n模型代碼間的背靠背測試,模型作為一個(gè)“背”,模型自動(dòng)生成的代碼作為一個(gè)“背”,給與兩個(gè)同樣的激勵(lì),來對比輸出結(jié)果。
動(dòng)態(tài)驗(yàn)證生成測試用例方法
——摘自ISO 26262-6:2018,Table8
模型動(dòng)態(tài)驗(yàn)證,需要通過一定的方法,來分析test case。比如1c邊界值法,可以根據(jù)需求的邊界,比如有上邊界a、下邊界b,一般可以取:下邊界略小、下邊界、下邊界略大、邊界間普通值、上邊界略小、上邊界、上邊界略大值,生成test case。
結(jié)構(gòu)覆蓋率要求
——摘自ISO 26262-6:2018,Table9
評價(jià)動(dòng)態(tài)驗(yàn)證是否充分,要滿足需求覆蓋率。其次,要考慮結(jié)構(gòu)覆蓋率指標(biāo)。如不滿足,需要提供充分的證據(jù)來說明達(dá)不到覆蓋率的原因。
1b分支覆蓋,結(jié)合模型來理解,也叫判定覆蓋(DC),使得模型中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷的真假均曾被滿足。以下圖模型為例:
分析模型結(jié)構(gòu)覆蓋率
可以通過以下測試用例,達(dá)到分支覆蓋率要求:
測試用例
? 模型動(dòng)態(tài)驗(yàn)證工作流程:
Step1:制定測試計(jì)劃、策略
Step2:編寫測試用例
Step3:構(gòu)建測試工程
Step4:導(dǎo)出測試報(bào)告(問題清單)
Step5:根據(jù)報(bào)告/問題修改模型
Step5:重復(fù)Step2(補(bǔ)充測試用例)- Step5
Step6:導(dǎo)出測試報(bào)告
在模型動(dòng)態(tài)驗(yàn)證過程中,可以選擇不同的測試環(huán)境,來執(zhí)行測試。
選擇不同的模型動(dòng)態(tài)驗(yàn)證環(huán)境
ISO 26262 軟件驗(yàn)證實(shí)踐
在此,也結(jié)合ISO 26262 的V流程,小編也給大家分享下模型靜態(tài)驗(yàn)證+模型動(dòng)態(tài)驗(yàn)證的項(xiàng)目實(shí)踐總覽,歡迎大家圍觀。
? 幫助用戶構(gòu)建模型靜態(tài)驗(yàn)證規(guī)范集合及輔助環(huán)境:
模型靜態(tài)驗(yàn)證規(guī)范集合及輔助環(huán)境
模型靜態(tài)驗(yàn)證—工程化
? 幫助用戶安全功能安全要求,構(gòu)建一體化基于模型動(dòng)態(tài)驗(yàn)證(動(dòng)態(tài)測試)平臺:
符合功能安全的一體化基于模型動(dòng)態(tài)驗(yàn)證(動(dòng)態(tài)測試)平臺
經(jīng)緯恒潤
北京市海淀區(qū)知春路7號致真大廈D座6層
郵箱:market_dept@hirain.com
網(wǎng)址:www.hirain.com