最近发布的《 2012 Coverity Scan Report》显示,在减少检测到的缺陷方面,开源和专有代码争夺头把交椅。
Coverity Scan服务是美国国土安全部于2006年启动的,它是世界上最大的公私部门研究项目,致力于开源软件的质量和安全性。
DHS结束了该项目,但是Coverity继续向开放源代码社区提供免费的开发测试技术。C C ++以及自2013年初以来的基于Java的项目都可以申请进行扫描,并获取有关缺陷的报告。LibreOffice,MariaDB,NetBSD,NGINX,Git,zsh,Thunderbird和Firefox是Coverity Scan扫描的知名项目。
最新报告详细介绍了对超过4.5亿行软件代码的分析,这是该报告迄今研究的最大样本量。其中一项重要发现是令人放心的,即Coverity扫描的开源代码和专有代码已连续第二年实现每千行代码中的缺陷密度低于1,这是行业标准的密度缺陷水平,并提供了索引。的1.0。
专有代码的平均缺陷密度为0.68,开放源代码的平均缺陷密度为0.69,Linux被Coverity描述为达到0.59的“质量基准”。
一个特别有趣的发现是,随着项目数量超过一百万行,开放源代码和专有代码的性能将发生变化。缺陷密度为.44的小型开源项目的质量在500,000-1,000,000行代码之间的项目要好于缺陷密度为.75的大型项目,其质量要好一些。在专有代码中观察到相反的现象,较小的项目的缺陷密度为.98,当它们超过阈值时,缺陷密度降低到0.66。
覆盖范围的结论是:
这种差异可以归因于开源和专有开发团队内部动态的不同,以及这些团队实施正式的开发测试流程的关键点。
图表的这一部分总结了报告的发现,对此进行了说明。单击它以查看完整的信息图:
尽管缺陷密度低,但仍然存在严重的缺陷。只有不到10%的缺陷修复了受影响的开源代码-229,219个缺陷中有20,720个被归类为高风险,这意味着如果不加以检测,它们可能对整体软件质量和安全性构成相当大的威胁。最常见的是资源泄漏,内存损坏和非法的内存访问,如果不进行自动代码分析,则很难检测到。
Coverity的首席营销官詹妮弗·约翰逊(Jennifer Johnson)评论:
“今年的报告得出了一个超越所有其他结论的总体结论:开发测试不再是一个好条件,而是必须的。越来越多的接受静态分析的开源和商业项目提高了整个行业的门槛。我们一年又一年地看到,高风险的缺陷继续困扰着组织。简而言之,如果您不进行开发测试,那么您将处于竞争劣势。”
当然,静态分析无法找到所有错误,因此这些估算值是每千行错误的下限。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。