世界目睹了一些災難性事件,僅僅是因為軟件中的錯誤。其中一起事件發生在2008年,行李處理系統軟件的測試覆蓋實踐中的故障導致500 +航班取消。
測試覆蓋率是軟件質量的重要指標,也是軟件維護的重要組成部分。它通過提供不同承保項目的數據來幫助評估測試的有效性。這種洞察力允許通過為未經測試的代碼定義新的測試用例來改進測試,從而提高代碼質量,最終增加代碼覆蓋率并降低成本。
為什么需要代碼覆蓋率?– 目的和好處
在項目生命周期的早期階段預防缺陷
它創建額外的測試用例以增加覆蓋范圍
通過減少UAT缺陷和生產缺陷可以實現更高的投資回報率
它有助于查找一組測試用例未執行的程序區域
通過管理基于風險的測試方法,測試生活將變得順暢
幫助確定代碼覆蓋率的定量度量,從而間接度量應用程序或產品的質量。
如何選擇代碼覆蓋率工具?
這是選擇用于應用程序測試的代碼覆蓋率工具的真正挑戰。高效的工具可以幫助衡量測試工作的有效性 根據用于編碼的語言,有幾個選項可以創建代碼覆蓋率報告。
一些工具,如istanbul(JavaScript測試覆蓋率工具)會將結果直接輸出到您的終端中,而其他工具可以生成完整的HTML報告,讓您探索代碼的哪一部分缺少覆蓋率。
此外,還有其他適用于所有主要語言的覆蓋測試工具,其中一些不僅與單元測試相關,還與執行的整體測試(單元、集成、系統、手冊等)相關。以下是一些趨勢代碼覆蓋工具的列表,這些工具將幫助您在運行測試過程時選擇一個。
1. 默認的視覺工作室代碼覆蓋率
Visual Studio Enterprise 將代碼覆蓋率集合作為內置功能。它可以應用于托管 (CLI) 和非托管(本機)代碼。使用測試資源管理器嘗試運行測試方法時,代碼覆蓋率作為選項提供。可以選擇所有測試或測試的子集。它可以幫助您在查看代碼時可視化覆蓋范圍。下表的結果顯示了在每個程序集、類和方法中運行的代碼的百分比。此外,源代碼編輯器還會顯示哪些代碼已經過測試。
圖 1 – 結果表:Visual Studio
報告可以以塊或行的形式獲得。管理代碼覆蓋率結果以及合并不同運行的結果也很容易。
2. 科伯圖拉
Cobertura是最常用和廣為人知的代碼覆蓋工具之一。它作為一種免費的 Java 工具而廣受歡迎,該工具可以計算執行的各種測試訪問的代碼百分比。它可用于識別 Java 程序的哪些部分缺少測試覆蓋率。它基于jcoverage。
執行可以通過 Ant、Command Line、Eclipse 插件、Maven 插件來完成。它易于使用,可以在沒有源代碼的情況下測量覆蓋范圍。它提供HTML或XML格式的報告,并具有測試類和方法的行和分支的能力。
3. Coverage.py
Coverage.py 是Python的代碼覆蓋工具。使用 Coverage.py 的主要階段包括執行、分析和報告。它監視 Python 程序,記錄代碼的哪些部分已執行,然后分析源代碼以識別可以執行但未執行的代碼。
Coverage.py 隨 Tidelift 一起提供,以提供一項企業訂閱。其他方式包括通過命令行執行,API以及Django和Mako的插件。
4. 格科夫-利科夫
Gcov 是與 GCC 一起使用的測試覆蓋程序。它分析程序以幫助創建更高效、運行更快的代碼,以發現代碼中未經測試的部分。
它充當分析工具,有助于分析一些基本的性能統計信息,例如:
每行代碼執行的次數
實際執行哪些代碼行
每段代碼使用多少計算時間
Lcov 是一個圖形 Gcov.It 前端,用于收集多個源文件的 gcov 數據并創建 HTML 頁面,其中包含帶有覆蓋率信息注釋的源代碼。它還添加了概述頁面,以便在文件結構中輕松導航。Lcov 支持語句、函數和分支覆蓋率測量。
5. 測試井 CTC ++
Testwell CTC++ 是一個強大的基于檢測的代碼覆蓋率和動態分析工具,適用于 C 和C++代碼。它可以在C#,Java和Objective-C代碼上使用特定的附加組件。它基本上也可用于分析任何嵌入式目標機器上的代碼。
CTC++提供線路覆蓋,語句覆蓋,功能覆蓋,決策覆蓋,多條件覆蓋,修改條件/決策覆蓋(MC / DC),條件覆蓋。
作為動態分析工具,CTC++ 在代碼中顯示執行計數器(執行的次數)。它還可用于測量函數執行成本(通常是時間),并在測試時啟用函數進入/退出跟蹤。
該工具用戶友好且快速。報告生成可以是純文本,HTML,XML,JSON(JavaScript對象表示法)和Excel輸入形式。在某些環境中,例如Microsoft Visual Studio,可以直接從編譯器IDE使用CTC++。
6. NCover
NCover 是 .NET 程序和應用程序的代碼覆蓋率工具。NCover 旨在與構建過程集成,并具有廣泛的命令行支持。代碼覆蓋過程很簡單,可以自動化。NCover 應用程序套件由三個工具 NCover.Explorer.exe、NCover.Console.exe 和 NCover.Reporting.exe 組成。
NCover.Explorer.exe是一個GUI程序,允許生成和查看詳細的代碼覆蓋率信息。
它支持語句覆蓋率、分支覆蓋率和圈復雜度。它提供了單獨選擇低、中、高和完整級別的代碼覆蓋率。它非常易于使用且快速,也可以在開源和商業許可證上使用。
結論:
為了獲得更好的產品質量,根據項目的特定需求和所需的代碼覆蓋率級別,可以輕松選擇代碼覆蓋率工具。所有可用的代碼覆蓋工具都足以滿足基于代碼語言和結構的獨立需求的代碼覆蓋所需的功能。
審核編輯:郭婷
-
API
+關注
關注
2文章
1559瀏覽量
63513 -
代碼
+關注
關注
30文章
4886瀏覽量
70241 -
編輯器
+關注
關注
1文章
816瀏覽量
31756
發布評論請先 登錄
重點厘清覆蓋率相關的概念以及在芯片開發流程中跟覆蓋率相關的事項
Verilog代碼覆蓋率檢查
USCIS API的應用程序發熱覆蓋率下

怎么才能寫出高覆蓋率的Verilog代碼?
高覆蓋率的Verilog代碼的編寫技巧
如何獲得100%的安全關鍵系統結構代碼覆蓋率
代碼覆蓋率記錄

評論