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

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

3天內(nèi)不再提示

多少和什么樣的覆蓋率分析才足夠

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:JAY THOMAS ? 2022-11-11 15:02 ? 次閱讀

對覆蓋率分析的討論可能會提出許多不同的假設,這些假設并不總是一致的。這是否意味著檢查所有代碼是否已執(zhí)行?這是否意味著所有要求都已得到執(zhí)行和測試?它是否帶來了一些 100% 以外的數(shù)字可以依賴的功能代碼?我們要做的是確保自己,即使在危及生命的情況下,程序也已經(jīng)過徹底的測試,可以信賴。我們?nèi)绾螌崿F(xiàn)這一目標以及覆蓋范圍的哪些方面?會讓我們高枕無憂嗎?

軟件測試和分析可以被認為是由許多相互依賴的部分組成的整體活動。其中包括需求跟蹤、靜態(tài)和動態(tài)分析、編碼標準合規(guī)性等,包括覆蓋范圍分析。歸根結(jié)底,覆蓋率分析應該讓我們了解一段代碼的測試程度和徹底程度。當然,這取決于其他測試方法的應用程度和徹底性及其結(jié)果。因此,它實際上是對我們測試的測試,而不是對程序本身的測試。

那么,是什么可以讓我們很好地了解我們測試的好壞呢?

一種方法可能是檢查程序中的所有行是否已執(zhí)行。然而,僅憑這一點并不能告訴我們執(zhí)行路徑是如何到達這些行的,或者它以什么順序和在什么條件下這樣做。它與需求沒有直接關系。畢竟,這些要求是首先生成自動和手動測試的基礎。

覆蓋率的另一個做法是分支覆蓋率,它顯示了代碼段之間的執(zhí)行路徑,但不一定是每一行。分支覆蓋率可以根據(jù)執(zhí)行路徑揭示程序的結(jié)構(gòu)。分支是“這個”或“那個”。它告訴我們執(zhí)行可以走哪條路,但它沒有說明為什么代碼會以一種或另一種方式進行。這為我們提供了執(zhí)行結(jié)構(gòu)的圖片,但即使它揭示了所有分支在執(zhí)行過程中至少執(zhí)行過一次,它也沒有顯示從分支獲取一條或另一條路徑的條件。也就是說,它不一定表示所有情況(布爾表達式、條件)都經(jīng)過測試,或者至少測試了所有滿足要求的情況。

表達式“如果 A 是分支”。當然,它可能是一個更復雜的表達式,會導致真或假 A,因此 A 的結(jié)果值就是決策。決策覆蓋率意味著每個點分支至少被調(diào)用過一次,并且每個分支采取的所有決策都至少執(zhí)行過一次。這是比分支覆蓋率更強的度量,因為它將分支鏈接到路徑。因此,旨在執(zhí)行程序中每個決策點的每個結(jié)果的測試就是分支決策測試。但是,每個結(jié)果的執(zhí)行并不涉及可能導致該(如果,那么)決定的不同輸入和條件。為此,我們必須轉(zhuǎn)向分支/決策測試及其表親,修改條件/決策覆蓋率(MC / DC)。

MC/DC 使用每個條件至少調(diào)用一次程序中的每個進入和退出點,以便決策至少一次采取所有可能的結(jié)果,并且可以證明更改決策中的任何條件可以獨立影響該決策。一個條件被證明通過改變該條件同時保持固定所有其他可能的條件來獨立地影響決策的結(jié)果。

雖然指標很棒,但僅靠指標并不能幫助我們確信我們的代碼將按照我們預期的方式工作。測試必須與程序的要求相關 - 程序是否做了它應該做的事情 - 并且這些測試必須是生成和跟蹤適當覆蓋指標的測試。這種觀點 - 通過可追溯性增強覆蓋范圍 - 是DO-178B和IEC 61508等不同標準所描述的功能安全的關鍵。這種組合使我們能夠知道代碼做了它應該做的事情——我們已經(jīng)通過測試場景執(zhí)行了它。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4728

    瀏覽量

    68248
收藏 人收藏

    評論

    相關推薦

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

    公司某個項目用到了這個DW:DW_fpv_div,但是scan跑完,這個模塊覆蓋率只有60%多,現(xiàn)在要我用TMAX軟件,通過功能去覆蓋,我看了下rpt報的faults點,嘗試去寫了幾個特殊值去做除法
    發(fā)表于 10-15 18:38

    代碼整潔之道-大師眼中的整潔代碼是什么樣

    幾個月前寫了一篇文章“如何寫出難以維護的代碼”,從中能大概了解到不好維護的代碼是什么樣,有哪些壞味道,那肯定有人會反問,難以維護的代碼見的太多了,也知道長什么樣,但是對于好維護的代碼是什么樣的比較
    的頭像 發(fā)表于 09-09 16:30 ?269次閱讀
    代碼整潔之道-大師眼中的整潔代碼是<b class='flag-5'>什么樣</b>

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

    在功能安全中測試覆蓋率是比較重要的概念,也是在驗證過程中通常需要花費時間較多的步驟,如果能借助于靜態(tài)檢查工具的死邏輯查找和聲明、測試用例自動補全等功能往往能取得事半功倍的效果。
    的頭像 發(fā)表于 09-05 09:15 ?274次閱讀
    利用靜態(tài)檢查工具完善功能安全中測試<b class='flag-5'>覆蓋率</b>

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

    各種測試對象和方法的所有覆蓋率測量結(jié)果,并記錄在新的測試總結(jié)報告中。 了解更多TESSY新版本功能詳情或申請免費試用,歡迎咨詢TESSY中國授權(quán)分銷商——龍智。 新版本功能亮點速覽: 1、超級覆蓋率 逐行評估源代碼。 基于標準覆蓋率
    的頭像 發(fā)表于 07-08 16:20 ?389次閱讀
    單元測試工具TESSY 新版本亮點速覽:提供測試駕駛艙視圖、超級<b class='flag-5'>覆蓋率</b>、代碼訪問<b class='flag-5'>分析</b>、增強<b class='flag-5'>覆蓋率</b>審查

    如何將SystemVerilog斷言屬性和覆蓋屬性置于在設計上?

    功能覆蓋、激勵生成和運行管理是當今功能驗證的三大相互關聯(lián)的任務。其中,功能覆蓋率可以說是最重要的,主要是因為覆蓋率收斂是tape的主要標準。
    的頭像 發(fā)表于 05-28 10:30 ?645次閱讀
    如何將SystemVerilog斷言屬性和<b class='flag-5'>覆蓋</b>屬性置于在設計上?

    FPGA能實現(xiàn)什么樣的算法?

    FPGA功能如此強大,請問用FPGA能實現(xiàn)或者比較適合實現(xiàn)什么樣的算法?
    發(fā)表于 05-26 20:18

    我們怎么選擇適合自己的USB頻譜分析

    選擇什么樣的USB頻譜分析儀或者是選擇其他款式的頻譜分析儀,我們都要根據(jù)自己的使用要求還有價格預算來考慮我們最終來選取什么樣的儀器。
    的頭像 發(fā)表于 04-28 15:30 ?282次閱讀

    什么樣的PLC可以直接驅(qū)動接觸器?什么樣的PLC不可以直接驅(qū)動?

    什么樣的PLC可以直接驅(qū)動接觸器?什么樣的PLC不可以直接驅(qū)動? PLC(可編程邏輯控制器)是一種用于自動化控制系統(tǒng)的電子設備,用于監(jiān)控和控制多種工業(yè)過程。其中一個常見的應用是控制和驅(qū)動接觸器
    的頭像 發(fā)表于 02-18 14:11 ?1193次閱讀

    怎么用Vivado做覆蓋率分析

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

    ADIS16375的陀螺儀輸出角度是個什么樣的角度?

    想知道ADIS16375這款IMU的輸出角度是個什么樣的角度?是不是姿態(tài)角?其參考坐標系是什么?輸出角的實時精度是多少?ADIS16365、ADIS16334、ADIS16445、ADIS16485這四款IMU能夠輸出角度嗎?若果能,分別是什么樣的角度?其參考坐標系分別是
    發(fā)表于 12-29 06:17

    請問AD2S1200的串行數(shù)據(jù)輸出波形及處理的角度波形是什么樣的?

    AD2S1200的串行數(shù)據(jù)輸出波形及處理的角度波形是什么樣的?
    發(fā)表于 12-20 06:07

    軟件代碼結(jié)構(gòu)化覆蓋測試-MC/DC覆蓋

    MC/DC的全稱是Modified Condition/Decision Coverage,修正條件判定覆蓋率。很多文章對于定義的解釋都比較專業(yè),通常也會讓人感覺理解困難,本文我們用通俗易懂的說明給大家做介紹。
    的頭像 發(fā)表于 12-15 15:22 ?2893次閱讀
    軟件代碼結(jié)構(gòu)化<b class='flag-5'>覆蓋</b>測試-MC/DC<b class='flag-5'>覆蓋</b>

    對于450M帶寬40兆,要保持良好的信噪比,應該選擇什么樣的AD?

    請教一下。對于450M帶寬40兆,要保持良好的信噪比,應該選擇什么樣的AD。 雖然ADC手冊給出了全通帶寬,但是手冊中比如說采樣120M的一款AD, 全通帶寬900M,但是最多給輸入220M的測試
    發(fā)表于 12-06 08:19

    智能汽車CAN FD總線需要什么樣的降噪對策?

    智能汽車CAN FD總線需要什么樣的降噪對策?
    的頭像 發(fā)表于 11-30 09:37 ?570次閱讀
    智能汽車CAN FD總線需要<b class='flag-5'>什么樣</b>的降噪對策?

    GSM覆蓋增強技術和超遠覆蓋原理的研究分析

    電子發(fā)燒友網(wǎng)站提供《GSM覆蓋增強技術和超遠覆蓋原理的研究分析.pdf》資料免費下載
    發(fā)表于 11-17 16:36 ?0次下載
    GSM<b class='flag-5'>覆蓋</b>增強技術和超遠<b class='flag-5'>覆蓋</b>原理的研究<b class='flag-5'>分析</b>