Parasoft中文网站 > 使用技巧 > Parasoft代码覆盖率怎么统计 Parasoft覆盖率缺口怎么定位

Parasoft代码覆盖率怎么统计 Parasoft覆盖率缺口怎么定位

发布时间:2026-06-30 16: 18: 00

Parasoft的代码覆盖率是怎样统计的,以及覆盖率的缺口又该如何定位,这两个问题在进行单元测试、集成测试和安全关键软件验证时经常会被遇到。覆盖率并不仅仅是查看一个最终的百分比,而是要弄清楚哪些代码被测试执行过,哪些分支、条件或者路径还没有被覆盖到。Parasoft的C/C++test、C/C++test CT这类工具,是能够在单元测试、集成测试和系统测试中收集覆盖率信息的,它们支持的覆盖类型也很多,比如语句覆盖、分支覆盖,以及MC/DC覆盖。

一、Parasoft代码覆盖率怎么统计

在对覆盖率进行统计以前,需要先明确测试的阶段,以及所要统计的覆盖类型。单元测试更适合去查看函数、语句、分支和条件有没有被覆盖到;而集成测试、目标机测试或者系统测试,则更加关注那些真实会跑起来的路径,有没有被执行过。不同的项目,遵循的标准是不一样的,不能只用一个“总覆盖率”的数值,就去断定测试做得是否充分。

1、先把覆盖率的类型选定好

在覆盖率的配置当中,需要先确认这回要统计的,到底是行覆盖、语句覆盖、分支覆盖、判定覆盖,还是MC/DC覆盖。这一步,是要和项目上的要求对应起来的。比如普通项目,可能主要查看行覆盖和分支覆盖;那些对功能安全要求很高的项目,则可能更加关注判定覆盖、条件覆盖,或者是MC/DC。覆盖类型如果选错了,到了后面,报告上的数字就算很高,也不一定就能撑得起评审。

2、运行测试,同时把数据收集上来

覆盖率的数据,是在测试执行的过程当中产生的。也就是说,需要先把代码插桩,或者把覆盖率采集的配置完成,然后再去运行对应的那批测试用例。Parasoft关于覆盖率的说明里也这样提到过,覆盖率的分析,是通过给应用做插桩,把测试执行到了哪些代码给记录下来,然后再拿来判断测试是不是足够充分。

3、把覆盖率的报告生成出来

测试执行完成以后,可以在IDE里面、命令行里面,或者在DTP上面,去查看覆盖率的结果。Parasoft也支持在Jenkins里面,把静态分析、测试和代码覆盖率的结果展示出来,并且还可以和质量门禁结合在一起使用。在导出报告的时候,要把测试的配置、代码的版本、覆盖率的类型,还有执行时的环境,都保留下来,免得后面复核的时候,这些东西彼此对不上。

二、Parasoft覆盖率缺口怎么定位

在着手定位覆盖率缺口的时候,不能只盯着总覆盖率是低了几个百分点。真正要寻找的,是哪些文件、哪些函数、哪些分支,或者哪些条件,没有被测试覆盖到,以及这些缺口,是不是正好处在关键的逻辑上面。低风险的代码没有被覆盖到,和安全相关的分支没有被覆盖到,这两种情况在处理起来的优先级上,差别是非常大的。

1、先查看那些没有被覆盖到的文件和函数

通过覆盖率报告,先去定位覆盖率比较低的文件、函数和代码行。这一步,可以先从那些覆盖率偏低的模块开始下手,然后再结合项目的风险,去判断处理的优先级。比如错误处理、边界判断、状态切换,还有跟安全机制有关的代码,如果它们没有被覆盖到,那就要优先把测试给补上去。

2、接着再看分支和条件方面的缺口

有一些代码行,虽然已经被执行过了,但是它下面的分支,却没有被完全覆盖到。比如if条件,它只跑过了true这个分支,而false分支、边界分支、异常返回的分支,全都没有被执行过,这一类的问题,在总的行覆盖率里面,是不那么容易看出来的。对于那些对MC/DC要求很高的项目,还要去查看每一个条件,是不是都能够独立地影响判定的结果。

3、结合用例,倒过来去推输入的条件

找到了没有被覆盖到的代码以后,就要倒过来去推,为什么这段代码会走不到那里。这有可能是因为测试数据不够,有可能是因为前边的状态没有被设置好,也有可能是桩函数返回的值太单一了,还有可能是那段代码本身,它就是跑不到的。到了这个阶段,不要急着去补用例,而是要先把缺口的原因确认下来,看一看这到底是测试不够充分,还是代码逻辑、配置,或者是死代码那一类的问题。

三、覆盖率缺口关闭时要注意什么

处理覆盖率缺口,并不是一个劲地补测试,把那个数字给推高,就算完成了。项目这边需要确认的是,新加进去的用例,它是真的把该验证的行为给验证过了,而不能仅仅是为了让某一行代码被执行到。特别是那些对安全要求极高的软件,覆盖率的证据,是要能够说清楚测试的路径、输入的条件、期望的结果,还有实际的结果。

1、补上真正有效的测试用例

在给缺口代码补充用例的时候,要把输入是什么、前置状态是怎样的、期望的输出是什么,还有覆盖的目标,都给写清楚。如果只是让代码空跑了一趟,后面却连一个检查的断言都没有,那这样的测试,价值就会很有限。覆盖率,它是应该和验证的结果放在一起来看的,不能脱离开功能是不是正确,去单独追求那几个数字。

2、对那部分跑不到的代码进行处理

要是真的发现了某一段代码,它是跑不到的,那就要去分析一下,这到底是设计的时候特意留下来的,是被平台的条件给限制住了,还是以前留下来的旧代码。可以通过覆盖率缺口清单,把它的原因、责任人,还有处理的结果,都给记录下来。那些能够删掉的死代码,就尽量把它删掉;那些不能删掉的,就要把理由给说清楚,同时把验证的边界也给确认下来。

3、形成一份闭环的报告

把缺口关闭以后,要重新把测试运行一遍,再生成一份新的报告。Parasoft的覆盖率方案,是支持把不同测试运行当中得到的覆盖率信息,汇总到一起的,而且还可以在文件、项目这些不同的粒度上,去分析那些覆盖还不够充分的区域。只有这样,才能拿出证据来,证明那些缺口,已经被新增的用例给覆盖住了,而不是仅仅在文档里面,写上一句“已经处理过了”。

总结

Parasoft代码覆盖率怎样统计,以及覆盖率的缺口又该如何定位,这里面的关键,是先要把覆盖率的类型给选对,然后再通过测试的执行,把数据收集起来,最后再按照文件、函数、分支、条件,一层一层地去定位那些缺口。在处理覆盖率缺口的时候,不要只盯着数字的提升,而是要先去判断,那些没有被覆盖到的代码,到底有没有涉及关键逻辑,然后再用有效的用例、对跑不到的代码给出的说明,以及回归测试的报告,去形成一个闭环。这样一来,Parasoft覆盖率的统计结果,才会更加适合用在测试评审和质量证明的场合。

展开阅读全文

标签:AUTOSARISO26262CWE

读者也访问过这里:
Parasoft
与世界保持同步创新的测试
立即购买
最新文章
Parasoft服务虚拟化怎么配置 Parasoft服务虚拟化环境连接失败怎么办
服务虚拟化用于测试时,需要让Virtualize Server、虚拟资产、传输连接和被测应用地址保持一致。主机名、端口、路径或证书不匹配,都可能出现连接失败或请求未命中。因此,弄清Parasoft服务虚拟化怎么配置Parasoft服务虚拟化环境连接失败怎么办,重点是把创建、部署、转发和验证连成完整链路。
2026-07-27
Parasoft接入Jenkins怎么配置 Parasoft Jenkins构建失败日志怎么排查
Parasoft接入Jenkins应当怎样配置,以及Jenkins构建失败时日志又该如何排查,这两个问题,是不少团队在把静态分析、单元测试和覆盖率接入CI的时候,都会碰到的。这里需要先分清楚两件事情,Parasoft这个工具,它负责的是执行分析、生成报告;而Jenkins这边,它负责的是调度任务、展示结果,还有控制流水线的状态。如果前一个环节没有生成出有效的报告,那么后面插件的配置就算再完整,Jenkins的页面上,也不会有正常的结果出来。所以在进行配置的时候,不能只盯着插件那边的界面,而是要把工具的执行、报告的输出、路径的读取,还有质量的判断标准,这几样东西连在一起去看。
2026-06-30
Parasoft SOAtest怎么测试接口 Parasoft SOAtest接口断言怎么设置
Parasoft SOAtest测试接口的方法,和接口断言怎样设置,这两件事的关键,是先把接口的请求调通,然后再一步一步把需要校验的地方补上去。SOAtest这个工具,能够支持REST、SOAP、微服务、数据库这些不同的测试场景,也能够根据流量或者自然语言去生成API的测试,还可以创建那种靠数据来驱动、分好几个步骤的测试流程。所以,它的用处不只是发出一个请求然后去看返回的结果,它更适合把接口的调用、参数的准备、响应的校验,还有回归的执行这一整套东西都串在一起。
2026-06-30
Parasoft DTP报告怎么查看 Parasoft DTP质量趋势怎么分析
Parasoft DTP报告怎么查看,以及DTP里的质量趋势怎么分析,这通常是项目在接入静态分析、单元测试、覆盖率或合规检查之后才会碰到的事情。DTP这个工具,它并不是要你再单独跑一次测试,它更像是一个能把各类测试结果集中起来看的质量平台,它可以把静态分析、测试执行、覆盖率和合规状态这些数据,都放在一个统一的看板里面,用来帮助判断项目当前的风险和发布准备的情况。
2026-06-30
Parasoft C/C++test怎么导入工程 Parasoft C/C++test头文件路径怎么补齐
Parasoft C/C++test导入工程的方法,以及头文件路径的补齐方式,其关键并不在于仅将源码文件夹选中。C/C++项目对编译器、宏定义、头文件目录、目标平台和构建脚本都存在依赖,如果这些信息没有被一同导入,工具所看到的代码便不是项目在真实编译时的代码,后续的静态分析、单元测试和规则检查都会因此出现偏差。Parasoft的文档中也曾提到,C/C++test能够通过构建数据文件、Visual Studio工程、CMake生成的JSON等方式,来收集输入范围和构建信息。
2026-06-30
Parasoft MISRA规则怎么启用 Parasoft MISRA违规项怎么按等级筛选
Parasoft的MISRA规则应当怎样启用,以及MISRA的违规项又该如何按照等级去筛选,这两个问题的处理方式,主要取决于项目当前使用的是Parasoft C/C++test的桌面版本、命令行版本,还是结合DTP平台来统一查看结果。MISRA规则的启用,并不是简单地把开关打开就算完成了,在这之前,还需要确认项目代码能够被正常分析,编译配置、头文件的路径、宏定义,还有规则集,这几样都是正确的。Parasoft C/C++test这个工具,能够被用在C和C++代码的质量检查上,同时也支持面向安全关键软件的编码规范合规检查,其中就包含了与MISRA有关的规则。
2026-06-30

读者也喜欢这些内容:

咨询热线 15601718224