TESSY v5.1 新功能详解 :引入 Hyper Coverage 与基于变更的测试,大幅缩短 CI 测试时间

摘要:

针对嵌入式 C/C++ 软件开发的自动化单元测试与集成测试利器 TESSY 正式推出 v5.1 版本。本次重磅更新聚焦于提升持续集成(CI)测试效率与代码覆盖率分析能力,核心引入了全新的测试驾驶舱 (Test Cockpit)视图超覆盖率(Hyper Coverage)代码访问(Code Access)分析以及基于变更的测试(Change based testing)等多项创新功能。TESSY v5.1 不仅能帮助测试团队跨用例精准累计原始代码覆盖率、轻松定位隐藏变体代码,更能通过自动复用历史结果大幅缩短回归测试的耗时,全方位护航功能安全标准的落地。作为 TESSY 的授权合作伙伴,龙智为您独家解析 v5.1 版本的核心亮点。

图标重新设计

TESSY v5.1 对所有现有视图布局(perspective)和视图(view)的图标进行了重新设计,新的测试驾驶舱(Test Cockpit)视图也同步适配。 覆盖率图标的布局经过优化,占用空间更少,从而使测试驾驶舱视图和测试项目(Test Project)视图中的覆盖率列显示更紧凑。

测试驾驶舱视图(Test Cockpit View)

新的测试驾驶舱视图可概览TESSY项目根目录或源码根目录下的所有源文件。

已执行测试的结果和覆盖率达标情况,均会在源文件层级进行汇总。

此外,在 "测试完成率 (Test Completion Rate)"列中还可以查看测试进度,该列会统计待执行的测试对象数量(包括首次执行的对象,以及因测试用例或源码变更需重新执行的对象)。

完成测试配置后,TESSY 会自动分析被测源代码的各类变体。无需测试人员额外操作,在启动任何运行测试前,即可自动识别未测试的代码行。

测试执行完成后, 覆盖率检测结果将按源文件中的各函数或方法进行汇总统计, 以此定位未覆盖的代码行。

代码访问分析(Code Access)

新增的代码访问(Code Access)功能可自动检测被测源代码所有变体中的隐藏代码和未经测试的代码。

在分析模块时,TESSY会为源文件和预处理后的源文件计算校验和,以此识别代码变体。

测++试驾驶舱++视图最终将显示各源文件及其所有已测变体。

完成所有模块分析后,覆盖率查看器(Coverage Viewer)视图布局(perspective)的源码视图中,会高亮显示所有被测代码变体中均未访问到的代码行(如由于预处理指令将它们隐藏在了预处理后的代码中)。

模块完成创建和分析后即可获取该分析结果,让测试⼈员在设置测试后就能快速掌握源代码是否存在未测试部分。

超覆盖率(Hyper Coverage)

超覆盖率(Hyper Coverage)新功能支持跨不同测试用例、 测试级别和测试工具汇总覆盖率检测结果。

该功能基于常规覆盖率检测指标 (如分支覆盖、 MC/DC 覆盖等),建立不同代码变体间的覆盖率关联关系,突破了不同变体之间覆盖率计算的限制,使覆盖率可以基于原始源代码行进行累加。

测试项目视图(Test Project)现在专用于处理测试对象,而 测试驾驶舱视图则汇总源文件中各测试对象的所有结果和覆盖率。

两个视图之间的选择是同步的,在任一视图中选择元素时,相关的测试对象都会在另一视图中被定位显示出来。

来自不同单元测试和组件测试的覆盖率结果会被合并,从而更容易实现完整覆盖,其汇总结果将统一显示在 测试驾驶舱(Test Cockpit)视图中。

测试项目(Test Project)视图调整

测试项目视图新增默认设置:在测试集合、 文件夹、 模块和测试对象的状态图标中将忽略覆盖率结果。

覆盖率结果仍会在覆盖率列中汇总至测试集合层级,但测试结果状态将不再包含已经达成的覆盖率。

该设置可在首选项中修改,以恢复传统⾏为。

此外,模块分析现在只会清除测试项目视图中的结果。即使执行模块分析后,对于未发⽣变化的测试对象,其结果仍会保留在测试驾驶舱视图中。

该行为也可在首选项中恢复为传统模式。

测试驾驶舱视图中的会提示消息,告知哪些结果被保留:

覆盖率评审

新增的覆盖率评审功能⽀持在使⽤代码访问(CA) 和超级覆盖率(HC) 进行代码覆盖率测量时处理未覆盖的代码行。用户可以为源码行添加预定义或自定义的注释,用于说明为何这些代码无法覆盖。典型场景包括隐藏的调试代码或不可达的默认分支。

覆盖率查看器(CV)视图布局(perspective)中的覆盖率评审视图按源文件列出所有评审记录。用户可通过高亮显示未覆盖代码行的源码视图添加新的覆盖率评审。

经过评审的代码⾏被纳⼊代码访问(CA) 和超级覆盖率(HC)的统计中,使用户可通过标准覆盖率测量结合覆盖率评审,始终达成完整覆盖率。所有覆盖率评审记录均将纳入测试汇总报告。

测试总结报告

新版测试汇总报告取代了原有的测试概览报告。该报告基于被测源文件提供测试项目当前状态的精简汇总,展示测试结果、覆盖率数据及覆盖率评审信息。

测试总结报告的 XML ⽂件包含所有测试对象的校验和及当前测试结果。该 XML 文件可以作为后续测试运行的基准汇总进行加载,从而仅执行发生变更的测试对象。

基于变更的测试

测试新版本源码时,未变更源码部分的历史测试结果将自动复用,并在测试驾驶舱视图中显示。模块分析操作可能会清除测试项目视图中的现有结果,但这些结果仍会应用于测试驾驶舱视图中未发生变更的测试对象。

执行测试时,用户可选择仅运行测试对象已发生变更、或自上次执行后已更新的测试:

历史测试结果的必要信息将从测试总结报告 XML ⽂件中提取。任何旧版测试汇总报告 XML文件都可以作为测试与测试对象的基准进行加载。该功能可显著减少持续集成(CI)中周期性持续测试的时间,因为只需重新测试变更的测试项或代码部分。

赋能您的嵌入式测试管线:

面对日益复杂的代码变体和冗长的 CI 流水线,TESSY v5.1 提供了极具突破性的解决方案。想要亲自体验 TESSY v5.1 如何为您缩短测试执行时间并轻松实现 100% 代码覆盖率?

作为 TESSY 在中国区的授权合作伙伴,龙智(DragonSoft) 拥有丰富的 DevSecOps 与软件质量管理落地经验,随时为您提供全方位的本地化支持:

  • 试用支持:帮助您更好地了解如何借助TESSY提升您的测试效率和覆盖率。
  • 技术演示: 针对您的实际 C/C++ 项目,提供一对一的专属 Demo 演示。
  • 平滑升级支持: 为老版本用户提供安全、无缝的 v5.1 升级评估与最佳实践指导。
相关推荐
Joy T3 小时前
【Web3】智能合约质量保障工程:从单元测试到 Gas 效能优化
单元测试·log4j·web3·智能合约·hardhat
Rabbit_QL11 小时前
【CI/CD】01_为什么手动部署是个危险游戏
游戏·ci/cd
zmj32032416 小时前
KW45芯片的安全启动
单片机·嵌入式开发·安全启动
亚马逊云开发者19 小时前
告别手动部署:在 Amazon EKS 上用 CodePipeline + Argo CD 搭建 GitOps CI/CD
elasticsearch·ci/cd·kubernetes
清水白石0081 天前
《Python 静态检查链:格式化、Lint、类型检查、安全扫描全攻略——CI 阻断策略与团队平衡实践》
python·安全·ci/cd
汽车仪器仪表相关领域1 天前
重载工况制动闭环:NHZ-20 型加载式制动检测台机动车安全检测全场景实战指南
人工智能·单元测试·压力测试·可用性测试·安全性测试
Rabbit_QL1 天前
【CI/CD】02_一次 git push 后发生了什么?CI 是怎么工作的
git·ci/cd
zmj3203241 天前
芯片的ISP在系统编程-模式
单片机·嵌入式开发
Tronlong创龙1 天前
RK3576 单板机系统使用手册:配置、升级与组件安装指南(一)
开发板·嵌入式开发·硬件开发·工业控制