
随着现代车辆的智能化发展(ADAS, Telematics, Infotainment, Cloud Services),车载代码量呈指数级增长,软件功能安全合规性要求在不断增加,网络信息安全标准也提上日程,在代码开发阶段进行自动化静态分析就显得尤为重要,符合行业编码规范也是对车载代码的基础要求。
美国Perforce(PRQA)公司是嵌入式静态分析领域公认的行业领导及先驱,拥有30多年软件开发及测试经验,是MISRA编码委员会的创始成员合最具有影响力的会员,同时是AUTOSAR组织在代码静态分析领域的唯一会员,负责功能安全软件架构的相关标准制定工作,参与编写了C++14编码指南,制定了AUTOSAR测试方案。
Perforce QAC(原 Helix QAC)作为静态分析领域公认的行业先驱,可以支持MISRA C/C++、AUTOSAR C++、CERT C/C++、CWE C/C++、HICPP、JSF AV C++编码规范包,旨在帮助开发和测试人员在Coding阶段实现高效的自动化静态测试,发现代码潜在缺陷,衡量代码质量,缩减开发时间,降低开发成本。
北汇信息作为Perforce的合作伙伴,将为中国客户提供专业的静态代码测试解决方案。
Perforce QAC特性
Perforce QAC软件组成:
QAC/C++静态分析器:可以兼容数百万行代码,高速执行静态分析;
编码规范包:可选组件,配合静态分析器实现代码的合规性测试;
项目管理Web平台:Dashboard/Validate 全生命周期软件开发管理;
新License模式:新版本提供Build license,专用于CI/CT流程
1、 代码静态分析
QAC支持在Windows/Linux平台使用,可通过GUI/命令行/插件的方式创建静态分析工程,支持通过Sync同步编译/手动非编的方式加载源码文件,支持基于Visual Studio、Eclipse、VS Code IDE、CodeWarrior、GNU、IAR、GreenHills、Hightec Tricore、QNX环境等400+种编译器自动生成CCT配置文件;通过对源码的快速准确分析得到代码相应静态分析诊断消息,并具备多文件并行分析、跨模块分析等功能,万行代码分析用时不超过30s;
QAC支持根据多种类分组筛选诊断消息,针对每条诊断消息都有对应的help页面辅助修复。

图1 QAC代码审查
2、 编码规范检查
QAC支持C、C++语言编码规范检查,支持MISRA C 2004、MISRA C 2012、MISRA C++2008、MISRA C/C++ 2023、MISRA C 2025、AUTOSAR C++、CERT C/C++、CWE C/C++等编码合规模块,能够自动对被测源码进行编码规范检查,同时支持企业自定义编码规范。

图2 编码规范覆盖度
3、 度量元指标分析
QAC提供全面的度量元指标,共计68种,可基于函数、文件、工程角度实现代码质量度量,并支持自定义度量元阈值、自定义复合度量元等功能。

图3 度量元指标
4、 数据流分析
QAC借助特有的深度数据流分析引擎,模拟代码运行时机制,通过数据流分析找出如未定义行为、控制流 、初始化、指针等类型的运行时错误。QAC提供5个等级的数据流分析,企业可以根据项目需求选择性执行。
5、 测试报告
QAC支持生成多种报告,包括代码审查报告(Code Review Report)、MISRA合规报告(MISRA Compliance Report)、HIS度量元报告(HIS Metrics Report)、度量元数据报告(Metrics Data Report)、抑制报告(Suppressions Report)等,支持通过项目管理Web平台进行报告定制化。

图4 QAC生成报告
6、 基于网页端的项目管理平台
QAC可提供两个基于Web端的项目管理平台——Dashboard/Validate,通过网页管理平台更好的实现团队化合作,同时还支持源码版本管理、文件对比分析、度量元趋势图分析、定制化报告;支持LDAP,,快速导入账号信息,并且可根据项目分组,为组内成员设置访问权限。

图5 Dashboard

图6 Validate
7、 CI/CT集成
QAC可提供丰富的命令行,通过命令行即可实现license配置—工程创建与分析—报告生成—上传Web平台全流程,易与持续集成系统进行融合,部署CI/CT流程,同时新版本QAC 提供Build license,更适用于CI/CT流程。
8、 抑制规则
QAC可根据用户/项目需求自定义规则,针对规则/诊断消息支持Enable/Disable,可以基于项目经验制定Baseline,还提供有抑制语法对特定代码行进行诊断抑制。
资质认证
Perforce QAC得到SGS-TÜV SAAR认证,可用于安全相关软件的开发,符合ISO26262 (ASIL D,TCL2)、IEC 61508、EN 50128、IEC 60880、IEC 62304、DO-330 (DO-178B/C)、ISO/SAE 21434标准,帮助客户用更少的时间完成产品认证。

图7 资质认证证书
QAC部分客户
