Loading
0

自动化测试工具Parasoft C/C++test如何实现精准屏蔽覆盖率信息

在当今追求高质量软件的工业环境中,自动化测试已成为软件开发不可或缺的一环。作为业界领先的自动化测试解决方案,Parasoft C/C++test为C/C++项目提供了强大的单元测试、集成测试、静态代码分析以及代码覆盖率验证功能。

>>点击获取Parasoft C/C++test试用

其中,代码覆盖率是衡量测试用例对源代码覆盖程度的重要指标,它帮助我们评估测试的充分性,识别未被测试的代码区域。然而,在实际项目中,常常会遇到一个关键问题:并非所有代码都需要或适合进行覆盖率统计。盲目追求100%的覆盖率不仅不经济,甚至可能产生误导。此时,如何精准地屏蔽特定文件或函数的覆盖率,就成为了一项提升测试效率与准确性的关键技能。

项目情况:

在真实的开发场景中,像foo.c这样的工具文件可能源自第三方库或平台抽象层,其代码稳定且已被充分测试,反复对其统计覆盖率并无实际价值。同时,main.c中的add函数逻辑简单到无需验证,将其纳入覆盖率统计只会干扰报告的整体指标,使团队难以聚焦于核心业务逻辑的测试完备性。


1、屏蔽文件覆盖率

step1:在项目属性里面添加高级设置

具体操作时,需首先进入项目的属性配置界面。在Parasoft C/C++test中,通过右键点击项目并选择 【属性】,在弹窗的左侧列表中找到【Parasoft】目录下的【高级选项】设置页。该界面提供了添加自定义执行参数的能力,如图所示,在此处将指定的屏蔽语句添加为一条新的高级设置项,即可实现在测试执行时忽略目标文件的覆盖率收集。

xharness.routineManager symbol_file=*/foo.c command=setProperty property=canAddCoverageIn value=off

symbol_files属性的值中,*是通配符。

2、屏蔽某个函数的覆盖率

在这个项目中,如需屏蔽main.c文件内add函数的覆盖率,可通过在源代码中添加特定的编译指令注释来实现。

step1: 在想要屏蔽的函数上下加上下图这样的注释语句

// parasoft-instrumentation off

int add(){

    return 0;

}

// parasoft-instrumentation on

注意:// parasoft-instrumentation off中,//后面是有一个空格符号的,漏掉了空格符号,这个功能没作用。

Parasoft的代码插桩引擎在预处理时遇到off指令,它会立即暂停在当前编译单元内插入覆盖率收集代码;随后,在遇到on指令时,才会恢复正常的插桩行为。被这对指令所包围的add函数,其函数体将完全不会被插桩,因此在执行测试时,该函数不会产生任何覆盖率数据。

该方法实现了函数级别的精确隔离与控制,无需修改项目构建配置文件或全局设置。所有屏蔽规则直接定义于源代码中,使得配置管理与代码版本保持同步,维护性高。这有效确保了覆盖率数据与报告能够准确聚焦于核心业务逻辑,排除非关键代码的干扰。

Parasoft C/C++test通过提供文件与函数级别的精准覆盖率屏蔽机制,显著提升了测试报告的纯粹性与结果的可操作性。这一能力与其强大的静态分析、自动化测试功能紧密结合,共同构成了完整的代码质量保障体系,不仅帮助团队精确评估测试活动的有效性,更实现了对测试资源的优化分配,确保了关键业务逻辑的验证充分性。

关于慧都

慧都科技(EVGET)成⽴于2003年,是⼀家⾏业数字化解决⽅案公司,⻓期专注于软件、油⽓与制造⾏业。公司基于深⼊的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与⻓期竞争优势。

慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。