新版Testwell CTC++代碼覆蓋率測試工具帶來哪些新變化?

代碼覆蓋率測試工具Testwell CTC++在版本10中引入了新的工具ctcreport來直接從符號和數據文件生成HTML報告。詳細的特性描述可以在測試井CTC++幫助中找到。在本文檔中,描述了與前一代報告相比的改進和變化。

Adaptable Layout可調整布局

您可以選擇一個適合于項目結構的布局。布局決定了報告的詳細信息級別(目錄、文件、函數)和生成的HTML頁面類型(概述頁面、詳細信息頁面、源代碼視圖)。布局在ctcreport-layout.ini文件夾中配置。

Reducing Generation Steps減少生成步驟

生成HTML報告時不再需要中間文本報告(profile.txt)。與ctcpost + ctc2html調用相比,報告生成通常也更快。

組合顯示覆蓋率

您可以選擇要在報告中顯示的覆蓋率的任意組合和順序。

使用選項度量-measures mcdc,d,s 生成了上面屏幕截圖中的報告。

工程名

您可以使用您可以使用“-D "ProjectName=My Super Tool""。項目名稱顯示在報告的標題中。

頭文件函數體報告

當一個包含的文件在多個函數體中進行預處理時,ctcpost只“提取”找到的第一個函數體,并報告所有其他變體作為其包含文件的一部分。

相比之下,ctcreport將頭文件的每個函數體報告為一個獨立的實體。所包含的文件從未作為其所包含的文件的一部分進行報告。

有條件編譯代碼的標識

條件預處理器指令之間的代碼現在在所有情況下都被標識為活動的或非活動的,而不僅僅是如果內部有一個來自ctc的檢測探測器。因此,ctcreport可靠地導出線路覆蓋和代碼部分已失活的視覺指示:

顯示所有 Probe 信息

在源代碼行上有一個檢測探測的常見情況下,源代碼視圖會顯示行旁邊的真和假計數器,并抑制探測類型和描述。例如,當使用宏時,這可能導致起源不明確的計數器。

在新的HTML報告中,您可以通過選擇 Source & Details > Show Coverage Details > Single Probe Descriptions。

當一行上有多個探針時,現在將始終顯示第一個探針描述(與同一行上的所有其他探針一樣)。

協助報告內部函數

在所有表格視圖中,您可以按覆蓋率或每個覆蓋率度量的缺失命中數對表格數據進行排序。

在源代碼視圖中,您可以選擇要顯示的詳細信息,并可以突出顯示特定度量的計數器,以理解計算。

模板化的HTML

生成的HTML代碼完全是從位于ctcreport文件夾中的一個名為html_template.zip的HTML模板集中繪制出來的。這個包包含用于概述頁面、詳細信息頁面、源代碼視圖以及CSS和JavaScript資源的模板化HTML文件。

可以調整模板。在這種情況下,復制原始的,更改后將其歸檔到像my_template.zip這樣的ZIP包中,然后用選項調用ctcreport -template my_template.

處理不同的構建/報告目錄

當源代碼在檢測期間位于不同的目錄中時,SOURCE_IDENTIFICATION設置為不同于“絕對”的值,并且過去使用ctc2html的-s選項在不同文件夾中查找源文件。

此功能完全被一個新功能所取代:將記錄在符號文件中的源標識映射到可用于報告的源路徑。選項映射源標識用于此目的。為了方便地顯示長路徑,可以選擇縮短路徑。為此,不再需要使用SOURCE_IDENTIFICATION=_。

交付包中的更改

因此,ctc2html不再是Testwell CTC++的一部分。ctcpost仍然用于生成文本或XML報告,以及分析和組合符號和數據文件。

”合并”注意事項

以下工作流:
1.生成XML報告,
2.將它們合并到一個文本報告中,
3.使用ctc2html從該文本報告生成HTML報告,

已經不再被完全支持了。在大多數情況下,您可以將符號和數據文件合并到HTML報告中。

對于在不同函數體中預處理的源文件(例如,由于#if),ctcreport在一個報告中獨立顯示該源或頭文件的每個函數體,但不合并來自不同函數體的覆蓋數據。

Linux的構建啟動器ctclaunch

ctclaunch 可以用于直接與像CMake這樣的構建工具交互,將構建命令作為輸入,并注意使用所有編譯器和鏈接器調用來調用ctc。

ctclaunch 從9.1版本開始用于Windows,現在引入于Linux。

我們建議盡可能使用ctc啟動代替ctcwrap(標準或“-hard”模式)。如果您遇到任何問題,請與您的支持團隊聯系。我們希望在未來的版本中撤回ctcwrap。

在Windows改變ctclaunch的配置

為了簡化在Windows和Linux上啟動的使用,使用了一個名為ctclaunch.ini的配置文件。構建過程中使用的所有編譯器和鏈接器必須都列在此文件的新配置參數PREPEND_CTC中,位于CTCHOME。

計算機啟動時不再使用文件wrapcmds.txt。在升級時,您必須檢查ctclaunch.ini中的編譯器設置一次。

停用缺省值的檢測工具

自9.1版本以來,缺省值,必須進行測試。對于C++代碼,在最后一種情況下可能會導致初始化的編譯問題。此代碼

可以在編譯為C代碼時插入,但不能在編譯為C++代碼時插入。在版本10中,引入了一個新的配置參數MISSING_DEFAULT_INSTR,并在ctc.ini文件中設置為ON。

設置

符號和數據文件

由于這是一個主要版本,所以必須從頭開始生成符號和數據文件。它們不能從以前的版本中使用。

Windows:可執行文件簽名

在Windows上,安裝程序和所有可執行文件現在都使用代碼簽名證書進行簽名。此外,一個MD5散列也可用于所有的ZIP軟件包。

許可證

從版本10開始,許可證控制包括所使用的測試井CTC++版本的發布日期。如果您有一個較舊的許可證文件,請聯系您的銷售經理為一個新的。新的許可文件允許使用在維護期結束之前發布的版本。

問題修復

在if-語句等中對編譯常數決策的擴展識別。在9.0.0版本中引入的版本可能會導致崩潰和錯誤的分類。這種認可現在被一種新的實現所取代。

現在,如果一個決策只包含字符串、數字、字符、方括號、運算符、大小運算符、標準C類型、常量修飾量常量,那么它就被識別為編譯時常數。

想要了解更多有關Testwell CTC++技術信息商務服務,請訪問http://www.softtest.cn/留下您的詳細需求或按以下方式聯系旋極信息

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164896.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

scanf的返回值

總所周知,scanf是C提供的庫函數的內容,而絕大多數定義的函數都會有一個返回值。 那么scanf的返回值是什么呢? 查了CPP的解釋后,返回值就是返回的是scanf讀取的數據的個數。 這個概念可能比較抽象。先看如下示例: 我們…

QT QJsonObject 插入 QByteArray十六進制數據

場景描述 有一組十六進制數使用QByteArray進行存儲;需要將其插入QJsonObject,然后通過網絡發送出去;接收到后,再轉換回QByteArray; 操作代碼 1. QByteArray轉換QString插入QJsonObject QString str ""; …

io500 壓測

目的 編譯環境 centos 7.9安裝包 yum groupinstall Development\ Tools yum install -y libevent-devel hwloc-devel libcephfs-devel.x86_64 編譯 open mpi 下載地址 https://www.open-mpi.org/software/ompi/v5.0/編譯 rpmbuild --rebuild openmpi-4.1.6-1.src.rpm安裝…

Leetcode 155. 最小棧

class MinStack {//用一個輔助棧存儲對應棧元素為棧頂時的最小值//當原棧插入一個元素時&#xff0c;輔助棧插入此值與當前輔助棧棧頂的值&#xff08;即插入前的最小值&#xff09;的較小值Stack<Integer> sta1;Stack<Integer> sta2;public MinStack() {sta1 new…

Redis(哨兵模式)

哨兵模式的定義&#xff1a; 是Redis的一種高可用解決方案&#xff0c;通過運行多個Redis實例來監控主從Redis實例的狀態&#xff0c;當主實例出現故障時&#xff0c;哨兵會自動選舉一個從實例作為新的主實例&#xff0c;從而保證系統的高可用性。哨兵模式可以監控多個主從Red…

2023亞太杯數學建模競賽C題詳細代碼解析建模

C題&#xff1a;The Development Trend of New Energy Electric Vehicles in China中國談新能源電動汽車的發展趨勢 第一問部分&#xff1a; import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.prep…

Axios 通過a標簽下載文件 跨域下載

<!-- a標簽占位 --><a ref"down" ></a>getTest() {this.$axios.request({url: https://cnv13.55.la/download?file_key3695fa9461a0ae59cf3148581e4fe339&handle_typeexcel2pdf,method: get,responseType: blob, // 切記類型 blob}).then(re…

RC4密碼(python實現)

def RC4_INIT(key):keylist(key)for i in range(len(key)):key[i]ord(key[i]) #需要將key中的每個字符轉換為整數進行異或k[0 for i in range(256)]s[0 for i in range(256)]j0lengthlen(key)for i in range(256):s[i]ik[i]key[i%length] #如果key為123&#xff0c;則實際填充…

實現二叉搜索樹的查找、插入和刪除功能(思路+圖文+代碼詳解)

文章目錄 二叉搜索樹一、搜索樹1.二叉搜索樹的查找2.二叉搜索樹的插入3.二叉搜索樹的刪除4.性能分析 二叉搜索樹 HashMap和HashSet的底層是一個哈希表 TreeMap 和TreeSet底層是一棵搜索樹&#xff08;紅黑樹&#xff09; 涉及到一些搜索查找的場景可以調用Map和Set接口 一、…

Action!錄屏工具免費完整版,錄屏軟件,打開即可解鎖最新完整可用版本,支持GPU加速HDR視頻錄制和播放

一、軟件簡介 本次帶來的錄屏工具已升級為【完整版本】&#xff0c;所有功能全部可用。該錄屏工具支持GPU硬件加速&#xff0c;可以智能識別主流硬件設備&#xff0c;支持通過GPU進行HDR視頻錄制和播放進行。視頻錄制幀率最高支持360FPS&#xff0c;直播視頻幀率最高支持60FPS…

Java反射機制

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

RK3399平臺開發系列講解(內核入門篇)ConfigFS 的核心數據結構

??返回專欄總目錄 文章目錄 一、關鍵數據結構二、config_item 的結構體三、屬性和方法沉淀、分享、成長,讓自己和他人都能有所收獲!?? ??虛擬文件系統 ConfigFS 是一個特殊的文件系統,旨在提供一種動態配置 Linux 內核和設備的機制。 一、關鍵數據結構 ConfigFS 的核…

Vue表單的整體處理

在前端的處理中&#xff0c;表單的處理永遠是占高比例的。在BOMDOMjs的時候是這樣&#xff0c;在Vue的時候也是這樣。Vue的表單處理做了特別的優化&#xff0c;如值綁定、數據驗證、錯誤提示、修飾符等。 表單組件的示例&#xff1a; <script setup lang"ts">…

如何用Postman做接口自動化測試?一文5個步驟帶你成功實現!

什么是自動化測試 把人對軟件的測試行為轉化為由機器執行測試行為的一種實踐。 例如GUI自動化測試&#xff0c;模擬人去操作軟件界面&#xff0c;把人從簡單重復的勞動中解放出來 本質是用代碼去測試另一段代碼&#xff0c;屬于一種軟件開發工作&#xff0c;已經開發完成的用例…

解決kubernetes中微服務pod之間調用失敗報錯connection refused的問題

現象&#xff1a; 從這里可以看到是當前服務在調用product service服務是出現了連接拒絕connection refused 走讀一下原始代碼&#xff1a; 可以看到請求是由FeignClient代理發出的 &#xff0c;但問題在于為什么Feign請求的時候會產生connection refused錯誤&#xff1f; 上…

Programming Tensor Cores: NATIVE VOLTA TENSOR CORES WITH CUTLASS

PROGRAMMING TENSOR CORES: NATIVE VOLTA TENSOR CORES WITH CUTLASS 源自于 GTC Silicon Valley-2019: cuTENSOR: High-performance Tensor Operations in CUDA&#xff0c;介紹了 CUTLASS 1.3 中基于 Volta Tensor Core 實現高效矩陣乘法計算的策略。主要內容為以下三點&…

Python函數式編程:讓你的代碼更優雅更簡潔

概要 函數式編程&#xff08;Functional Programming&#xff09;是一種編程范式&#xff0c;它將計算視為函數的求值&#xff0c;并且避免使用可變狀態和循環。 函數式編程強調的是函數的計算&#xff0c;而不是它的副作用。 在函數式編程中&#xff0c;函數是第一類公民&a…

【Vue3】解決Vue打包后上傳服務器 資源路徑加載錯誤

問題&#xff1a; 我這里在打包Vue之后將打包后的dist 上傳至服務器站點根目錄內子目錄 名為 "adminstore" , 但是當我通過域名打開站點后發現 資源加載路徑內并沒有攜帶 子目錄 "adminstore" 文件名稱 錯誤&#xff1a;http://your website domain/js/app…

Java 開發常用的 Linux 命令匯總(建議收藏)

雖然平時大部分工作都是和Java相關的開發, 但是每天都會接觸Linux系統, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行環境中. 自己記憶力不好, 很多有用的Linux命令不能很好的記憶, 現在逐漸總結一下, 以便后續查看. 基本操作 Linux關機,重啟 # 關機 shutdown -h n…

面試Java筆試題精選解答

文章目錄 熱身級別數組中重復的數字思路&#xff1a;使用map或HashSet來遍歷一遍就可以找出重復的字符樣例解答 用兩個棧實現隊列思路&#xff1a;Stack1正向進入&#xff0c;隊頭在棧底&#xff0c;用于進隊列操作&#xff1b;Stack2是Stack1倒棧形成&#xff0c;隊頭在棧頂&a…