RM新时代网站-首页

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

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

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

選擇代碼覆蓋工具的 10 個標準

陸軍航空兵 ? 來源:陸軍航空兵 ? 作者:陸軍航空兵 ? 2022-07-20 18:06 ? 次閱讀

為了開發(fā)安全可靠的軟件,測試是質(zhì)量保證不可或缺的一部分。如果沒有充分的記錄測試,就不可能確定軟件是否安全且功能是否正確。在這種情況下,代碼覆蓋率(測試覆蓋率)的測量尤為重要。這是因為它可以用來確定一個軟件已經(jīng)被測試的全面程度。代碼覆蓋率表示測試代碼與總代碼的比率。簡而言之,例如,如果在測試期間運行四分之三的可能選項,則代碼覆蓋率為 75%。

特別是在安全關鍵型軟件開發(fā)中,行業(yè)標準對代碼覆蓋率規(guī)定了精確的要求,因此如果沒有足夠的測試覆蓋率證明,產(chǎn)品就無法在此處進行認證。而且在其他開發(fā)項目中,公司也越來越重視軟件質(zhì)量和衡量代碼覆蓋率。

市場上有各種代碼覆蓋率分析儀可用于測量代碼覆蓋率。它們在處理和質(zhì)量方面存在顯著差異。出于這個原因,我們展示了選擇代碼覆蓋工具的十個基本標準:

1. 獨立于編譯器

當然,代碼覆蓋工具必須與項目中使用的編譯器配合使用。但是,從一開始就依賴于可以獨立于編譯器使用的工具是很有意義的。這樣的工具可以在所有項目中使用,在編譯器更改的情況下也可以在當前項目中使用??梢元毩⒂诰幾g器使用的覆蓋工具可以以更多樣化的方式使用,因此是值得投資的。

2. 易用性

如果最好的軟件不必要地復雜或沒有經(jīng)過深思熟慮,則不情愿地(因此很少)使用它。另一方面,簡單的處理可以顯著提高用戶對使用測試覆蓋工具的接受度。理想情況下,該工具在后臺運行,并且在測試期間不會為用戶生成任何額外的工作。

3. 報道的可理解性

在評估覆蓋率報告時,應該一目了然地知道哪些代碼部分已經(jīng)過測試,哪些地方仍然缺乏覆蓋率。使用良好的覆蓋率工具,測試人員可以輕松地在源代碼級別識別哪些測試用例仍然出色。通過執(zhí)行這些缺失的測試,可以有針對性地增加代碼覆蓋率。同時,這避免了因冗余測試而導致的不必要的工作。

poYBAGLO7YSAe2AlAAMJY_ah8x0377.jpg


圖:除了單個代碼部分的代碼覆蓋率概述(上),有效的代碼覆蓋率工具(如 Testwell CTC++)還顯示詳細信息(下),準確顯示測試覆蓋源代碼的程度,即使是最高覆蓋率。(來源:Verifysoft Technology)

4. 為安全關鍵型開發(fā)提供更高覆蓋水平的支持

對于安全關鍵軟件的測試,標準(例如汽車領域的 ISO 26262、航空領域的 DO-178C 和鐵路運輸領域的 EN-50128)規(guī)定了最高 MC/DC 覆蓋范圍的高覆蓋水平。因此,必須確保覆蓋工具支持所有必需的覆蓋級別。為了能夠長期使用解決方案,不僅要考慮當前的需求,還要考慮未來的需求。重要提示:許多覆蓋工具僅提供決策或分支覆蓋,因此不足以進行安全關鍵型軟件開發(fā)。

代碼覆蓋率一覽

函數(shù)覆蓋率
函數(shù)覆蓋率衡量程序的所有函數(shù)是否都被調(diào)用。功能覆蓋率是通常測試覆蓋率級別中“最弱的”。

語句覆蓋率
語句覆蓋率衡量測試語句與所有語句相比的百分比。

決策覆蓋率/分支覆蓋率
在此覆蓋率級別,每個決策必須至少測試一次為真,一次為假。對于普通的 if 語句,這對應于分支覆蓋,其中每個分支都必須已執(zhí)行。

條件覆蓋
條件覆蓋詳細考慮復合決策。對于由通過布爾運算符組成的多個原子條件組成的決策,必須將這些條件中的每一個單獨測試為“真”和“假”。

多條件覆蓋和修正條件/決策覆蓋 (MC/DC)
對于多條件覆蓋,必須檢查所有可能的真假組合以進行復合決策。在一個決策中有多個條件的情況下,這需要大量幾乎不切實際的測試用例。因此,在實踐和標準中,修改后的條件/決策覆蓋率 (MC/DC) 是相關的,其中測試用例的數(shù)量減少了,而測試覆蓋率的信息價值仍然足夠高。

5. 靈活集成

即使在公司內(nèi)部,開發(fā)環(huán)境和工具鏈通常也非常多樣化。覆蓋工具應該可以輕松應對所有這些不同的環(huán)境。必須能夠無縫地集成到各自的構建過程和測試的執(zhí)行中,并且無需付出很大的努力。如果該工具也可以通過命令行使用,則在創(chuàng)建自動構建方面具有優(yōu)勢。

6. 低儀表開銷

大多數(shù)覆蓋率工具通過檢測源代碼來衡量代碼覆蓋率。源代碼由帶有“計數(shù)器”的覆蓋工具豐富,它計算相關代碼部分在測試期間執(zhí)行的位置和頻率。但是,這會增加原始代碼的大小。因此,在內(nèi)存有限的嵌入式目標上進行測試時,應注意將這種所謂的檢測開銷保持在盡可能低的水平。各個代碼覆蓋工具之間的內(nèi)存需求差異有時是相當大的。例如,Verifysoft Technology 的代碼覆蓋率分析器 Testwell CTC++ 在這方面非常節(jié)省資源。

7.支持不同的編程語言

公司經(jīng)常使用不同的編程語言或計劃在未來引入其他語言。因此,從一開始就選擇支持所有或盡可能多的這些語言的工具是有意義的。

8. 支持“創(chuàng)意”編程

一些覆蓋工具在分析偏離通用標準或嵌套深度較高的語言結構時會遇到問題。然而,衡量測試覆蓋率的好工具也應該能夠應對“創(chuàng)造性”的編程風格。

9. 安全關鍵軟件開發(fā)的適用性

在開發(fā)安全關鍵型軟件時,相關標準要求整個工具鏈必須經(jīng)過認證。這里的目的是證明覆蓋分析器和整個工具鏈中使用的其他工具都能可靠地工作。專業(yè)代碼覆蓋工具的制造商通過鑒定工具包和工具鑒定建議支持軟件項目。在這種情況下,還應注意所選的覆蓋工具是否已在安全關鍵項目中成功使用。

10. 評估許可、技術支持和客戶參考

應在工具評估期間檢查覆蓋工具對自己項目的適用性。在此期間,您已經(jīng)對技術支持的表現(xiàn)有所了解。是否也可以通過電話或僅通過電子郵件獲得支持?支持人員的能力如何?響應時間呢?用戶手冊有多好和實用?制造商是否也提供培訓?最后但同樣重要的是,還建議查看制造商的客戶參考資料。這些可以提供有關覆蓋分析儀質(zhì)量和供應商性能的更多信息。

結論

代碼覆蓋對于安全關鍵型軟件開發(fā)來說是強制性的,這是有充分理由的。但對于任何想要提高軟件質(zhì)量的人來說,這也是衡量和增加測試覆蓋率和價值的好方法。在選擇代碼覆蓋率分析器時,必須注意確保該工具滿足設定的要求。此外,易用性和專業(yè)支持等因素也起著重要作用。正確使用,一個好的測試覆蓋工具有助于顯著提高質(zhì)量,增加開發(fā)人員和測試人員的積極性,并以節(jié)省成本的方式執(zhí)行測試。

審核編輯 黃昊宇

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

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • 覆蓋
    +關注

    關注

    0

    文章

    18

    瀏覽量

    10943
收藏 人收藏

    評論

    相關推薦

    LLMWorld上線代碼翻譯新工具——問丫·碼語翻譯俠,快來體驗!

    01. 工具介紹 aicode.llmworld.net 問丫·碼語翻譯俠 是一款由LLMWorld新推出的代碼翻譯工具,支持各種語言之間的翻譯,包括計算機語言到自然語言。 02.
    的頭像 發(fā)表于 12-09 11:11 ?231次閱讀
    LLMWorld上線<b class='flag-5'>代碼</b>翻譯新<b class='flag-5'>工具</b>——問丫·碼語翻譯俠,快來體驗!

    ECU故障診斷工具 如何選擇合適的ECU

    數(shù)據(jù)監(jiān)控和執(zhí)行元件測試。這些功能是診斷工具的核心,能夠幫助技師識別和解決問題。 2. 兼容性 選擇ECU故障診斷工具時,首先要考慮的是工具的兼容性。一
    的頭像 發(fā)表于 11-05 10:23 ?315次閱讀

    知識分享 | 符合ISO 26262標準工具分類與鑒定

    工具分類和鑒定對于確保汽車開發(fā)流程的安全和可靠性不可或缺,尤其是在ISO 26262標準之下。通過系統(tǒng)性地評估工具的影響、確定所需的置信度、并采用穩(wěn)健的鑒定方法,企業(yè)可以確保其所使用的工具
    的頭像 發(fā)表于 10-16 17:36 ?884次閱讀
    知識分享 | 符合ISO 26262<b class='flag-5'>標準</b>的<b class='flag-5'>工具</b>分類與鑒定

    RISC-V Vector Intrinsic使用標準

    * ; 而RVV官方代碼示例中給的使用函數(shù)的示例則并非如此; 但是在平頭哥的編譯工具鏈下只能通過__riscv_*來寫RVV,導致移植性比較差。 想問下這個有標準嗎?
    發(fā)表于 10-14 16:15

    化學標識選擇工具(GPC)的簡單指南

    電子發(fā)燒友網(wǎng)站提供《化學標識選擇工具(GPC)的簡單指南.pdf》資料免費下載
    發(fā)表于 10-08 11:18 ?0次下載
    化學標識<b class='flag-5'>選擇</b><b class='flag-5'>工具</b>(GPC)的簡單指南

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

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

    java反編譯的代碼可以修改么

    的影響。 1. Java反編譯工具 在Java反編譯領域,有一些知名的工具可以幫助開發(fā)者將字節(jié)碼轉(zhuǎn)換回源代碼。這些工具包括: JD-GUI :一
    的頭像 發(fā)表于 09-02 11:00 ?639次閱讀

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

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

    整流濾波電容大小選擇標準

    整流濾波電容的大小選擇需要考慮幾個因素,包括電路的功率需求、負載特性、紋波要求以及成本和尺寸限制等。以下是一些常見的選擇標準
    的頭像 發(fā)表于 05-27 14:15 ?2006次閱讀
    整流濾波電容大小<b class='flag-5'>選擇</b><b class='flag-5'>標準</b>

    電源設計的10階段

    、產(chǎn)品開發(fā)周期、標準要求和降低成本,同樣也給設計和設計人員帶來巨大影響。電源設計是一項復雜的工作,分成許多步驟。在本指南中,我們將根據(jù)簡單的工作流程,提供 10 設計階段每個階段的測試小貼士。希望能讓您的測試更高效
    發(fā)表于 04-25 09:06 ?9次下載

    鴻蒙APP開發(fā)實戰(zhàn):【Api9】拍照、拍視頻;選擇圖片、視頻、文件工具

    鴻蒙開發(fā)過程中,經(jīng)常會進行系統(tǒng)調(diào)用,拍照、拍視頻、選擇圖庫圖片、選擇圖庫視頻、選擇文件。今天就給大家分享一工具類。
    的頭像 發(fā)表于 03-26 16:27 ?770次閱讀
    鴻蒙APP開發(fā)實戰(zhàn):【Api9】拍照、拍視頻;<b class='flag-5'>選擇</b>圖片、視頻、文件<b class='flag-5'>工具</b>類

    無線中繼器有哪些優(yōu)點?為什么選擇它來作為WiFi覆蓋不全的補充呢?

    無線中繼器到底有哪些優(yōu)點?為什么很多用戶會選擇它來作為WiFi覆蓋不全的補充呢? 無線中繼器是一種常用的網(wǎng)絡設備,可用于將現(xiàn)有無線網(wǎng)絡信號增強和擴展到無法直接覆蓋的區(qū)域。它具有許多優(yōu)點,使其成為用戶
    的頭像 發(fā)表于 02-02 14:11 ?2525次閱讀

    英特爾無線藍牙設備無法啟動代碼10

    無線藍牙設備在現(xiàn)代生活中扮演著重要的角色,因為它們使我們能夠方便地與其他設備進行通信和傳輸文件。然而,有時候我們可能會遇到一常見的問題,即藍牙設備無法啟動,錯誤代碼10。 了解問題 1.1
    的頭像 發(fā)表于 01-04 17:30 ?7833次閱讀

    怎么用Vivado做覆蓋率分析

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

    如何為10G網(wǎng)絡選擇合適的超六類網(wǎng)線

    需要考慮網(wǎng)絡的帶寬需求。10G網(wǎng)絡需要支持10Gbps的傳輸速度。超六類網(wǎng)線是一種高性能的網(wǎng)線標準,能夠支持10Gbps的傳輸。不過,不同的超六類網(wǎng)線在實際應用中的性能可能會有所差別。
    的頭像 發(fā)表于 12-27 10:56 ?1781次閱讀
    RM新时代网站-首页