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项目配置错误导致分析失败如何处理
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