当前位置:网站首页>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的语言特征。
边栏推荐
- Jenkins 用户权限管理
- MIT science and technology review article: AgI hype around Gato and other models may make people ignore the really important issues
- Cloud component development and upgrading
- School 1 of vulnhub
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]
- pom. XML configuration file label: differences between dependencies and dependencymanagement
- 最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
- 【解决】package ‘xxxx‘ is not in GOROOT
- Airiot helps the urban pipe gallery project, and smart IOT guards the lifeline of the city
- ASP. Net learning & ASP's one word
猜你喜欢
随机推荐
c语言如何判定是32位系统还是64位系统
力扣674. 最长连续递增序列
力扣599. 两个列表的最小索引总和
Force buckle 459 Duplicate substring
Traversée des procédures stockées Oracle
Chapter 9 Yunji datacanvas company won the highest honor of the "fifth digital finance innovation competition"!
Some important knowledge of MySQL
Force buckle 989 Integer addition in array form
数据孤岛是企业数字化转型遇到的第一道险关
力扣 459. 重复的子字符串
CJSON内存泄漏的注意事项
How to implement safety practice in software development stage
ISO 26262 - 基于需求测试以外的考虑因素
《数字图像处理原理与实践(MATLAB版)》一书之代码Part2[通俗易懂]
Force buckle 599 Minimum index sum of two lists
测量楼的高度
静态测试工具
Force buckle 1961 Check whether the string is an array prefix
Mongodb由浅入深学习
Oracle 存儲過程之遍曆