Helix QAC 2019.1版 |为你开拓代码静态测试新视野

前言

 

 

说到QAC,可谓是代码静态分析领域的老朋友了。目前,QAC正式更名为Helix QAC,版本升级至2019.1,为广大工程师带来更优秀的代码静态测试体验。
何为“优秀”?且看下文。

 


提高编码规范覆盖度

 


Helix QAC对编码规范有极好的执行力,拿一组数据来看:


 

 

据Perforce近期调查显示,人们最为关注的就是安全,ISO26262首先成为各大OEM、Suppliers争相实践的焦点,然而,完全符合安全要求是一项挑战。按照功能安全要求,我们首先需要从代码的静态测试做起,静态测试的关键就在于严格遵循编码规范。


Helix QAC对最具权威性的MISRA规范达到97%-100%覆盖,对支持C++14语言特性的AUTOSAR编码规范达到84%覆盖。


调查显示,智能网联汽车及自动驾驶在未来发展中会逐渐凸显重要性,Helix QAC则进一步提高了对网络信息安全规范CERT C/C++和CWE C/C++的覆盖度,最大程度保护车辆免受黑客的攻击。

 


增强分析精度和分析速度,提高工作效率

 


代码静态分析结果有太多的漏报和误报?对超大工程实施静态分析要运行几个小时甚至几天?存在卡死现象?Helix QAC帮助我们克服以上测试痛点:

  • 明确与代码的控制流、变量状态、库调用和语义建模相关的关键编码问题
  • 应用SMT(Satisfiability Modulo Theories)求解引擎
  • 针对C语言提供多达2144条诊断消息
  • 针对C++检测提供1931条诊断消息

这些诊断消息分类映射到编码规范,在保证极低的漏报和误报率的同时最大化编码规范覆盖度,帮助测试工程师节省筛选有效消息时间,提高工作效率。
另外,Helix QAC简化命令行操作,帮助测试工程师轻松实现脚本自动化测试。

 

本次版本更新,着重优化了Dataflow分析和对诊断消息的抑制处理。

 


多线程检测 — 避免并发缺陷

 


Helix QAC增强了Dataflow分析能力,涉及多线程分析和污染变量分析。这一更新帮助您检测潜在的并发缺陷,比如死锁和数据争用问题。


内部线程分析


多线程编程固然有很多好处,但会存在传统的测试方法和调试方法都不太可能识别的潜在缺陷,比如多线程访问共享数据并尝试修改数据时,会发生数据争用;竞争资源时阻塞多个线程,导致死锁等。Helix QAC优化了与线程检查相关的诊断消息。


例1. Message 4976 (call to a non-reentrant function outside of a critical section) when calling strerror inside a critical section.


 

 

例2. Message 4981 (attempt to unlock a mutex which has not been locked by the current thread) when the locking and unlocking of a mutex is controlled by an if statement.


 

 


受污染的变量


Helix QAC增加了新的检查组用于检查受污染变量的不当使用,这些变量的值来自不受信任的源,比如主函数的参数或者文件流的输入。未经适当的检查,受污染的变量不应应用于算数表达式中或格式化字符串中。数据流分析会针对以上问题给出诊断消息。


例3. Message 2924 Possible: Left shift operation on tainted expression of unsigned type results in lossof high orderbits.


 

 

新增改进数据流检查和跟踪内存分配/释放功能的诊断消息:2706-2708、2724。

 

 

支持抑制指定宏,提高抑制消息的灵活性

 


比如我们只想抑制’GLOBAL’的外部链接warning 3408,则直接在首行输入’//PRQA MS “GLOBAL” 3408 EOF’即可,而不是抑制全局出现的warning 3408。


 

 

优化协作管理平台


Helix QAC 2019.1的Dashboard界面更加友好:

  • 支持在线添加修改注释,以饼状图、折线图、表格等形式汇总分析结果
  • 支持定制化报告
  • 支持与持续集成环境(如Jenkins、Jira等)集成
  • 帮助我们实现自动化测试,及早发现缺陷,这也就避免了在开发后期以更昂贵的代价修复缺陷

 

我们可以使用Helix QAC Dashboard进行代码的团队协作检查。您将能够从更高的视角监管整个项目趋势及代码质量走势,因为dashboard采用web端登录的方式,您甚至可以为每一位利益相关者分配权限,生成定制报告,方便项目管理及项目动态分享。

 

 

 

 

此次更新,Helix QAC还增大了代码兼容量,分析规模达到数百万行,无论代码库多复杂,它都可以提供一份可靠的静态测试报告。另外,Helix QAC重新聚焦并加速现有的代码审查,我们可以将其配置为仅分析新更改的源码来节约分析执行时间,更快得到反馈。

 

 

总结

 


总结下来,Helix QAC一直在向着开发、测试工程师所期待的方向发展,致力于实现顶尖的代码静态测试水平,帮助客户理解并遵循编码规范,培养良好的编码习惯,让客户得到可靠性好,可移植性强,可复用率高,易测易维护的高质量代码。
小伙伴们,未来可期。

posted @ 2021-12-23 13:57  北汇信息  阅读(495)  评论(0编辑  收藏  举报