随着现代车辆的智能化发展(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、 集成环境

1) IDE集成环境:Microsoft Visual Studio、Eclipse

2) CI环境:Jenkins、Jira等通过命令行实现交互

6、 支持的操作系统

1) Windows

2) 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 资质认证证书

客户列表(部分)

Helix QAC企业级自动代码静态分析器相关推荐

  1. 王牌代码静态测试工具Helix QAC 2022.2 中的新增功能(1)

    Helix QAC 2022.2 中的新增功能 Helix QAC 2022.2 提供更强大的 C++ 20语言功能支持,更新了 MISRA 和 HKMC 的合规性模块,以及新的配置选项,可在处理 S ...

  2. Google出品的Python代码静态类型分析器:Pytype

    Pytype检查并推断Python代码的类型--不需要类型注解.Pytype可以: 使用lint检查纯Python代码,标记常见错误,如属性名拼写错误.不正确的函数调用,等等更多,它甚至可以跨文件. ...

  3. Docker 教程:如何将Helix QAC作为容器创建并运行 下

    文章目录 第三部分:在本地项目上运行 DaaQT 在此 Docker 教程中,你将学习如何创建 Helix QAC 并将其作为容器化镜像运行. Docker 的基本定义是一种开源和流行的操作系统级虚拟 ...

  4. 软件静态测试qac,Helix QAC — 软件静态测试工具

    •代码自动审查 QAC/QAC++ 能够对C/C++ 代码规则进行自动检查,报告所违反的编程标准和准则,减少代码审查所需的时间,使软件工程师在开发阶段就可以避免代码中的问题. •规范支持 QAC/QA ...

  5. Helix QAC — 软件静态测试工具

    Helix QAC 是Perforce 公司(原PRQA 公司)产品,主要用于C/C++ 代码的完全自动化静态分析工作,可以提供编码规则检查.代码质量度量.软件结构分析.测试结果管理等功能.Helix ...

  6. 关闭Visual Studio中的自动代码分析

    背景 最近买了新电脑,于是安装了最新的Visual Studio 2019社区版(插说一句,其实像Visual Studio这么重要的编译器,因为被很多其他软件依赖,最好不要用最新的,可以用稍微晚一两 ...

  7. Jenkins 在 Tomcat 中的部署及代码静态检查工具集成

    Jenkins 的简单部署 在安装了 Jenkins 运行所需的依赖(主要是 JDK)之后,可以通过如下步骤简单快速地部署 Jenkins: 下载 Jenkins. 打开终端并切换至下载目录. 运行命 ...

  8. 《C程序设计新思维》一第6章 玩转指针6.1 自动、静态和手工内存

    本节书摘来自异步社区<C程序设计新思维>一书中的第6章,第6.1节,作者 [美]Ben Klemens,更多章节内容可以访问云栖社区"异步社区"公众号查看 第6章 玩转 ...

  9. 代码静态检查工具PC-Lint运用实践

    代码静态检查工具PC-Lint运用实践 如何提交zero bug的产品,如何尽早发现bug,是软件开发工程师和测试工程师都需要思考的问题.我认为高质量的代码是关键,具体实施保障办法有:框架约束,代码评 ...

最新文章

  1. 【鬼网络】之部署YUM仓库大全
  2. 微信小程序中this指向作用域问题this.setData is not a function报错
  3. python中函数的定义实例_Python基础之函数的定义与使用实例
  4. unity5.4.3p2里面的AssetBundle打包流程
  5. 都 2021 年了,Serverless 能取代微服务吗?
  6. postgresql定义访问ip与用户_PostgreSQL 设置允许访问IP的操作
  7. matlab 工程文件下载,工程文件管理 - MATLAB Simulink - MathWorks 中国
  8. PAT L2-003. 月饼
  9. github上完成个人的站点搭建
  10. DataFrame的构建及一些操作
  11. mysql autoconf_MySQL_用Autoconf检测MySQL软件包的教程,在你的程序(或者工程)中,如 - phpStudy...
  12. Windows 7的上帝模式
  13. Windows 系统彻底卸载 SQL Server 通用方法
  14. 让你的nginx支持分布式追踪opentracing
  15. 深度神经网络之Keras(二)——监督学习:回归
  16. 26.(cesium篇)cesium军事标绘-攻击箭头编辑修改(燕尾)
  17. 网络传输介质 通信中的有线介质:双绞线、同轴电缆、光纤 引导性传输介质
  18. Uni-app APP开发、适配指北
  19. 第11章:图像金字塔
  20. 路由器到游戏服务器稳定性差,电竞路由器和普通路由器有什么区别!

热门文章

  1. 机器学习——回归模型
  2. Ubuntu_apt-update_Certificate-verification-failed
  3. maven 国内源配置
  4. thinkphp6+websocket 群聊实现
  5. 2021爱分析・数据智能平台实践报告—重构数据智能时代的数据基础设施
  6. 共轭方式怎么判断_有机化学中共轭体系的类型怎么判断
  7. linux 查看CPU核数
  8. MySQL5.6建索引时遇到 Specified key was too long; max key length is 767 bytes错误提示解决办法
  9. Linux下的FTP安装和登录
  10. Pytest如何并发执行自动化脚本