色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何使用覆蓋率指標進行更有效的嵌入式軟件測試

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:John Thomas ? 2022-06-29 10:20 ? 次閱讀

時間就是軟件開發中的一切。想想發現軟件缺陷的時間。在發布后發現,這可能是一場災難,危及人們的安全并造成數百萬美元的損失。在發布之前發現,缺陷可以減少到僅僅是一個煩惱。

這就是為什么軟件測試已成為開發生命周期中不可或缺的一部分。事實上,根據 Fraunhofter Esk 研究所 2012 年的一項調查,測試不僅是軟件開發過程的重要部分,對于大多數嵌入式系統開發人員來說,它也是最困難的部分。

由于許多原因,測試可能很困難,但最基本的挑戰之一是衡量進度。在測試期間未能使用可靠的指標跟蹤進度可能會浪費時間并導致軟件質量下降。試圖忽略指標并以測試所有內容為目標是很誘人的,但這種方法很危險,因為軟件測試有可能成為一項無止境的工作。Glennford Myers 在 1976 年的《軟件可靠性:原則與實踐》一書中證明了這一點,當時他表明一個 100 行的程序可以有多達 1018 條獨特的路徑。在現代軟件開發世界中,軟件可以增長到數百萬行代碼。這使得完全詳盡的測試不可行。

此外,通常不僅僅是軟件開發團隊需要對測試水平感到滿意。客戶可能會要求提供代碼經過適當測試的證據,而航空電子、汽車和醫療領域等安全關鍵行業的監管機構將需要證明對缺陷進行了充分檢查的證據。因此,有必要定義一種衡量“充分”測試的方式,并且需要以一種可以客觀衡量的方式來完成,以滿足開發過程中的所有利益相關者。

對于有效的軟件測試,開發人員需要解決如何衡量測試過程,如何確定多少測試足夠,以及開發團隊如何能夠最具戰略性地確保他們開發的軟件應用程序已經過充分測試。

什么是代碼覆蓋率?

結構代碼覆蓋率分析是一種查看程序邏輯結構的哪些部分在測試執行期間已被執行或“覆蓋”的方法。邏輯結構取決于所使用的代碼覆蓋率指標。例如,“入口點”覆蓋查看在測試中執行了哪些函數調用或“入口點”。同樣,“動態數據流”覆蓋查看數據流的哪些部分已被執行。雖然不同的結構覆蓋率指標從不同的角度檢查代碼,但它們都有一個共同的目的,即通過顯示測試了多少代碼以及執行了代碼的哪些部分來對測試過程提供有意義的洞察。

專門的結構覆蓋度量可以為特殊的測試用例提供服務,例如分析數據和控制耦合。但是,為了衡量一般測試的有效性,三個代碼覆蓋率指標已在行業中得到廣泛使用:

語句覆蓋率 (SC) –已執行程序的多少語句

決策覆蓋率 (DC) –已執行了多少個決策分支;這實際上是語句覆蓋的超集,因為要覆蓋所有決策的所有分支,還必須覆蓋所有語句

修改的條件/決策覆蓋(MC/DC)——這建立在決策覆蓋的基礎上,確保復雜決策的每個子條件在其真假狀態下獨立執行

這些指標已被廣泛認為是衡量測試徹底性的方法。特別是,汽車、航空電子和工業軟件等行業已經在其軟件安全標準中采用了這些指標。

更高的關鍵性需要更徹底的測試

值得注意的是,這些軟件安全標準并未強制要求在所有項目中統一使用聲明、決策和 MC/DC 覆蓋率。相反,每個主要的行業軟件安全標準都建議根據代碼的關鍵程度使用不同級別的結構覆蓋,盡管關鍵級別通常以特定行業的方式確定。例如,航空電子行業的軟件安全標準 DO-178C 使用軟件安全級別的概念,并要求對每個安全級別進行不同級別的結構覆蓋分析。

IEC 61508 是一種通用工業軟件安全標準,它定義了安全完整性等級 (SIL),并根據每個等級推薦了不同的結構覆蓋率指標。

在所有這些標準中,可以看到一個共同的理念:代碼必須“越安全”,所需測試的徹底性就越高。軟件安全意味著什么的確切定義取決于特定行業的關注點、經驗和監管壓力,但這種將所需的更高級別的安全性與所需的更高級別的結構覆蓋相匹配的一般原則在整個標準中保持不變。

測試應源于需求

軟件安全標準中跨行業的另一個共同點是認為測試應該從需求中產生。軟件需求應確定測試所需的輸入和輸出。如果他們不這樣做,測試可能會成為一組并行的需求,這會導致混亂和軟件錯誤。結構覆蓋率不能取代需求作為測試的基礎,因為覆蓋率指標不能決定代碼的行為方式——只有在執行期間可以訪問(并且,考慮到調試器的能力,在執行期間可以訪問可以是一個靈活的概念)。

雖然是互補的,但測試執行代碼的有效性和測試需求的完整性是兩件不同的事情。在結構覆蓋分析中衡量的測試有效性著眼于代碼的哪些部分被執行。測試完整性,有時稱為“需求覆蓋率”,查看代碼是否已經針對所有需求的正確行為進行了測試。如果一個軟件程序是根據其需求構建的,并且如果它不包含與其需求無關的代碼,那么對需求的完整測試應該會導致測試有效地執行所有代碼。如果有代碼沒有被測試執行,這可能是可以刪除的代碼,或者可能是缺少的需求,或者可能是測試中的缺陷。這樣,

執行代碼和測試需求之間的這種關系也存在于單個需求的層面上。雖然從證據收集的角度來看,有多少需求和測試了多少代碼的高級總計更有趣,但更多的是在單個需求測試級別,以及該單個需求測試的結構覆蓋分析,其中大多數缺陷被識別和修復。

結構覆蓋分析通常被認為是實現 100% 指標的簡單目標,但檢查單個測試及其產生的結構覆蓋至關重要。當正在執行的代碼基于正在測試的需求時,尤其如此。通過檢查代碼的結構覆蓋率,可以確定被測代碼的確切行為,并將其與基于被測需求的預期行為進行比較。這種方法減少了由于環境因素或代碼的其他部分補償不正確代碼而導致的誤報。此外,如果存在不正確的行為,結構覆蓋分析通常還可以提供對不正確行為原因的洞察。

當使用結構覆蓋分析以這種詳細的方式理解代碼行為時,能夠將結構覆蓋分析結果覆蓋在代碼結構分析之上是至關重要的。此覆蓋有助于將原始結構覆蓋信息轉換為對代碼中正在發生的事情的有意義的理解。

在單元和系統級別設置覆蓋目標

通常,結構覆蓋分析目標可以在單元和系統級別設置。單元級別的結構覆蓋是通過基于該單元要求的單元級別的測試來實現的。另一方面,系統級覆蓋目標通常從更高級別需求的測試覆蓋開始。然而,如果僅使用高級測試進行系統級覆蓋分析,則覆蓋中經常會出現漏洞。這些漏洞的原因可能會有所不同。在某些情況下,覆蓋漏洞可能是由于編碼標準要求的防御性編程實踐造成的,但這些覆蓋漏洞也可能基于從需求中實現的重要功能。

特別是,當代碼基于只能通過難以或不可能在高級別上創建的條件進行測試的需求時,可能會出現結構覆蓋漏洞。這種場景的一個例子是文件系統故障的功能級檢查。雖然通常可能會導致文件系統故障,但要對文件系統故障進行計時以使其在該函數的執行期間發生是非常具有挑戰性的。此外,以可重復的方式為將來的回歸測試執行此操作可能會更加困難。在這種情況下,可能需要使用單獨檢查代碼的較低級別的測試。出于這個原因,在收集實現測試目標的指標時,從較高級別測試測量的結構覆蓋率通常與來自較低級別測試的結構覆蓋率相結合。

聲明、決策或 MC/DC 覆蓋率等指標并不能保證軟件沒有缺陷。如前所述,真正詳盡的測試可能是不可能的,或者至少是不可行的。然而,結構覆蓋率度量可以更好地了解代碼的可靠性和對測試的更大信心。

由于結構覆蓋分析通過顯示測試了多少代碼以及執行了代碼的哪些部分來深入了解測試活動,因此它可以在系統、模塊或單元級別執行,并且可以累積到測試目標。 代碼覆蓋率不應與基于需求的測試隔離開來。此外,除了結構覆蓋分析之外,可能還需要執行一些測試。例如,測試競爭條件和整數限制邊緣條件對于檢測缺陷可能很有價值,但它們可能無助于您的結構覆蓋目標。結構覆蓋分析旨在衡量您已完成的測試并指導您的測試計劃,但不應將其視為目標。

謹防!

在不了解測試的情況下積累結構覆蓋可能會提供一種錯誤的安全感,這比不充分的測試更危險。結構覆蓋分析不是靈丹妙藥,而是需要智能和謹慎使用的工具。但是,如果使用得當,它是一種工具,可以使測試更有用、更有效,并為測試過程提供證據。

審核編輯:郭婷

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

    關注

    8

    文章

    5278

    瀏覽量

    126602
  • 嵌入式
    +關注

    關注

    5082

    文章

    19107

    瀏覽量

    304835
收藏 人收藏

    評論

    相關推薦

    嵌入式系統開發中的測試方法 嵌入式系統開發與AI結合應用

    嵌入式系統開發中的測試方法 嵌入式系統開發是一個復雜的過程,涉及到硬件和軟件的緊密結合。測試是確保系統可靠性和性能的關鍵步驟。以下是一些常用
    的頭像 發表于 12-09 10:22 ?319次閱讀

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

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

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

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

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式
    的頭像 發表于 07-31 09:25 ?698次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發與AI整合

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

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

    單元測試、集成測試自動化工具

    CoverageMaster winAMS :?適用于嵌入式目標機代碼的單元測試/集成測試工具 全面支持嵌入式微機!驗證嵌入式C/C++
    的頭像 發表于 06-26 13:41 ?439次閱讀
    單元<b class='flag-5'>測試</b>、集成<b class='flag-5'>測試</b>自動化工具

    嵌入式軟件工程師和硬件工程師的區別?

    、調試和測試嵌入式軟件,以確保其功能正常,性能優良。 * 文檔編寫:包括編寫用戶手冊、維護文檔等。 * 維護和更新:對現有的嵌入式軟件
    發表于 05-16 11:00

    嵌入式軟件設計的原則分享

    嵌入式軟件開發如果具有更好的閱讀性、擴展性以及維護性,就需要考慮很多因素。今天給大家分享幾個嵌入式軟件設計的原則。
    發表于 02-25 10:54 ?679次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>設計的原則分享

    嵌入式軟件開發應該掌握哪些知識?

    知識點學習 熟悉 Linux 的基本使用對于嵌入式軟件開發至關重要。包括文件系統的管理、用戶權限的控制、軟件包管理等。嵌入式開發人員需要能夠在 Linux 環境下
    發表于 02-19 11:23

    嵌入式學習步驟

    硬件組件。 (4).開發固件:編寫嵌入式系統的固件,這是嵌入式系統的軟件部分。固件負責控制硬件并執行特定任務。 (5).調試和測試:在將嵌入式
    發表于 02-02 15:24

    嵌入式軟件開發和軟件開發的區別

    嵌入式軟件開發和軟件開發是兩個不同的概念,它們在一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發嵌入
    的頭像 發表于 01-22 15:27 ?2277次閱讀

    Tessy—嵌入式軟件單元測試/集成測試工具

    Tessy源自戴姆勒—奔馳公司的軟件技術實驗室,由德國Hitex公司負責銷售及技術的支持服務,是一款專門針對嵌入式軟件進行單元/集成測試的工
    的頭像 發表于 01-15 14:39 ?817次閱讀
    Tessy—<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>單元<b class='flag-5'>測試</b>/集成<b class='flag-5'>測試</b>工具

    基于功能安全的汽車嵌入式軟件單元驗證技術研究

    ,對滿足功能安全ASIL等級的汽車嵌入式軟件單元驗證技術進行詳細介紹,從而提高軟件質量,減少軟件安全隱患,對汽車
    的頭像 發表于 01-07 11:27 ?1047次閱讀
    基于功能安全的汽車<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>單元驗證技術研究

    怎么用Vivado做覆蓋率分析

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

    聊聊嵌入式軟件分層

    今天以控制LED閃爍為例,聊聊嵌入式軟件分層
    的頭像 發表于 12-28 09:22 ?672次閱讀
    主站蜘蛛池模板: adc我们的永久网址| 91青青草原| 伊人久久精品中文字幕| 一区二区三区无码高清视频| 中文人妻熟妇精品乱又伦| 91麻豆精品国产一级| 阿娇和冠希13分钟在线观看| 动漫美女性侵| 狠狠色丁香婷婷久久综合五月| 精品香蕉99久久久久网站| 老头xxx| 日本护士喷水| 亚洲国产货青视觉盛宴| 在线观看免费av网| xxxxxl荷兰| 国产在线观看成人免费视频| 久久天天躁狠狠躁夜夜躁| 欧美精品九九99久久在免费线 | 日本中文一区| 午夜国产精品免费观看| 在线a亚洲视频| 成品片a免人看免费| 国内精品蜜汁乔依琳视频| 久青草国产在线观看视频| 日韩亚洲国产欧美免费观看| 亚洲精品乱码一区二区三区| 99热都是精品| 国产制服丝袜91在线| 亚洲 欧美 国产在线视频| 伊人久在线| 父皇轻点插好疼H限| 久久99国产亚洲高清观着| 人和拘一级毛片| 亚洲欧美一级久久精品| xxxxhdvideos动漫| 九九免费的视频| 色播播影院| 5G年龄确认我已满18免费| 国产青青草原| 全身无赤裸裸美女网站| 夜色福利院在线看|