当前位置:网站首页>Cantata9.0 | 全 新 功 能
Cantata9.0 | 全 新 功 能
2022-07-07 18:21:00 【麦禾信通】
Cantata 9.0,从2019年10月开始正式发布,它是一个重要的具有全新功能的新版本。此版本引入了对测试驱动开发(TDD)的支持,并增强了Cantata的AutoTest功能,为C ++代码提供了自动测试生成技术。
Cantata 9.0还包含许多其他较小的功能增强和修复。发行说明中记录了完整的变更集,包含从4.1版本以来Cantata中的所有变更。最重要的变更突出显示在以下内容。
支持测试驱动开发
Cantata增加了对测试驱动开发(TDD)的支持。 TDD是一种开发方法,在这个方法中,单元测试是在源代码实现之前编写的。这种敏捷技术确保测试用例的开发重点是从需求而不是从源代码实现开始,因此可以帮助工程师编写出“更干净”的代码。
Cantata 9.0具有支持TDD的新功能,轻松地为尚未编写的源代码生成测试。一旦在头文件中创建函数原型,TDD函数就可用于生成测试用例。一个标准的Cantata项目就这样被创建出来,它提供了测试框架和用户所期望从Cantata获得的完整的可认证报告。使用Cantata for TDD改进了TDD中常用的简单黑盒测试,进行完整的白盒测试,因为Cantata可以直接调用被封装的代码内部,可以访问私有/静态数据和函数。
测试脚本是自动生成的,为头文件中定义的每个函数原型生成一个测试用例。以这些用例为基础创建更多的测试用例,避免手动将函数原型中包含的信息添加到测试用例中。头文件中声明的任何全局数据同样会被自动地进行设置和检查。 Cantata TDD生成了空源文件,因此函数体一旦有了实现,就可以简单地重建和运行测试以测试新代码。
Cantata Trace功能可与Cantata TDD结合使用,以便根据需求改进测试用例的开发。测试用例在设计时就可追踪被导入的需求。测试用例、代码和需求之间的关联让所有工作更加清晰,并使以后的代码重构变得更加容易。
为尚未编写实现的所有函数生成桩函数,这使得测试用例能够在代码完全实现之前运行。当函数有了实现,就可以使用Cantata的变更分析功能自动删除这些桩函数或将其转换为Cantata封装函数(以拦截并继续检查对这些对象/函数的调用)。一旦测试通过,源代码就可以重构并重新运行测试以确保它们仍然通过。
对C++代码的AutoTest
Cantata AutoTest功能已扩展为支持C++代码。AutoTest自动生成单元测试脚本,运行C++源代码的单元测试,这可用于新项目或旧项目,使其易于:
● 配置自动测试生成
o 通过选定的代码覆盖规则集,来决定应如何彻底地生成测试路径
o 通过测试生成选项(stub/wrapper,数据检查等)配置测试样式
● 为100%代码覆盖率生成完整的测试脚本
● 在基于需求的测试用例执行之后,对于那些未被覆盖的函数/方法,使用AutoTest生成“辅助的”测试用例,以补充代码覆盖率。
● 创建基础的回归单元测试
● 从其他测试工具升级到Cantata
AutoTest解析C++源代码,通过定义结构化代码覆盖度量的目标(即100%函数入口点,100%语句,100%决策或100%唯一原因MC / DC)确定所有可能的代码路径。解析算法创建测试用例向量,使用强大的Cantata白盒功能来设置数据、参数和控制函数调用接口,从而执行所有必需的代码路径。
测试向量驱动代码,检查方法之间传递的参数、可访问的全局数据的值、调用顺序和返回值。 AutoTest生成的测试用例可以与用户生成的用例以相同的方式进行编辑。每个测试用例都描述了代码运行的路径,使其易于维护和跟踪需求。
Cantata 9.0中的AutoTest支持C++ 03和早期C++版本的以下元素:
● C++具体与抽象基类
● 重载和继承
● 名字空间和类
● 异常处理
● 在给定代码中显式实例化的模板
● 混合的C&C++代码库
Cantata AutoTest可用于测试包含上述元素/版本以外的C ++代码。自动生成C++代码的测试,然后可以添加其他测试以实现所需的代码覆盖目标。
代码覆盖率增强
覆盖可变的构建
构建可变(Build Variant)的覆盖是一个新增的功能,提高执行多个构建变体的C / C++源代码覆盖率。为此,Cantata使用预编译定义(#defines)区分不同的构建变体。 Cantata Coverage Viewer显示相同源代码的多个构建变体的集合数据。还可以生成包含所有定义的集合覆盖数据报告,该报告适合作为源代码所有构建变体的证明证据。
延迟覆盖率分析报告通过认证
Cantata的延迟分析功能将在目标上收集的覆盖数据传递回主机,然后再运行覆盖检查和报告。这对于内存较小的目标平台十分有用。Cantata CPPGETCOV程序现已包含在SGS-TÜV SAAR GmbH的工具认证中。这意味着使用此方法生成的.ctr报告现可用作认证证据。
HTML覆盖文件
现在可以以HTML格式生成覆盖率结果文件。这些生成的文件包含通常显示在Cantata Coverage Viewer中的项目数据。
Undo& Redo
现在可以自动保存在Cantata特定视图中对测试脚本所做的所有更改(即“测试资源管理器”,“测试用例编辑器”或“测试属性”)。已为Cantata视图添加了撤消/重做功能,因此可以轻松撤消这些自动保存。现存的Eclipse按钮可用于在Cantata中撤消和重做编辑,或者可使用ctrl + Z(撤消)或ctrl + Y(重做)快捷键。
扩展平台支持
与Cantata的每个版本一样,扩展了对平台的支持。
Cantata与领先的集成开发环境(内置于Eclipse)以及可用作Eclipse-Ready插件的工具链紧密集成。 Cantata 9.0是建立在Eclipse 2018-09发行版(Eclipse 4.9)之上的,也可以作为一个Eclipse-Ready插件安装到从Juno(4.2)到Eclipse 2018-09(4.9)的环境中。
对GNU GCC和g++编译器的支持已经扩展到Windows上的8.1版本和Linux上的8.3版本。
Cantata 9.0可完全支持所有C++ 11和14的语言特征。
边栏推荐
- Oracle 存储过程之遍历
- Force buckle 1790 Can two strings be equal by performing string exchange only once
- [auto.js] automatic script
- When easygbs cascades, how to solve the streaming failure and screen jam caused by the restart of the superior platform?
- AIRIOT助力城市管廊工程,智慧物联守护城市生命线
- 机械臂速成小指南(十二):逆运动学分析
- Airiot helps the urban pipe gallery project, and smart IOT guards the lifeline of the city
- Phoenix JDBC
- TS快速入门-泛型
- 力扣 88.合并两个有序数组
猜你喜欢
使用高斯Redis实现二级索引
机器学习笔记 - 使用Streamlit探索对象检测数据集
CSDN syntax description
机械臂速成小指南(十一):坐标系的标准命名
有了ST7008, 蓝牙测试完全拿捏住了
Splicing and splitting of integer ints
网络原理(1)——基础原理概述
Micro service remote debug, nocalhost + rainbow micro service development second bullet
I Basic concepts
Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
随机推荐
九度 1201 -二叉排序数遍历- 二叉排序树「建议收藏」
Read PG in data warehouse in one article_ stat
力扣 459. 重复的子字符串
pom. Brief introduction of XML configuration file label function
Airiot helps the urban pipe gallery project, and smart IOT guards the lifeline of the city
The boundary of Bi: what is bi not suitable for? Master data, Martech? How to expand?
Force buckle 88 Merge two ordered arrays
MSE API learning
Chapter 9 Yunji datacanvas company won the highest honor of the "fifth digital finance innovation competition"!
One click deployment of any version of redis
Mongodb由浅入深学习
Jenkins 用户权限管理
MRS离线数据分析:通过Flink作业处理OBS数据
【奖励公示】第22期 2022年6月奖励名单公示:社区明星评选 | 新人奖 | 博客同步 | 推荐奖
Creation of kubernetes mysql8
使用 BR 恢复 Azure Blob Storage 上的备份数据
使用高斯Redis实现二级索引
I Basic concepts
[auto.js] automatic script
Force buckle 599 Minimum index sum of two lists