发布时间:2026-06-30 16: 19: 00
Parasoft的MISRA规则应当怎样启用,以及MISRA的违规项又该如何按照等级去筛选,这两个问题的处理方式,主要取决于项目当前使用的是Parasoft C/C++test的桌面版本、命令行版本,还是结合DTP平台来统一查看结果。MISRA规则的启用,并不是简单地把开关打开就算完成了,在这之前,还需要确认项目代码能够被正常分析,编译配置、头文件的路径、宏定义,还有规则集,这几样都是正确的。Parasoft C/C++test这个工具,能够被用在C和C++代码的质量检查上,同时也支持面向安全关键软件的编码规范合规检查,其中就包含了与MISRA有关的规则。
一、Parasoft MISRA规则怎么启用
在启用MISRA规则之前,需要先把项目导入进来,并且把编译环境配置好。如果项目本身就没有办法被正确地解析,那么后面即便把MISRA规则打开了,也会出现大量的无效报错、解析失败,或者是规则结果不完整的情况。
1、先确认项目的分析配置
项目这边,需要先把编译器、包含路径、宏定义、源文件的范围,还有构建的方式,都一一配置好。到了这一步,先不要着急去跑MISRA规则,可以先用一些基础的静态分析,来确认代码是能够被正常解析的。要是头文件找不到,条件编译的宏又有缺失,那很多违规的结果,就会是失真的,后面再去按等级筛选,也就没有什么意义了。
2、把MISRA的规则集选好
进入测试配置以后,在静态分析规则的配置当中,去选择对应的MISRA规则集,然后把它保存成项目所要使用的那份检查配置。在这个地方,需要留意的,是版本的选择,比如说,项目要求的是MISRA C:2012,还是MISRA C:2023,又或者是与MISRA C++相关的规则。规则的版本,是不能够随便混在一起用的,到了客户审查,或者功能安全审查的时候,通常都会被要求去说明,到底是采用了哪一版的标准、哪些规则是启用了的,又有哪些规则是不适用的。
3、把静态分析运行起来
配置完成以后,可以直接在IDE里面把它运行起来,也可以通过命令行,或者是CI的流水线去执行。对于团队的项目来说,更建议把规则的配置给固定下来,这样可以避免每一位开发人员本地的规则不一致。不然的话,同一套代码在不同的电脑上去扫描,就有可能出现不一样的结果。
二、Parasoft MISRA违规项怎么按等级筛选
对MISRA的违规项进行筛选,目的并不仅仅是把列表的长度变短,而是要先把那些高风险的、强制性的规则,还有会影响交付的内容,优先挑出来处理。在项目刚刚开始的时候,违规的数量会比较多,这个时候,先按照等级、规则的类别、文件的模块,以及新增和历史的状态,去做一下筛选,整改的推进会变得更容易一些。
1、按照严重的程度去筛选
在结果的视图里面,是可以根据违规的等级、规则的编号、文件的路径、负责人,或者状态,去进行过滤的。那些高等级的问题、和安全相关的模块里面的问题,以及客户要求必须要清零的问题,都应当优先去处理。低等级的,或者是历史遗留下来的问题,可以放到整改的计划里面去,但是不能长时间放在那里不管。
2、按照规则的类别去筛选
MISRA规则本身,是有不同分类的,有些规则更加偏重语言层面的安全,有些规则则更加偏重可维护性或者可移植性。在筛选的时候,不要只盯着数量去看,还要去留意规则本身的含义。比如说,空指针、越界访问、未定义的行为、类型转换的风险这一些问题,通常来讲,要比格式类的,或者可读性方面的问题,更需要提前去处理。
3、按照新增的问题去筛选
如果项目已经建立了一条基线,那就要重点去筛选那些新冒出来的违规项。历史的问题,可以按照计划分批次去消化,但是新写进去的代码,不应当继续引入相同类型的问题。这样做的好处,是可以先把增量给控制住,然后再逐步去处理存量,不至于让开发团队在一开始,就被大量的历史问题给压住。
三、Parasoft MISRA的结果怎么整理成审查材料
MISRA规则的启用,以及违规项的筛选,这些还只是前面的半段,到了后面,还需要能够撑得起审查。材料要能够说明,规则是怎么启用的,结果是怎样筛选的,违规项又是怎么去处理的,偏离又是通过什么方式来审批的。
1、把规则的配置说明保留下来
在报告里面,要把所采用的MISRA版本、启用的规则范围、检查的代码范围、工具的版本,还有分析的配置,都一一写清楚。Parasoft的资料里面也强调过,C/C++test这个工具,是可以支持在安全,以及安全关键应用开发当中,去做编码标准的合规检查的,并且也可以和CI/CD这一些流程,集成在一起。
2、把违规项的处理状态保留下来
每一条违规项,都要有一个明确的状态,比如说,已经修复了、被确认是误报、做了偏离保留,或者是暂时放在那里不处理。不能只是把一份结果的列表导出来,就算结束了,特别是那些还没有被关闭的问题,要把原因,以及后面的计划,都给说明清楚。
3、把偏离和复查的记录保留下来
如果某一些MISRA的违规项,是不能够去修改的,那就需要有偏离的理由、风险的分析、补偿的措施,还有审批的记录。已经被修复的违规项,也要重新去扫描确认一下,不能只靠着开发人员口头上说一句,已经改完了,就把它放过去。
总结
Parasoft MISRA规则怎么启用,以及MISRA违规项怎么按等级筛选,这里面最核心的地方,是先要把项目的解析环境,和规则的版本配置,都弄正确了,然后再去运行静态分析,并且按照严重的程度、规则的类别、模块的范围,还有新增的状态,去筛选结果。再往后,还要把规则的配置、扫描的结果、违规项的整改、偏离的审批,还有复查的记录,都整理成一条完整的证据链。只有这样,MISRA的检查才不是简单地去跑一下工具,而是能够真正去支撑代码质量的审查,和合规的交付。
展开阅读全文
︾