Parasoft中文网站 > 使用技巧 > Parasoft MISRA规则怎么启用 Parasoft MISRA违规项怎么按等级筛选

Parasoft MISRA规则怎么启用 Parasoft MISRA违规项怎么按等级筛选

发布时间: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的检查才不是简单地去跑一下工具,而是能够真正去支撑代码质量的审查,和合规的交付。

展开阅读全文

标签:CERT软件测试安全测试代码质量分析

读者也访问过这里:
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