发布时间:2026-06-30 14: 14: 00
把项目接入持续集成之后,单次的扫描结果只能说明当时那一刻的情况,真正值得持续盯着的,其实是缺陷数量、覆盖率和测试结果这几个方面,有没有随着时间在慢慢变好。要谈清楚Parasoft DTP里面的质量趋势图到底该怎样去读,以及不同团队之间如果指标的计算口径对不上,又该怎么去把它拉齐,重点就在于先要搞清楚这些趋势图背后统计的到底是哪些构建、哪些扫描任务,还有哪些代码目录,然后再来判断曲线上的那些变化可不可信。DTP这个平台会接收像C/C++test、dotTEST、Jtest这些工具上报过来的数据,然后通过仪表板上的各个组件,把分析的结果给展示出来。
一、Parasoft DTP质量趋势图怎么看
看DTP里的质量趋势图,不能光是盯着曲线往上走还是往下掉了就急着下结论。缺陷数量突然一下子变少了,并不一定就代表代码质量真的变好了,也可能只是因为扫描的范围被调整过、规则集换掉了,或者构建的标识发生了变化。
1、先核对一下筛选条件
打开仪表板以后,要先去看一眼当前生效的那些Filter、Period,还有作为基准的构建和目标构建分别是哪两个,Filter会决定仪表板接收的是哪些运行配置,而时间范围和构建范围,就划定了趋势图到底展示的是哪一段数据,在不同的筛选条件下生成的图表,是不能直接拿来放在一起比较的。
2、把缺陷和覆盖率分开来看
在分析静态扫描的趋势时,主要去看的是新增了哪些缺陷、关闭了哪些缺陷、还剩下多少没处理,以及它们的严重级别有没有变动;而在看覆盖率的趋势时,则要关注语句覆盖、分支覆盖和条件覆盖是不是稳得住,如果发现某个指标突然之间有了较大的波动,就应该点进那个具体的组件里去看明细,不要光待在总览那个页面里就下判断。
3、结合Build ID去查看变化
DTP是可以按照Build ID,把多次分析出来的结果聚合到同一个构建里面去的,这样就很适合用来比较不同版本之间的差异;但是如果同一天之内跑了好多次扫描,每一次都用了不同的Build ID,那曲线看起来就会显得过于零碎,反过来,如果好几个发布版本一直共用着同一个Build ID,它们的结果又容易混在一起分不清。
4、多去关注新增加的那部分代码
当遗留项目里面堆积的历史问题比较多的时候,从总量曲线上是很难看出明显变化的,不妨把注意力放到新增的代码、修改过的代码,还有最近几次的构建上面,看一看这一轮的改动有没有把新的问题给引进来,DTP也提供了Modified Coverage这样的能力,可以按照基线构建和目标构建,去专门查看修改代码的覆盖情况。
二、Parasoft DTP指标口径不一致怎么统一
DTP的指标口径出现不一致,比较常见的原因就是不同的团队在扫描的时候用了不一样的配置、不一样的Session Tag、不一样的代码目录,或者不一样的统计范围,在统一口径的时候,不要只去改仪表板的名称,应该顺着上报的参数,一项一项地往下梳理。
1、把DTP Project和Build ID统一起来
同一个产品线需要事先约定好DTP Project的命名规则,Build ID也要跟构建的版本对应得上,在DTP里的一次运行记录,会同时把Build ID、Coverage Tag、工具、项目、测试配置、Session Tag、机器和用户这些信息都记下来,只要其中有一项长期处在混乱的状态,趋势图上就会出现很难解释的分叉。
2、把Test Configuration也统一好
静态分析的规则集、覆盖率采集的方式,还有测试的配置,这些都应该尽量保持一致,如果研发分支和发布分支确实需要用到不同的规则,那就要在仪表板里面把它们拆开来查看,不要把两套口径混在同一条趋势线上。
3、把Session Tag的用途固定下来
Session Tag比较适合拿来区分不同的分支、不同的平台,还有不同的测试环境,要是两个环境不小心用成了同一个Session Tag,DTP就有可能把它们归到同一组的运行配置里面去;反过来,要是同一个环境总是频繁地更换Tag,趋势又会被拆得支离破碎。
4、把目录的统计范围统一起来
当需要按照模块来查看数据的时候,可以给Filter关联上Resource Group,Resource Group会按照文件和目录的匹配模式,把静态分析、指标和覆盖率的展示范围给缩小,但它并不会去改动单元测试的结果;因此,在多个团队对比数据之前,得先确认好目录范围是不是一致的。
三、Parasoft DTP指标统一后怎么复核
口径被调整完之后,还不能就算完事了,最好再安排一次小范围的复核,要不然仪表板表面上看着是整整齐齐的,底下的数据里面却可能还混着旧配置。
1、挑两个连续的构建来做对比
选出相邻的两个Build ID,去检查一下它们的扫描范围、规则集、Session Tag还有代码分支是不是一样的,然后再去看缺陷数量的增减能不能对应到实际的代码提交上。
2、检查一下异常的波动
当缺陷的数量、覆盖率或者测试失败的数量突然之间大幅度变化的时候,要回到运行记录的页面里去查一查,看看是不是中间更换过扫描配置、构建机或者代码目录,不要一看到波动就把它解释成质量发生了变化。
3、把配置模板固定下来
可以把DTP Project、Build ID、Session Tag、Coverage Tag,还有Test Configuration这些东西,都写进流水线的模板里面去,尽量减少人工手工输入的机会,以后再有团队新增项目的时候,就能直接照着这套统一的规则来执行。
4、保留下口径的说明文档
在项目的文档里面,把指标的定义、统计了哪些目录、排除了哪些范围、构建是怎么命名的,还有仪表板的Filter是怎么设的,这些信息都写清楚,这样到了评审、交接,或者回过头来复盘版本的时候,就不会再为“为什么同一个数字总是对不上”这种问题反复争论了。
总结
看趋势图的时候,曲线本身只是一个入口,底层的口径才是决定这些数据能不能相信的关键。要把Parasoft DTP里的质量趋势图给看明白,还有把不同来源的指标口径给统一起来,实际上要从Filter、Build ID、Test Configuration、Session Tag和Resource Group这些地方,一项一项地去核对清楚。等到这些基础的东西都被固定下来了以后,再去看缺陷的变化、覆盖率的走势,还有测试的结果,这时候图表才能真正拿出有参考价值的东西来。
展开阅读全文
︾
读者也喜欢这些内容:
Parasoft SOAtest怎么测试接口 Parasoft SOAtest接口断言怎么设置
Parasoft SOAtest测试接口的方法,和接口断言怎样设置,这两件事的关键,是先把接口的请求调通,然后再一步一步把需要校验的地方补上去。SOAtest这个工具,能够支持REST、SOAP、微服务、数据库这些不同的测试场景,也能够根据流量或者自然语言去生成API的测试,还可以创建那种靠数据来驱动、分好几个步骤的测试流程。所以,它的用处不只是发出一个请求然后去看返回的结果,它更适合把接口的调用、参数的准备、响应的校验,还有回归的执行这一整套东西都串在一起。...
阅读全文 >
Parasoft单元测试用例怎么生成 Parasoft单元测试数据怎么维护
Parasoft的单元测试用例应该怎样生成,以及单元测试的数据又该如何维护,这两个问题通常需要先看项目使用的是C/C++test、Jtest,还是团队在现有工具上集成出来的测试流程。Parasoft C/C++test主要面向C和C++,它能提供静态分析、单元测试、覆盖率以及需求追踪这些能力;Jtest则针对Java单元测试,比较关注JUnit测试的生成、执行和覆盖率的提升。所以在生成用例之前,不能只问工具该怎么操作,还要先把语言、构建环境和测试目标确认下来。...
阅读全文 >