Parasoft中文网站 > 售前问题 > Parasoft C/C++test怎么做单元测试覆盖 Parasoft C/C++test覆盖率门槛怎么设更合理

Parasoft C/C++test怎么做单元测试覆盖 Parasoft C/C++test覆盖率门槛怎么设更合理

发布时间:2026-06-30 14: 09: 00

把代码编译通过,并不代表测试工作就告一段落了。要用Parasoft C/C++test把单元测试的覆盖情况摸清楚,以及把覆盖率的合格线定在什么水平才算合理,得看测试用例到底有没有跑进那些关键的分支、处理异常的路径,还有边界上的各种条件。这个工具本身支持单元测试、结构化的覆盖率分析,还有需求的追踪,跑出来的覆盖结果既可以在自己电脑上看,也可以传到Parasoft DTP里面,去做一些走势上的分析。

一、Parasoft C/C++test怎么做单元测试覆盖

1、先把工程弄到能正常编译的状态

要保证源文件、头文件的路径、那些宏定义,还有编译器和目标平台的配置,这些东西都齐活了。因为单元测试跑起来的时候会先生成一个测试用的可执行程序,要是工程本身就有头文件找不到,或者链接的时候出了错,那覆盖率的采集工作肯定也做不下去。

2、去运行单元测试的那套配置

在IDE里面先选好自己要测的工程,然后顺着【Parasoft】→【Test Configurations】点进去,找到一个内置的或者自己定制的【Run Unit Tests】配置,用它把测试跑起来。等运行结束,C/C++test就会把测试结果和覆盖的信息给收集起来。如果是在容器环境里面跑单元测试,这个工具也会自己去收结果和覆盖率。

3、看一看覆盖率的结果

测试跑完之后,进到【Parasoft】→【Show View】→【Coverage】这个菜单,就能看到当前这份资源的覆盖情况。那个Coverage视图里头展示的,就是最近那次测试跑出来的覆盖数据,而Test Progress视图呢,更多是用来看测试的状态,还有生成报告的。

4、把还没覆盖到的路径给补上

要是发现某一段代码没被覆盖到,就先查一查是不是给进去的输入条件里头少了边界上的那些值,再去看看桩函数返回的结果,是不是让程序提前就退了出来。有些分支确实很难进去,这时候就可以配合着Coverage Advisor这个功能,先瞄一眼覆盖没有命中的位置,然后再去把测试用例给补齐。

二、Parasoft C/C++test覆盖率门槛怎么设更合理

1、先把覆盖率的类型给分清楚

碰到普通的业务模块,可以先去看语句覆盖和分支覆盖;如果模块里面判断的逻辑特别多,那就还得再看看条件覆盖;至于跟功能安全挂钩的那些模块,就得照着项目的要求,去查MC/DC覆盖。C/C++test能报告的覆盖指标有很多种,像行覆盖、语句覆盖、基本块、决策、简单条件,还有MC/DC覆盖,这些它都能报。

2、按照风险的高低来分层设置门槛

对那些一般性的模块,可以先把语句覆盖和分支覆盖的门槛设在一个能执行的数字上,比如百分之八十上下,然后再看项目具体的情况慢慢往上提。至于算法、安全机制、诊断处理,还有边界判断这一类的代码,就要单独给它们定更严一些的要求。要是工作中涉及到了行业标准,那还是要以项目本身的安全计划和验证目标来定,别直接把那些通用的数值搬过来就用。

3、把注意力重点放在新增的代码上

老项目想一口气把历史上欠下的覆盖率全部补齐,这个执行起来太难了,不如就对新加的代码和改动过的地方先把门槛给立起来。Parasoft是支持在持续集成的流程里头,针对那些修改过的代码设置一个覆盖率的检查关口,还能通过DTP去看到对应的覆盖情况。

4、把那些不该统计进来的代码给排除掉

像自动生成的代码、第三方的库、硬件适配的文件,还有那些纯粹为了调试才加上的分支,就别把它们一股脑儿都塞进统计的范围里。在排除之前得留好记录,把排除掉哪些文件、为什么要排除,都给写清楚,免得为了把数字弄得好看一点,就随便去把统计的口径给缩小了。

三、Parasoft C/C++test覆盖率没有达到门槛怎么查

1、先去看一下那些没被覆盖到的代码在哪儿

把覆盖率的详细报告打开,在里面找一找是哪些行、哪些分支还没有被命中过。这份报告是可以生成那种在源码上面直接做标注的覆盖详情的,这样查起来就很方便,一眼就能看出来是哪些位置还缺着测试。

2、去检查一下那些桩函数的行为

外部的接口、文件的读写、通信用的接口,还有硬件寄存器这些地方,一般都是要用桩函数来模拟的。如果桩函数每次只是返回一个固定的值,那程序里头跟异常有关的那些路径就很难跑进去。可以在桩函数里面分别设置正常时候的返回值、失败时候的返回值、超时的情况,还有边界上的那些值。

3、确认一下看的结果是不是同一次执行产生的

C/C++test默认给出的报告,一般都只装着最近跑的那一次的结果。如果想要把单元测试的覆盖情况和应用的覆盖情况合在一起看,那就可以打开结果归档这个功能,然后再把前面归档好的结果加载进来,生成一份累积起来的报告。

总结

一个项目的测试到底做得扎不扎实,不能光看用了多少用例来下判断。要想把Parasoft C/C++test的单元测试覆盖给做好,还有把覆盖率的门槛设得合理一点,还是得把编译环境、测试的配置、覆盖的那些指标、代码的风险,还有持续集成里头的门禁,这些东西放在一块儿来看。先把覆盖率的数字搞得能让人信得过,然后再照着模块的风险去立规矩,往后再去补测试的时候,才不会变成只是在单纯地追着一个数字跑。

展开阅读全文

标签:CWE软件测试

读者也访问过这里:
Parasoft
与世界保持同步创新的测试
立即购买
最新文章
Parasoft怎么配置代码扫描项目 Parasoft项目配置错误导致分析失败如何处理
Parasoft常用于开发过程中的代码检查和静态分析,通过扫描项目源码,帮助开发人员发现代码规范、结构以及潜在质量问题。不过在配置扫描项目时,实际操作中经常会遇到一些细节问题,例如项目导入后无法正常分析、部分文件没有参与扫描、设置的规则没有生效等。这些情况多数和项目环境、源码路径以及分析配置有关。本文将介绍Parasoft代码扫描项目的配置方法,并整理项目配置异常时的排查思路。
2026-09-07
Parasoft怎么生成测试覆盖率报告 Parasoft覆盖率数据不完整如何检查
Parasoft在软件测试流程中经常用于单元测试、代码分析以及覆盖率统计。通过覆盖率数据,开发人员可以查看测试执行涉及的代码范围,了解函数、分支以及路径的验证情况。不过在项目实际运行过程中,覆盖率报告可能出现文件缺失、统计结果偏低、部分代码没有记录等问题。这些情况通常和测试配置、代码版本、编译环境以及覆盖率采集范围有关,需要结合具体项目逐步排查。
2026-09-07
Parasoft怎么创建单元测试用例 Parasoft单元测试执行失败如何定位
Parasoft在企业软件开发和质量验证场景中经常用于自动化测试、代码分析以及单元测试管理。对于使用C、C++、Java等语言开发的项目,单元测试能够帮助开发人员提前发现函数逻辑错误和接口调用问题。不过在实际使用Parasoft创建测试用例时,初次配置项目环境、设置测试对象以及执行测试流程时,容易遇到测试用例无法生成、执行失败、覆盖结果异常等情况。本文介绍Parasoft创建单元测试用例的方法,以及测试执行失败后的定位思路。
2026-09-07
Parasoft怎么配置静态代码分析规则 Parasoft静态分析规则设置后未生效如何排查
Parasoft静态代码分析可以帮助开发团队检查代码中的潜在缺陷、安全风险以及编码规范问题,通过配置不同规则集,可以满足MISRA、CERT、CWE等不同项目标准要求。但在实际使用过程中,规则启用后没有检测结果、修改严重等级未变化、规则配置无法同步等情况较为常见。造成这些问题的原因可能来自测试配置选择、规则状态、分析范围、项目环境以及规则库版本等多个方面。本文介绍Parasoft静态分析规则配置方法,以及规则设置后未生效时的排查方式。
2026-09-07
Parasoft旗下Virtualize怎么录制虚拟服务 Virtualize录制后的响应数据不匹配如何调整
Parasoft Virtualize可以通过Message Proxy截获真实系统之间的请求与响应,再根据录制流量生成Message Responder和Data Repository。录制完成后,如果同一个请求拿到了错误响应,或者请求参数变化后Virtualize仍返回上一组数据,通常要检查Responder分组方式、Request Matching和Data Source Correlation。录制数据只是生成虚拟服务的基础,最终返回哪条响应仍取决于请求匹配条件和数据关联规则。
2026-08-31
Parasoft旗下SOAtest怎么配置数据驱动测试 SOAtest测试数据没有正确替换如何处理
Parasoft SOAtest可以把CSV、Excel、数据库、Data Repository或内部Table中的数据绑定到SOAP、REST和其他测试工具,让同一条Test Case按照多组输入重复执行。数据驱动已经配置,但请求中仍然出现固定值、上一轮数据或空值时,通常要检查Data Source是否挂在正确的Test Suite、字段是否真正切换为Parameterized,以及Data Bank或变量有没有在运行时覆盖原来的数据源值。
2026-08-31

读者也喜欢这些内容:

咨询热线 15601718224