91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何使用覆蓋率指標(biāo)進(jìn)行更有效的嵌入式軟件測(cè)試

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:John Thomas ? 2022-06-29 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

時(shí)間就是軟件開發(fā)中的一切。想想發(fā)現(xiàn)軟件缺陷的時(shí)間。在發(fā)布后發(fā)現(xiàn),這可能是一場(chǎng)災(zāi)難,危及人們的安全并造成數(shù)百萬美元的損失。在發(fā)布之前發(fā)現(xiàn),缺陷可以減少到僅僅是一個(gè)煩惱。

這就是為什么軟件測(cè)試已成為開發(fā)生命周期中不可或缺的一部分。事實(shí)上,根據(jù) Fraunhofter Esk 研究所 2012 年的一項(xiàng)調(diào)查,測(cè)試不僅是軟件開發(fā)過程的重要部分,對(duì)于大多數(shù)嵌入式系統(tǒng)開發(fā)人員來說,它也是最困難的部分。

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

此外,通常不僅僅是軟件開發(fā)團(tuán)隊(duì)需要對(duì)測(cè)試水平感到滿意??蛻艨赡軙?huì)要求提供代碼經(jīng)過適當(dāng)測(cè)試的證據(jù),而航空電子、汽車和醫(yī)療領(lǐng)域等安全關(guān)鍵行業(yè)的監(jiān)管機(jī)構(gòu)將需要證明對(duì)缺陷進(jìn)行了充分檢查的證據(jù)。因此,有必要定義一種衡量“充分”測(cè)試的方式,并且需要以一種可以客觀衡量的方式來完成,以滿足開發(fā)過程中的所有利益相關(guān)者。

對(duì)于有效的軟件測(cè)試,開發(fā)人員需要解決如何衡量測(cè)試過程,如何確定多少測(cè)試足夠,以及開發(fā)團(tuán)隊(duì)如何能夠最具戰(zhàn)略性地確保他們開發(fā)的軟件應(yīng)用程序已經(jīng)過充分測(cè)試。

什么是代碼覆蓋率?

結(jié)構(gòu)代碼覆蓋率分析是一種查看程序邏輯結(jié)構(gòu)的哪些部分在測(cè)試執(zhí)行期間已被執(zhí)行或“覆蓋”的方法。邏輯結(jié)構(gòu)取決于所使用的代碼覆蓋率指標(biāo)。例如,“入口點(diǎn)”覆蓋查看在測(cè)試中執(zhí)行了哪些函數(shù)調(diào)用或“入口點(diǎn)”。同樣,“動(dòng)態(tài)數(shù)據(jù)流”覆蓋查看數(shù)據(jù)流的哪些部分已被執(zhí)行。雖然不同的結(jié)構(gòu)覆蓋率指標(biāo)從不同的角度檢查代碼,但它們都有一個(gè)共同的目的,即通過顯示測(cè)試了多少代碼以及執(zhí)行了代碼的哪些部分來對(duì)測(cè)試過程提供有意義的洞察。

專門的結(jié)構(gòu)覆蓋度量可以為特殊的測(cè)試用例提供服務(wù),例如分析數(shù)據(jù)和控制耦合。但是,為了衡量一般測(cè)試的有效性,三個(gè)代碼覆蓋率指標(biāo)已在行業(yè)中得到廣泛使用:

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

決策覆蓋率 (DC) –已執(zhí)行了多少個(gè)決策分支;這實(shí)際上是語句覆蓋的超集,因?yàn)橐采w所有決策的所有分支,還必須覆蓋所有語句

修改的條件/決策覆蓋(MC/DC)——這建立在決策覆蓋的基礎(chǔ)上,確保復(fù)雜決策的每個(gè)子條件在其真假狀態(tài)下獨(dú)立執(zhí)行

這些指標(biāo)已被廣泛認(rèn)為是衡量測(cè)試徹底性的方法。特別是,汽車、航空電子和工業(yè)軟件等行業(yè)已經(jīng)在其軟件安全標(biāo)準(zhǔn)中采用了這些指標(biāo)。

更高的關(guān)鍵性需要更徹底的測(cè)試

值得注意的是,這些軟件安全標(biāo)準(zhǔn)并未強(qiáng)制要求在所有項(xiàng)目中統(tǒng)一使用聲明、決策和 MC/DC 覆蓋率。相反,每個(gè)主要的行業(yè)軟件安全標(biāo)準(zhǔn)都建議根據(jù)代碼的關(guān)鍵程度使用不同級(jí)別的結(jié)構(gòu)覆蓋,盡管關(guān)鍵級(jí)別通常以特定行業(yè)的方式確定。例如,航空電子行業(yè)的軟件安全標(biāo)準(zhǔn) DO-178C 使用軟件安全級(jí)別的概念,并要求對(duì)每個(gè)安全級(jí)別進(jìn)行不同級(jí)別的結(jié)構(gòu)覆蓋分析。

IEC 61508 是一種通用工業(yè)軟件安全標(biāo)準(zhǔn),它定義了安全完整性等級(jí) (SIL),并根據(jù)每個(gè)等級(jí)推薦了不同的結(jié)構(gòu)覆蓋率指標(biāo)。

在所有這些標(biāo)準(zhǔn)中,可以看到一個(gè)共同的理念:代碼必須“越安全”,所需測(cè)試的徹底性就越高。軟件安全意味著什么的確切定義取決于特定行業(yè)的關(guān)注點(diǎn)、經(jīng)驗(yàn)和監(jiān)管壓力,但這種將所需的更高級(jí)別的安全性與所需的更高級(jí)別的結(jié)構(gòu)覆蓋相匹配的一般原則在整個(gè)標(biāo)準(zhǔn)中保持不變。

測(cè)試應(yīng)源于需求

軟件安全標(biāo)準(zhǔn)中跨行業(yè)的另一個(gè)共同點(diǎn)是認(rèn)為測(cè)試應(yīng)該從需求中產(chǎn)生。軟件需求應(yīng)確定測(cè)試所需的輸入和輸出。如果他們不這樣做,測(cè)試可能會(huì)成為一組并行的需求,這會(huì)導(dǎo)致混亂和軟件錯(cuò)誤。結(jié)構(gòu)覆蓋率不能取代需求作為測(cè)試的基礎(chǔ),因?yàn)楦采w率指標(biāo)不能決定代碼的行為方式——只有在執(zhí)行期間可以訪問(并且,考慮到調(diào)試器的能力,在執(zhí)行期間可以訪問可以是一個(gè)靈活的概念)。

雖然是互補(bǔ)的,但測(cè)試執(zhí)行代碼的有效性和測(cè)試需求的完整性是兩件不同的事情。在結(jié)構(gòu)覆蓋分析中衡量的測(cè)試有效性著眼于代碼的哪些部分被執(zhí)行。測(cè)試完整性,有時(shí)稱為“需求覆蓋率”,查看代碼是否已經(jīng)針對(duì)所有需求的正確行為進(jìn)行了測(cè)試。如果一個(gè)軟件程序是根據(jù)其需求構(gòu)建的,并且如果它不包含與其需求無關(guān)的代碼,那么對(duì)需求的完整測(cè)試應(yīng)該會(huì)導(dǎo)致測(cè)試有效地執(zhí)行所有代碼。如果有代碼沒有被測(cè)試執(zhí)行,這可能是可以刪除的代碼,或者可能是缺少的需求,或者可能是測(cè)試中的缺陷。這樣,

執(zhí)行代碼和測(cè)試需求之間的這種關(guān)系也存在于單個(gè)需求的層面上。雖然從證據(jù)收集的角度來看,有多少需求和測(cè)試了多少代碼的高級(jí)總計(jì)更有趣,但更多的是在單個(gè)需求測(cè)試級(jí)別,以及該單個(gè)需求測(cè)試的結(jié)構(gòu)覆蓋分析,其中大多數(shù)缺陷被識(shí)別和修復(fù)。

結(jié)構(gòu)覆蓋分析通常被認(rèn)為是實(shí)現(xiàn) 100% 指標(biāo)的簡(jiǎn)單目標(biāo),但檢查單個(gè)測(cè)試及其產(chǎn)生的結(jié)構(gòu)覆蓋至關(guān)重要。當(dāng)正在執(zhí)行的代碼基于正在測(cè)試的需求時(shí),尤其如此。通過檢查代碼的結(jié)構(gòu)覆蓋率,可以確定被測(cè)代碼的確切行為,并將其與基于被測(cè)需求的預(yù)期行為進(jìn)行比較。這種方法減少了由于環(huán)境因素或代碼的其他部分補(bǔ)償不正確代碼而導(dǎo)致的誤報(bào)。此外,如果存在不正確的行為,結(jié)構(gòu)覆蓋分析通常還可以提供對(duì)不正確行為原因的洞察。

當(dāng)使用結(jié)構(gòu)覆蓋分析以這種詳細(xì)的方式理解代碼行為時(shí),能夠?qū)⒔Y(jié)構(gòu)覆蓋分析結(jié)果覆蓋在代碼結(jié)構(gòu)分析之上是至關(guān)重要的。此覆蓋有助于將原始結(jié)構(gòu)覆蓋信息轉(zhuǎn)換為對(duì)代碼中正在發(fā)生的事情的有意義的理解。

在單元和系統(tǒng)級(jí)別設(shè)置覆蓋目標(biāo)

通常,結(jié)構(gòu)覆蓋分析目標(biāo)可以在單元和系統(tǒng)級(jí)別設(shè)置。單元級(jí)別的結(jié)構(gòu)覆蓋是通過基于該單元要求的單元級(jí)別的測(cè)試來實(shí)現(xiàn)的。另一方面,系統(tǒng)級(jí)覆蓋目標(biāo)通常從更高級(jí)別需求的測(cè)試覆蓋開始。然而,如果僅使用高級(jí)測(cè)試進(jìn)行系統(tǒng)級(jí)覆蓋分析,則覆蓋中經(jīng)常會(huì)出現(xiàn)漏洞。這些漏洞的原因可能會(huì)有所不同。在某些情況下,覆蓋漏洞可能是由于編碼標(biāo)準(zhǔn)要求的防御性編程實(shí)踐造成的,但這些覆蓋漏洞也可能基于從需求中實(shí)現(xiàn)的重要功能。

特別是,當(dāng)代碼基于只能通過難以或不可能在高級(jí)別上創(chuàng)建的條件進(jìn)行測(cè)試的需求時(shí),可能會(huì)出現(xiàn)結(jié)構(gòu)覆蓋漏洞。這種場(chǎng)景的一個(gè)例子是文件系統(tǒng)故障的功能級(jí)檢查。雖然通??赡軙?huì)導(dǎo)致文件系統(tǒng)故障,但要對(duì)文件系統(tǒng)故障進(jìn)行計(jì)時(shí)以使其在該函數(shù)的執(zhí)行期間發(fā)生是非常具有挑戰(zhàn)性的。此外,以可重復(fù)的方式為將來的回歸測(cè)試執(zhí)行此操作可能會(huì)更加困難。在這種情況下,可能需要使用單獨(dú)檢查代碼的較低級(jí)別的測(cè)試。出于這個(gè)原因,在收集實(shí)現(xiàn)測(cè)試目標(biāo)的指標(biāo)時(shí),從較高級(jí)別測(cè)試測(cè)量的結(jié)構(gòu)覆蓋率通常與來自較低級(jí)別測(cè)試的結(jié)構(gòu)覆蓋率相結(jié)合。

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

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

謹(jǐn)防!

在不了解測(cè)試的情況下積累結(jié)構(gòu)覆蓋可能會(huì)提供一種錯(cuò)誤的安全感,這比不充分的測(cè)試更危險(xiǎn)。結(jié)構(gòu)覆蓋分析不是靈丹妙藥,而是需要智能和謹(jǐn)慎使用的工具。但是,如果使用得當(dāng),它是一種工具,可以使測(cè)試更有用、更有效,并為測(cè)試過程提供證據(jù)。

審核編輯:郭婷

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

    關(guān)注

    9

    文章

    6202

    瀏覽量

    131352
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20445

    瀏覽量

    334008
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式軟件單元測(cè)試必要性與專業(yè)工具重要性的系統(tǒng)性專業(yè)研究報(bào)告

    是? 從“人肉測(cè)試”向“機(jī)器審計(jì)” ?的范式遷移。 未來,國(guó)產(chǎn)工具將在成本、響應(yīng)、生態(tài)上持續(xù)突破,但?對(duì)標(biāo)準(zhǔn)的敬畏、對(duì)覆蓋率的執(zhí)著、對(duì)人工判斷的依賴?,將始終是嵌入式測(cè)試不可動(dòng)搖的基石
    發(fā)表于 03-05 10:41

    海爾智家借助MATLAB技術(shù)提高測(cè)試覆蓋率

    海爾智家隸屬于海爾集團(tuán)公司,專注于智慧家電生態(tài)產(chǎn)品的研發(fā),水聯(lián)網(wǎng)產(chǎn)品是其主要業(yè)務(wù)之一。海爾智家的工程師一直以來使用傳統(tǒng)的嵌入式軟件開發(fā)流程來構(gòu)建他們的原有產(chǎn)品。這種傳統(tǒng)方法涉及復(fù)雜的編碼,有時(shí)多達(dá)
    的頭像 發(fā)表于 02-25 11:14 ?356次閱讀
    海爾智家借助MATLAB技術(shù)提高<b class='flag-5'>測(cè)試</b><b class='flag-5'>覆蓋率</b>

    芯片測(cè)試覆蓋率99%就夠了嗎?給DFT設(shè)計(jì)提個(gè)醒

    芯片測(cè)試的目標(biāo)是在合理時(shí)間內(nèi)篩選出所有制造缺陷。測(cè)試覆蓋率是衡量測(cè)試完備性的核心指標(biāo),但實(shí)踐中常存在誤區(qū)。本文探討如何
    發(fā)表于 02-06 11:06

    什么是嵌入式應(yīng)用開發(fā)?

    概述 所謂的嵌入式應(yīng)用開發(fā)就是在嵌入式操作系統(tǒng)下進(jìn)行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應(yīng)用開發(fā)?是指在嵌入式操作系統(tǒng)下
    發(fā)表于 01-12 16:13

    嵌入式軟件測(cè)試找bug的常見方法和秘訣

    的領(lǐng)域使用軟件和微處理器控制各種嵌入式設(shè)備,對(duì)日益復(fù)雜的嵌入式軟件進(jìn)行快速有效
    發(fā)表于 01-12 07:07

    嵌入式軟件單元測(cè)試中AI自動(dòng)化與人工檢查的協(xié)同機(jī)制研究:基于專業(yè)工具的實(shí)證分析

    ? ?摘要****? 本文系統(tǒng)探討嵌入式軟件相較于通用軟件在單元測(cè)試層面的特殊性,分析其對(duì)高覆蓋率、可追溯性與實(shí)時(shí)性驗(yàn)證的嚴(yán)苛需求,并以專業(yè)
    發(fā)表于 12-31 11:22

    C語言單元測(cè)試嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用

    功能包括: 測(cè)試通過/失敗統(tǒng)計(jì) 代碼覆蓋率可視化 執(zhí)行時(shí)間分析 缺陷跟蹤和報(bào)告生成 winAMS的圖形化界面可以直觀展示測(cè)試結(jié)果和覆蓋率數(shù)據(jù)。 七、總結(jié)與展望 C語言單元
    發(fā)表于 12-18 11:46

    嵌入軟件單元測(cè)試的全面研究與實(shí)踐

    引言 嵌入軟件單元測(cè)試是確保嵌入式系統(tǒng)質(zhì)量和可靠性的關(guān)鍵環(huán)節(jié)。嵌入式系統(tǒng)廣泛應(yīng)用于汽車電子、工業(yè)控制、醫(yī)療設(shè)備等關(guān)鍵領(lǐng)域,其
    的頭像 發(fā)表于 12-01 14:31 ?521次閱讀

    CW32嵌入式軟件開發(fā)的必備知識(shí)

    設(shè)計(jì)的原則和方法,能夠設(shè)計(jì)出高效、可維護(hù)的軟件系統(tǒng)。 了解嵌入式系統(tǒng)的實(shí)時(shí)性要求,能夠設(shè)計(jì)出滿足實(shí)時(shí)性要求的軟件系統(tǒng)。 8、 測(cè)試與驗(yàn)證 掌握單元測(cè)
    發(fā)表于 11-28 07:48

    嵌入式軟件測(cè)試與專業(yè)測(cè)試工具的必要性深度解析

    覆蓋率達(dá)95%的CAN通信模塊測(cè)試。 監(jiān)控與調(diào)試工具 ?Monit?:開源的Linux監(jiān)控工具,可監(jiān)測(cè)硬件資源和操作系統(tǒng)資源,對(duì)宿主機(jī)的CPU和內(nèi)存占用極小,特別適合嵌入式系統(tǒng)。 ?泰克示波器4系列
    發(fā)表于 09-28 17:42

    硬件工程師和嵌入式軟件哪個(gè)更有前途?

    不少人琢磨硬件工程師和嵌入式軟件到底哪個(gè)更有前途,其實(shí)從實(shí)際職場(chǎng)情況和成長(zhǎng)路子看,差別還挺清楚的。先說說天花板這事,一般來講,硬件工程師的職業(yè)天花板還真比嵌入式
    的頭像 發(fā)表于 09-10 10:43 ?1105次閱讀

    油介質(zhì)損耗及電阻測(cè)試儀的嵌入式系統(tǒng)架構(gòu)與抗干擾設(shè)計(jì)

    油介質(zhì)損耗及電阻測(cè)試儀的精準(zhǔn)檢測(cè)能力,不僅依賴于核心的電氣測(cè)量模塊與溫控系統(tǒng),更離不開穩(wěn)定可靠的嵌入式系統(tǒng)作為“中樞神經(jīng)”。嵌入式系統(tǒng)承擔(dān)著數(shù)據(jù)采集、運(yùn)算處理等核心功能,其架構(gòu)設(shè)計(jì)與
    的頭像 發(fā)表于 09-02 13:57 ?547次閱讀
    油介質(zhì)損耗及電阻<b class='flag-5'>率</b><b class='flag-5'>測(cè)試</b>儀的<b class='flag-5'>嵌入式</b>系統(tǒng)架構(gòu)與抗干擾設(shè)計(jì)

    太陽光模擬器關(guān)鍵參數(shù) | 光譜匹配度、光譜覆蓋率及光譜偏離

    太陽光模擬器作為模擬太陽輻射環(huán)境的核心設(shè)備,其性能直接關(guān)系到諸多領(lǐng)域?qū)嶒?yàn)數(shù)據(jù)的可靠性。光譜匹配度(SMD)、光譜覆蓋率(SPC)和光譜偏離(SPD)作為評(píng)估其性能的關(guān)鍵指標(biāo),從不同維度決定了模擬
    的頭像 發(fā)表于 07-24 11:26 ?1127次閱讀
    太陽光模擬器關(guān)鍵參數(shù) | 光譜匹配度、光譜<b class='flag-5'>覆蓋率</b>及光譜偏離<b class='flag-5'>率</b>

    太陽光模擬器性能的影響參數(shù):光譜匹配度、光譜覆蓋率及光譜偏離

    A?級(jí)匹配度時(shí),各波段輻照度占比與標(biāo)準(zhǔn)光譜的偏差可控制在 10% 以內(nèi),反之,低匹配度將導(dǎo)致測(cè)試結(jié)果出現(xiàn)系統(tǒng)性偏差。 二、光譜覆蓋率SPC:量化光譜完整性的指標(biāo)AM1.5G 標(biāo)準(zhǔn)光譜的波段光譜
    發(fā)表于 07-21 15:35

    嵌入式軟件單元測(cè)試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測(cè)試? ?嵌入式系統(tǒng)的特殊性? 在汽車 ECU、醫(yī)療設(shè)備控制器等場(chǎng)景中,軟件直接操控硬件,?單比特錯(cuò)誤可能導(dǎo)
    的頭像 發(fā)表于 03-21 14:53 ?1423次閱讀