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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

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

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:JAY THOMAS ? 2022-11-11 15:02 ? 次閱讀

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

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

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

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

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

表達(dá)式“如果 A 是分支”。當(dāng)然,它可能是一個(gè)更復(fù)雜的表達(dá)式,會導(dǎo)致真或假 A,因此 A 的結(jié)果值就是決策。決策覆蓋率意味著每個(gè)點(diǎn)分支至少被調(diào)用過一次,并且每個(gè)分支采取的所有決策都至少執(zhí)行過一次。這是比分支覆蓋率更強(qiáng)的度量,因?yàn)樗鼘⒎种ф溄拥铰窂健R虼?,旨在?zhí)行程序中每個(gè)決策點(diǎn)的每個(gè)結(jié)果的測試就是分支決策測試。但是,每個(gè)結(jié)果的執(zhí)行并不涉及可能導(dǎo)致該(如果,那么)決定的不同輸入和條件。為此,我們必須轉(zhuǎn)向分支/決策測試及其表親,修改條件/決策覆蓋率(MC / DC)。

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

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

審核編輯:郭婷

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

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616
收藏 人收藏

    評論

    相關(guān)推薦

    AD2S1210的跟蹤速率是指的4種分辨下能檢測的最高轉(zhuǎn)速嗎?他和時(shí)鐘的函數(shù)是什么樣呢?

    AD2S1210的跟蹤速率是指的4種分辨下能檢測的最高轉(zhuǎn)速嗎?他和時(shí)鐘的函數(shù)是什么樣呢?
    發(fā)表于 12-19 06:01

    想做一個(gè)采集設(shè)備,請問選用什么樣的ADC和DAC合適?

    想做一個(gè)采集設(shè)備,采集信號為4-20mA,1到5V DC ,0-10VDC ,三種信號,要求精度不低于0.1%,刷新為 25ms。在做一個(gè)輸出 4-20mA,1到5V DC ,0-10VDC ,請問選用什么樣的ADC 和DAC合適?ADC類型是選用 SAR 還是Sig
    發(fā)表于 12-17 08:16

    請問AFE4400光電接收管處的波形是什么樣的?

    請問AFE4400光電接收管處的波形是什么樣的?
    發(fā)表于 12-11 06:42

    什么樣的電阻柜用于風(fēng)電光伏項(xiàng)目

    什么樣的電阻柜用于風(fēng)電光伏項(xiàng)目?在風(fēng)電光伏項(xiàng)目中,電阻柜作為重要組成部分,直接影響著整個(gè)系統(tǒng)的效率和穩(wěn)定性。那么,我們應(yīng)該選擇什么樣的電阻柜呢? 高效的電阻柜應(yīng)具備較高的功率因數(shù)。在風(fēng)電光伏項(xiàng)目
    的頭像 發(fā)表于 11-18 09:40 ?160次閱讀

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

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

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

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

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

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

    請問差分輸入阻抗和輸入阻抗有什么樣的區(qū)別?

    差分輸入阻抗和輸入阻抗有什么樣的區(qū)別?
    發(fā)表于 08-14 07:51

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

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

    如何將SystemVerilog斷言屬性和覆蓋屬性置于在設(shè)計(jì)上?

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

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

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

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

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

    什么樣叫計(jì)算機(jī)?

    開關(guān)的斷開與閉合分別對應(yīng)著電路的斷開與連通。而小燈泡的不亮與亮,也分別對應(yīng)著電路的斷開與連通。那這兩者就可以統(tǒng)一,不再依賴于具體的實(shí)物表現(xiàn)了。
    發(fā)表于 03-19 14:41 ?1762次閱讀
    <b class='flag-5'>什么樣</b><b class='flag-5'>才</b>叫計(jì)算機(jī)?

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

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

    怎么用Vivado做覆蓋率分析

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