前言
随着现代车辆的智能化发展(ADAS, Telematics, Infotainment, Cloud Services),车载代码量呈指数级增长,代码静态分析的自动化势在必行,且人们对功能安全的要求日益严格,符合行业编码规范是对车载代码的基础要求。
美国Perforce(PRQA)公司是嵌入式静态分析领域公认的行业领导及先驱,拥有30多年软件开发及测试经验,是MISRA编码委员会创始会员及最具影响力的会员,同时是AUTOSAR组织在代码静态分析领域的唯一会员,负责功能安全软件架构的相关标准制定工作,参与编写了C++14编码指南,制定了AUTOSAR测试方案。
Perforce的Helix QAC作为业内为人熟知的自动代码静态分析工具,可以支持MISRA C/C++、AUTOSAR C++、CERT C/C++、CWE C/C++、HICPP、JSF AV C++编码规范包,其精准的诊断消息和强大的软件生命周期管理平台为全球3000多个整车厂和零部件供应商所信赖。
北汇信息作为Perforce的合作伙伴,将为中国客户提供专业的静态代码测试解决方案。
Helix QAC特性
Helix QAC是静态分析领域公认的行业先驱,旨在帮助开发和测试人员在Coding阶段实现高效的自动化静态测试,发现代码潜在缺陷,衡量代码质量,缩减开发时间,降低开发成本。Helix QAC包含3部分主体:
- Helix QAC/C++静态分析器 可以兼容数百万行代码,高速执行静态分析;
- 编码规范包 可选组件,配合静态分析器实现代码的合规性测试;
- 项目管理平台Helix QAC Dashboard 全生命周期软件开发管理。
1、代码静态分析
Helix QAC借助特有的深度数据流分析引擎,模拟代码运行时机制,检测C/C++语言中会降低代码复用性、导致功能安全问题、产生网络安全漏洞的危险代码结构,最大限度提高代码检测覆盖率,最小化漏报误报率。
Helix QAC目前提供多达4107条诊断消息,其中针对C语言2156条,C++1951条,这意味着对编码规范更全面更精准的覆盖,因为每一条诊断消息都对应具体的编码规则,可以有效诊断指针操作、类型转换、溢出/零除、未定义行为、数据流等等问题,并提供在线help,开发工程师可以根据help实时修改源码。
图 1 Helix QAC代码审查
2、度量元指标
度量元是对源代码某些可量化属性的度量,每个度量元都从不同角度反映代码质量,比如复杂性、可读性、残留的bug或可测试性等。Helix QAC提供基于函数以及文件的度量元118个,其中针对C语言65个,C++53个,为企业制定度量元标准、控制度量元数值、掌控代码质量提供强有力的依据。
3、Helix QAC支持的编码规范
Helix QAC可以自动遵循以下编码规范,并对诊断消息划分严重等级,帮助用户最先解决严重问题,使其软件符合ISO26262要求。
1)MISRA C 2004、MISRA C 2012、MISRA C++ 2008:嵌入式系统最理想的编码规范,防止会导致功能安全问题及网络安全漏洞的错误编码。
2)AUTOSAR C++ 14:为应用现代C++语言编写安全和任务关键型嵌入式系统提供有效指导。
3)CERT C/C++:旨在清除代码中可能导致网络安全的编码惯例以及未定义行为。
4)CWE C/C++:从架构、设计、乃至编码层面描述代码中常见的网络安全问题,可以作为识别、减少、预防漏洞的基线。
Helix QAC基于对以上编码规范良好的执行力和覆盖度,帮助全球各大整车厂、零部件供应商及其他行业如航空、军工、医疗等领域的企业提高代码质量,实现对编码规范及相关行业标准的最佳实践。
图 2 编码规范覆盖度
4、Helix QAC Dashboard
Helix QAC Dashboard是基于网页端的项目质量管理平台,可实现异地团队项目信息共享,核心开发人员、开发经理、高级管理人员可以在此平台查看源码诊断消息、进行基线/版本管理、添加修改注释、热力图快速定位问题源码、关注代码质量走势、设置项目权限、查看代码合规情况、定制报告等等,给客户呈现一种更广义的质量管理概念。
图 3 Helix QAC Dashboard 自定义窗口
图 4 度量元观测代码质量趋势
5、集成环境
- IDE集成环境:Microsoft Visual Studio、Eclipse
- CI环境:Jenkins、Jira等通过命令行实现交互
6、支持的操作系统
- Windows
- Linux
7、多样化的本地报告
- 合规报告:给出代码对编码规范的遵循情况,直观定位问题代码。
- 代码审查报告:总结基于文件和函数的度量元数据、函数调用等信息。
- Metrics数据报告:提供XML文件,可用作进一步检查代码质量度量的数据源。
- 抑制报告:提供分析工程期间诊断消息的抑制情况。
图 5 Helix QAC本地报告
资质认证
Helix QAC得到SGS-TÜV SAAR认证,可用于安全相关软件的开发,符合IEC 61508(SIL4), ISO 26262(ASIL D), EN 50128(SW-SIL4), IEC 60880以及IEC 62304(Software Safety Class C)标准,帮助客户用更少的时间完成产品认证。
图 6 资质认证证书
客户列表(部分)