这里有一份Helix QAC为您准备的2020静态测试清单,请查收!
前言
作为代码静态测试领域的领头羊,Helix QAC 2019.2着“盛装”款步而来,为各位代码开发大咖备足了年底干货。在清点干货前,我们先聊聊为什么要做代码静态测试以及如何实施静态测试。
虽然目前汽车市场在打盹儿,但这并不能阻挡汽车人追求更高更强的步伐,无论是已经过去的国际汽车测试展上V2X、智能驾驶的火爆(点击回顾精彩>>),还是各大权威机构对汽车行业的总结展望,无不印证了一点:在中国汽车市场开启新一轮繁荣之前,科技必然先行。
这意味着什么呢?
意味着更优质的驾驶体验,也意味着日益复杂的ECU和庞大的车载代码量。为保证车辆功能安全,将ISO26262落实到实处,我们必须要从Coding阶段入手。
据业内研究机构统计,软件代码中的缺陷率为1.33%,其中85%是在Coding阶段引入的。话至此,人非圣贤,孰能无过呢?我们能做的就是最大程度前移发现缺陷的阶段(如下图1橘色曲线),否则,一旦将缺陷累积到单元、集成乃至系统测试阶段,修复成本将呈指数级增长。
图 1 缺陷率-修复成本曲线图
那么问题来了,究竟如何正确高效地实施代码静态测试呢?
结合开发对象和开发语言,确认需要遵循的编码规范
- 如果是C主导开发,则需遵循MISRA C 2012,若开发对象涉及信息安全,比如智能驾驶、导航娱乐系统、车联网等,则需遵循MISRA C 2012 + CERT C;
- 如果是C++主导开发,遵循AUTOSAR Coding Guidelines即可,功能安全、信息安全一站式搞定
制定符合企业要求的度量元标准
企业如何把关代码质量?熟悉开发的朋友都知道,度量元是不可忽视的重要因素。度量是对源代码某些可量化属性的度量,没有一个单一的度量元能够提供全面的代码质量指标,但是每个度量元都提供了不同方面的视图,比如复杂性、可读性、残留的bug或可测试性。因此,很多企业会制定度量元标准,将度量元控制在一定的数值范围内,从而把控代码质量。下图是一些参考数据:
图 2 度量元参考数据
选个靠谱的自动化静态分析工具
是时候展示干货清单了。
Helix QAC 2019.2为静态测试:
- 提供多达4107条诊断消息,其中针对C语言2156条,C++1951条,100%覆盖了MISRA C 2012,84%覆盖了AUTOSAR Coding Guidelines
- 进一步提高了对网络信息安全编码规范CERT C和CERT C++的覆盖度,分别达到了93%和70%
- 提供基于函数以及文件的度量元118个,其中针对C语言65个,C++53个。这些度量元可以体现在代码审查报告中,亦可单独生成一份xml度量元数据报告
图 3 代码审查报告
图 4 度量元XML报告
- 更新完善28条命令行操作。这可以说是headless mode爱好者的燃点,接下来可以看几个例子
eg1:qacli admin --qaf-project <project-path> --upgrade
此命令用来更新旧版本Helix QAC工程组件,比如将MISRA C 2012组件从m3cm 2.3.6更新到最新的m3cm 2.4.0,免去版本冲突,确保分析准确度。
eg2:qacli admin --list-configs -P <path>
此命令用来查看工程配置,Helix QAC可以针对同一工程,配置不同的规则项,如下图所示:Helix QAC Demo工程同时配置了Initial(default)、MISRAC2012、cwe三种规则组。
eg3:qacli pprops –-list-options -C x.x.x
此命令可查看分析组件的可配置项,如-d宏定义、-enabledataflow是否启用数据流分析等。
eg4:qacli admin -P <project-path> -a --analysis-priority <integer> – “Isrc/sourcefile.c”
此命令可为新添加的源文件设置分析优先级。
篇幅所限,剩下的24个命令不再做eg详述。
在车载软件代码量与日俱增的今天,功能安全、信息安全的重要性日益凸显,结合车企投资缩紧的市场现状,开发初期发现并修正软件缺陷,在保证软件质量的同时降低研发成本,无疑是各个车企的最佳选择。
Helix QAC 2019.2带着新增的诊断消息,更高的编码规范覆盖度,更便捷的命令行操作,陪伴各位开发、测试工程师迈入崭新的一年,持之以恒得为代码静态测试的高效实施贡献力量。
至此,干货已足。代码静态测试,你get到了吗?
本文来自博客园,作者:{北汇信息},转载请注明原文链接:{https://www.cnblogs.com/polelink/}