在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用靜態檢查工具完善功能安全中測試覆蓋率

MATLAB ? 來源:MATLAB ? 2024-09-05 09:15 ? 次閱讀

在功能安全中測試覆蓋率是比較重要的概念,也是在驗證過程中通常需要花費時間較多的步驟,如果能借助于靜態檢查工具的死邏輯查找和聲明、測試用例自動補全等功能往往能取得事半功倍的效果。功能安全標準中常見的幾種覆蓋率類型有:

- 語句覆蓋:程序中的每條語句是否都被執行到。

- 判定覆蓋(決策覆蓋):各分支路徑是否都被執行到。

- 條件覆蓋:進入分支前的判斷條件中的各子條件的可能輸出是否都滿足到。

- 修正條件判定覆蓋(MC/DC):每個能獨立影響到決策輸出的條件是否都被滿足到。MC/DC 其實是條件組合覆蓋的子集,條件組合覆蓋要求覆蓋判定中所有條件取值的所有可能組合,所需測試用例和條件數成指數關系,在實際應用中難以操作。MC/DC 具有條件組合覆蓋的優勢,同時大幅減少用例數。比如對于判定條件 X||(Y&&Z), MC/DC 通過下表的四個測試用例即可實現 100% 覆蓋,而如果采用條件組合覆蓋則需要8個測試用例,隨著條件數的增加用例數的差異會更加明顯。

wKgZombZBlyAKTM5AABgbFGSCIA155.jpg

在采用基于模型設計時,語句覆蓋對等的概念是執行覆蓋,意指模型中的每個基本模塊在仿真過程中是否都被運行到。判定覆蓋、條件覆蓋和 MC/DC 在模型層面均有類似的概念。

函數覆蓋和函數調用覆蓋

函數是程序的基本組成部分,程序通過調用函數實現功能,同一函數可能會被多次調用。如果所有定義的函數均被執行到,則滿足函數覆蓋;如果程序中的所有函數調用處(包括同一函數的多次調用)均被執行到,則滿足函數調用覆蓋。函數覆蓋和函數調用覆蓋只針對代碼,對于模型則沒有對應概念。在基于模型設計中,我們可以借助于軟件在環(SIL)測試來獲取這一指標。

單元級與架構級覆蓋率要求

在 ISO 26262:2018 中覆蓋率要求在單元級和架構級是不一樣的,因此如何合理劃分單元是非常重要的。

wKgZombZBlyAfm4rAADZsUsU2xY120.jpg

wKgZombZBlyAEQVtAACeZHuiLP4429.jpg

覆蓋率與死邏輯

在靜態檢查中有一項是檢查程序中有無不可達代碼(死邏輯),但并不能替代測試覆蓋率。沒有不可達代碼意味著有 100% 測試覆蓋的可能,后續還需要通過運行測試用例并收集到覆蓋率數據;有不可達代碼意味著從理論上無法通過測試達到 100% 覆蓋。

利用代碼檢查完善覆蓋率測試

在實踐中我們可以利用靜態檢查的這個能力來輔助測試覆蓋率,從而發現程序中的缺陷或者加以聲明(Justification)。以代碼靜態檢查和形式化驗證能力見長的 Polyspace 在 R2023b 之后增加了動態測試工具 Polyspace Test, 我們可以從以下案例中來看兩者是如何相輔相成實現測試覆蓋率和聲明的。

首先利用代碼解析功能查看程序中所涉及的頭文件、函數和數據類型,在函數調用圖中理解函數調用的層次關系。

wKgZombZBlyAX-_pAAJfbp0PINs438.jpg

在設計測試用例時可以與對應的需求進行鏈接,在編譯前選擇獲取代碼覆蓋率。

wKgaombZBlyADiMZAAEgGjw4JuY611.jpg

從收集的覆蓋率數據看到語句和決策覆蓋尚未滿足,也可以進一步分析具體的覆蓋點。

wKgaombZBlyAe3cBAAC6bI26bKk063.jpg

wKgaombZBlyABMRdAAMur_XlbK4678.jpg

將已有的覆蓋率數據作為輸入并借助于自動生成測試功能,再次運行包括新增的生成用例在內的所有用例,覆蓋率數據有明顯提升,尚未達到的決策覆蓋很有可能是不可達代碼。

wKgaombZBlyAEQS1AAI3unaCGXw002.jpg

wKgaombZBlyASgBjAAF1AaGJSrQ474.jpg

我們可以借助集成的靜態檢查和形式化驗證功能分析并定位到具體的不可達代碼處,通過代碼審查排查代碼缺陷或者將靜態檢查結果導入到覆蓋分析中作為聲明。

wKgaombZBlyAO92cAAN8nVgr7e8176.jpg

wKgZombZBlyAM1eTAALcRYN_xxo994.jpg

以上從工具的角度展示了如何利用靜態檢查和形式化驗證的能力來完善測試覆蓋率的過程,具體的使用方法需要根據代碼的安全要求和質量目標所定的流程來開展。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4331

    瀏覽量

    62610
  • 代碼
    +關注

    關注

    30

    文章

    4788

    瀏覽量

    68603
  • 功能安全
    +關注

    關注

    2

    文章

    92

    瀏覽量

    5652
  • 靜態檢查
    +關注

    關注

    0

    文章

    3

    瀏覽量

    844

原文標題:功能安全 | 利用代碼檢查完善測試覆蓋率

文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何提高DFT設計測試覆蓋率

    提高DFT設計測試覆蓋率的有效方法是什么
    發表于 05-07 06:37

    嵌入式仿真平臺SkyEye的覆蓋率分析相關資料下載

    代碼執娜行覆蓋情況的功能,來檢測代碼未執行覆蓋情況。在覆蓋率分析時需要分析嵌入式軟件的指令覆蓋率
    發表于 12-17 07:27

    單元測試/集成測試自動化工具--WinAMS

    直接使用目標機代碼進行單元測試聯合靜態解析工具[CasePlayer2],提供C0(語句),C1(判定),MC/DC覆蓋率報告,優化測試
    發表于 06-17 18:26

    關于SpinalHDL的驗證覆蓋率收集簡單說明

    在做RTL仿真驗證時,覆蓋率收集往往是我們在驗證需要注意的地方,本篇就SpinalHDL的驗證覆蓋率收集做一個簡單說明。sbt配置在SpinalHDL里進行仿真驗證時,我們的待
    發表于 06-24 15:56

    重點厘清覆蓋率相關的概念以及在芯片開發流程中跟覆蓋率相關的事項

    較麻煩,工程師們需要針對各種各樣的功能和應用場景,使用SV等驗證語言去實現覆蓋率模型(Coverage Model)或斷言(Assertion),并且從大量的回歸測試(Regression)
    發表于 09-14 11:57

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少
    發表于 04-29 12:35 ?8430次閱讀

    使用 Veloce 完成局部系統級協議檢查覆蓋率收斂

    使用 Veloce 完成局部系統級協議檢查覆蓋率收斂
    發表于 09-05 08:39 ?4次下載
    使用 Veloce 完成局部系統級協議<b class='flag-5'>檢查</b>和 <b class='flag-5'>覆蓋率</b>收斂

    汽車功能安全診斷覆蓋率的評估

    例一種安全機制可以在本附件具有較高的通用典型診斷覆蓋率,但如果所使用的診斷測試間隔大于符合相關容錯時間間隔所需的診斷測試間隔,則避免違反
    的頭像 發表于 08-25 15:30 ?5423次閱讀
    汽車<b class='flag-5'>功能</b><b class='flag-5'>安全</b>診斷<b class='flag-5'>覆蓋率</b>的評估

    嵌入式代碼覆蓋率統計方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中檢查的程序源代碼比例計算得出。代碼覆蓋率可以有效避免包含未
    的頭像 發表于 01-06 15:06 ?3168次閱讀
    嵌入式代碼<b class='flag-5'>覆蓋率</b>統計方法和經驗

    嵌入式代碼覆蓋率如何進行統計有哪些方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中檢查的程序源代碼比例 計算得出。代碼覆蓋率可以有效避免包含未
    的頭像 發表于 01-09 11:12 ?3079次閱讀
    嵌入式代碼<b class='flag-5'>覆蓋率</b>如何進行統計有哪些方法和經驗

    統計嵌入式代碼覆蓋率的方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中檢查的程序源代碼比例計算得出。代碼覆蓋率可以有效避免包含未
    的頭像 發表于 03-29 11:58 ?1954次閱讀
    統計嵌入式代碼<b class='flag-5'>覆蓋率</b>的方法和經驗

    代碼覆蓋率工具的重要性

    測試覆蓋率是軟件質量的重要指標,也是軟件維護的重要組成部分。它通過提供不同承保項目的數據來幫助評估測試的有效性。這種洞察力允許通過為未經測試的代碼定義新的
    的頭像 發表于 12-08 15:13 ?1466次閱讀
    代碼<b class='flag-5'>覆蓋率</b><b class='flag-5'>工具</b>的重要性

    EDA仿真驗證環境的激勵、檢查覆蓋率

    下圖是一個典型的EDA仿真驗證環境,其中主要的組件就是激勵生成、檢查覆蓋率收集。
    的頭像 發表于 04-15 10:13 ?1716次閱讀

    靜態代碼測試工具Helix QAC 2023.1更新快訊:主打編碼標準覆蓋率

    Helix QAC 2023.1 對 MISRA C:2012修訂版4和MISRA C:2023的覆蓋率為100%,對 AUTOSAR C++14的覆蓋率為96%。它還更新了CWE最新版本v4.10
    的頭像 發表于 04-13 16:44 ?1196次閱讀
    <b class='flag-5'>靜態</b>代碼<b class='flag-5'>測試工具</b>Helix QAC 2023.1更新快訊:主打編碼標準<b class='flag-5'>覆蓋率</b>

    單元測試工具TESSY 新版本亮點速覽:提供測試駕駛艙視圖、超級覆蓋率、代碼訪問分析、增強覆蓋率審查

    各種測試對象和方法的所有覆蓋率測量結果,并記錄在新的測試總結報告。 了解更多TESSY新版本功能詳情或申請免費試用,歡迎咨詢TESSY中國
    的頭像 發表于 07-08 16:20 ?447次閱讀
    單元<b class='flag-5'>測試工具</b>TESSY 新版本亮點速覽:提供<b class='flag-5'>測試</b>駕駛艙視圖、超級<b class='flag-5'>覆蓋率</b>、代碼訪問分析、增強<b class='flag-5'>覆蓋率</b>審查
    主站蜘蛛池模板: 久久精品国产亚洲5555| brazzersvideosexhd欧美高清| qyule亚洲精品| 国产黄大片在线观看| 99久久综合国产精品免费| 欧美成人久久| 天堂网www在线| 日本不卡毛片一二三四| 日本xxxx色视频在线观看| 夜夜穞狠狠穞| 一区二区在线看| 日韩美女奶水喂男人在线观看| 在线免费色视频| 亚洲一区二区三区高清视频| 日欧毛片| 午夜资源站| 男女一区二区三区免费| 免费网站日本永久免费观看| 女人又色又爽又黄| 一级 黄 色 片免费| 国产精品伦视频观看免费| 69国产视频| 日韩免费一级毛片| 天天插日日插| 一级做性色a爱片久久片| 国产精品亚洲玖玖玖在线靠爱| 在线91精品亚洲网站精品成人| 天堂视频免费| 天天谢天天干| 99久久精品费精品国产一区二| 韩国r天堂| 很黄网站| 欧美人成网站免费大全| 狠狠干在线观看| 色婷婷视频| 日本在线网站| 亚洲国产婷婷香蕉久久久久久| 综合视频网| 成年人三级视频| 5月色婷婷| 99久久精品免费看国产免费|