新版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.mzph.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…