精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

解決提升覆蓋率難題-使用C/C++test覆蓋率指導助手

麥克泰技術 ? 來源:麥克泰技術 ? 2023-03-31 13:57 ? 次閱讀

在構建關鍵系統時,將代碼覆蓋率結構化是必須的,也是非常重要的。這篇文章闡述了Parasoft C/C++test如何通過覆蓋率指導助手等自動化生產力功能更好地幫助測試團隊。

軟件測試是軟件開發不可分割的一部分。每個開發和執行代碼的行業都可以從使用結構代碼覆蓋率測試工具中受益。這些工具在安全關鍵型應用的嵌入式開發行業中特別有用,在這些行業中,軟件系統不能出現故障,否則就會涉及生命危險。Parasoft C/C++test的覆蓋率指導助手能夠幫助用戶對難以捉摸又耗時的代碼創建測試用例。

代碼覆蓋率是一個重要且必要的條件

我們在嵌入式安全和安全關鍵系統中將代碼提升到100%覆蓋率有多種目的。其中最主要的目是符合DO-178C、IEC 62304等流程標準中定義的驗證和確認(Verification & Validation)要求。

優點

代碼覆蓋率提供的價值是對V&V(Verification & Validation)過程的提升,它可以幫助我們清除代碼中的缺陷,確保每行代碼都已執行,從而滿足團隊或者認證的要求。這可以大大提高團隊代碼質量的安全性和可靠性。

同樣,如果我們執行了所有的測試用例,而只獲得了60%的覆蓋率,那么很明顯我們沒有創建足夠的測試用例。因此,隱藏的缺陷可能潛伏在這些未測試的部分。

另一個問題是“死代碼”。這意味著這些代碼永遠不會被執行,因為沒有條件能夠支持這些代碼被執行。這種情況可能發生在實現了某個特性/功能,但在某種條件下,這個功能需求被刪除了。如果不完全刪除這些相關的代碼,就可能會導致死代碼這種情況。在函數或方法中查找死代碼的同時,還可以突出必須解決的壞代碼。

如何滿足您的代碼覆蓋率要求

您可以通過下面的測試方法或它們的組合方法來實現代碼的高覆蓋率:

單元測試

集成測試

系統測試

下面是Parasoft支持度較高的兩種方法:

1.系統測試和單元測試的組合。首先,檢測代碼并執行所有的系統測試用例,這將會產生比較高的覆蓋率指標。最后,使用單元測試方法來提升剩余未覆蓋代碼的覆蓋率。

2.利用單元測試實現100%代碼覆蓋率。這種方法很直接。用戶創建單元級的測試用例,以確保對每個功能/方法被覆蓋。

代碼覆蓋率指標

覆蓋率指標有非常多種類。具體應用哪種覆蓋率指標取決于IEC 61508中定義的安全完整性等級(SIL)。另一種情況是DO-178B/C的設計保證級別(DAL)對覆蓋率指標的不同要求。對于嵌入式系統,我們可能常用到的覆蓋率指標是語句、分支、修改條件/判定(MC/DC)覆蓋率。其中,對于那些最嚴格的要求,會包括匯編代碼的覆蓋率。Parasoft支持收集所有這些覆蓋率指標,包括其他行業名稱不同的覆蓋率指標種類,比如塊、調用、函數、路徑、判定覆蓋率等。

a0492880-cf77-11ed-bfe3-dac502259ad0.png

圖一:指標和趨勢

自動化流程

Parasoft C/C++test的“一鍵獲取覆蓋率”功能在對減輕團隊工作任務和減少成本方面,有著巨大作用。首先是自動生成測試用例,我們只需要單擊一下測試配置,C/C++test即可分析代碼并且自動生成智能的單元測試用例。然后我們可以執行這些單元測試用例。根據不同代碼的大小和復雜性,團隊基本上可以達到80%左右的覆蓋率。

對于復雜的代碼,總是有一些結構復雜的代碼語句,要覆蓋這些語句并且獲取覆蓋率是非常困難的。對于這些結構復雜的代碼,我們可能需要根據不同的路徑或條件情況排列,設計很多組測試用例,才有可能覆蓋這些代碼,這需要花費我們大量的時間和精力。但是我們現在就有一個完美的解決方案,那就是Parasoft C/C++test Coverage Advisor。Parasoft C/C++test覆蓋率指導助手,可以幫我們分析結構或條件復雜的代碼,提供給我們多組測試用例,使這些代碼更容易被覆蓋。

如何在Coverage Advisor中獲取覆蓋率

在編輯器中,右鍵單擊您想要覆蓋的代碼行,然后選擇Parasoft->Show in Coverage Advisor。

a0702390-cf77-11ed-bfe3-dac502259ad0.png

圖二:在Coverage Advisor菜單中顯示

下圖展示了為用戶提供的多種測試用例,前置條件字段表示:

mainSensorSignal和coSensorSignal的范圍和輸入值

外部調用的預期輸出

在使用這些設置的參數值和外部調用的樁函數創建單元測試用例時,用戶將獲得所選行的覆蓋率。

a08cd12a-cf77-11ed-bfe3-dac502259ad0.png

圖三:Parasoft C/C++test2020.2 Coverage Advisor行覆蓋分析反饋

總結

在構建嵌入式安全和安全關鍵型軟件系統時,代碼結構覆蓋率是必須的。同時,我們可以將對應的測試用例和需求關聯上,這樣可以確保:

創建了足夠的測試用例來測試軟件

沒有任何死代碼

每一行代碼都經過合規性和認證需求的檢查

Parasoft C/C++test是一個完整的軟件測試解決方案,它為團隊提供了測試方法功能和自動化生產能力,比如覆蓋率覆蓋率指導助手。利用這個功能,開發人員可以快速實現他們的代碼覆蓋率目標。相應地,管理者可以加快產品上市時間、保障審計和簡化產品認證。在向市場輸出高質量軟件的同時,能夠降低成本投入。

審核編輯 :李倩

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

    關注

    5072

    文章

    19026

    瀏覽量

    303516
  • C++
    C++
    +關注

    關注

    22

    文章

    2104

    瀏覽量

    73503
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68368

原文標題:解決提升覆蓋率難題-使用C/C++test覆蓋率指導助手

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

收藏 人收藏

    評論

    相關推薦

    怎么用Vivado做覆蓋率分析

    在做仿真的時候往往會去做代碼覆蓋率和功能覆蓋率的分析,來保證仿真是做的比較充分完備的。
    的頭像 發表于 01-03 12:34 ?1589次閱讀
    怎么用Vivado做<b class='flag-5'>覆蓋率</b>分析

    synopsys 的design ware:DW_fpv_div,浮點數除法器,默認32位下,想提升覆蓋率(TMAX),如果用功能case去提升覆蓋率呢?

    ,覆蓋率只有微微的提升,請問是否要遍歷很多數才能提升覆蓋率嗎?一般這種浮點數有什么方法去跑嗎? 每個數都跑豈不是天文數字,本人剛接觸不久,請大佬指教下,謝謝
    發表于 10-15 18:38

    如何改善5G覆蓋率

    改善5G覆蓋率的方法
    發表于 12-15 07:52

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

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

    怎么提高非隨機圖形設計的故障覆蓋率?

    怎么提高非隨機圖形設計的故障覆蓋率?為LBIST設計提高故障檢測能力的技術是什么?
    發表于 05-08 07:11

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

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

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

    功能覆蓋率和代碼覆蓋率的目標前,一般要求用例是100%pass的,即手上已開發的用例都能執行通過。計劃覆蓋率指的是測試通過的測試點(test point)占所有測試點的比例。嚴格來講,
    發表于 09-14 11:57

    Systemverilog覆蓋率的合并和計算方式

      在systemverilog中,對于一個covergroup來說,可能會有多個instance,我們可能需要對這些instance覆蓋率進行操作?! ≈槐4鎐overgroup type的覆蓋率
    發表于 03-21 14:24

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少在仿真過程中被驗證過了,代碼覆蓋率分析包括以下分析內容。
    發表于 04-29 12:35 ?8352次閱讀

    IP開發時如何考慮復用覆蓋率

    如何在開發IP的同時去鞏固集成和復用覆蓋率?IP的某些功能和性能是可以配置的,需要考慮的是IP被各種合理配置后的工作是否都能夠正常,將功能覆蓋率先整理為層次化的抽象功能覆蓋率模型,稱之為cover model。
    的頭像 發表于 02-18 12:08 ?2586次閱讀

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

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

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

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

    怎么才能寫出高覆蓋率的Verilog代碼?

    芯片前端工程中,測試驗證的核心理念:以提高覆蓋率為核心。設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機
    的頭像 發表于 06-01 10:13 ?2588次閱讀

    覆蓋率的Verilog代碼的編寫技巧

    設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機覆蓋率。本文從ASIC設計的角度上來討論,如何寫出高
    的頭像 發表于 05-26 17:30 ?4214次閱讀

    代碼覆蓋率記錄

    為確保具體的產品(例如,醫療或航空電子市場)質量合格, 通常需要提供語句覆蓋與判定覆蓋認證證明。對于各種嵌 入式系統,規范要求高度優化的代碼需要實時測試。禁止 代碼插裝和運行時篡改。勞特巴赫代碼覆蓋率測試系統為 客戶提供
    發表于 11-03 11:02 ?0次下載
    代碼<b class='flag-5'>覆蓋率</b>記錄