Coverity扫描报告开源软件质量领先
Coverity公司发布了2013年Coverity扫描开源软件报告。经过Coverity扫描服务以及按照Coverity开发测试平台的商业惯例,该报告中详细分析了对于7.5亿行开源软件代码的分析,这是至今已知报道的最大的样本量的研究。
在2013年Coverity扫描报告中,他们分析了超过700个C/C++开源项目和一个匿名的企业项目的样本。另外,报告中还重点突出了一些流行的开源Java项目的分析结果,这些项目从2013年3月接受了扫描服务。
Coverity扫描开源项目报告成为了一个被广泛接受的衡量开放源代码质量状态的标准。在过去8年时间里,Coverity扫描服务分析了超过1500个开源项目的数亿行代码——其中包括的C/C++项目中有NetBSD、FreeBSD、LibreOffice和Linux等,Java项目中有Apache Hadoop,HBase以及Cassandra等。
扫描服务自2006年来,已帮助开发者发现和修复了超过94000缺陷。仅在2013年一年就修复了近50000个缺陷——这是扫描服务的用户在一年中修复缺陷的最大数量。在这些缺陷中,有超过11,000的缺陷修复出现在扫描服务中的四个最大的项目:NetBSD、FreeBSD、LibreOffice和Linux。
2013年报告中重要发现,包括:
C/C++项目中开源软件代码质量超过专有软件。缺陷密度(每1,000行软件代码所含的缺陷)是一个通用的测量软件质量的方法,缺陷密度1.0被认为是高质量软件的公认的行业标准。
Coverity的分析中发现,扫描服务中的开源的C/ C++项目的平均缺陷密度为 0.59,而为企业项目开发的专有C/C++代码的缺陷密度为 0.72。在2013年,在所有不同大小的代码库中,扫描服务中的开源项目的代码质量超过专有项目,这进一步强调了开源社区开发测试的坚定承诺。
Linux继续成为开源质量的基准。通过利用扫描服务,Linux将修复一个新发现的缺陷的时间从122天减少到仅6天。从2008年第一个Coverity扫描报告发布后,扫描过的Linux版本的缺陷密度一直小于1.0。在2013年,Coverity扫描了超过850万行Linux代码并发现缺陷密度为 0.61。
C/C++开发者修复了更多的高风险缺陷。Coverity分析报告发现贡献于开源Java项目的开发者修复的高风险缺陷的数量没有贡献于开源C/C++项目的开发者修复的多。
参加扫描服务的Java项目开发者只修复了13%的被指出的资源泄露,而C/C++项目开发者则修复了46%。这一方面可能是因为Java编程社区错误的安全感的原因,这种安全感是由于语言的保护,比如垃圾收集。然而,垃圾收集是不可预测的,而且不能访问系统资源,所以这些项目处于危险之中。
HBase是Java项目的基准。Coverity分析了100个开源Java项目的超过800万行代码,包括流行的大数据项目Apache Hadoop 2.3 (320,000 行代码)和Apache Cassandra (345,000 行代码)。
自从在2013年8月加入扫描服务以来,Apache HBase (Hadoop的数据库)修复了超过220个缺陷,其中包括比其他参加扫描服务Java项目更高比例的资源泄露(HBase的缺陷中资源泄露占的比例为66%,而其他项目平均为13%)。
“如果说软件正在吞食世界,那么开源软件则是带头冲锋,”Coverity的产品高级总监Zack Samocha说,“我们的目标,包括Coverity扫描服务在内是帮助开源软件社区创作高质量的软件。基于这个报告的结果——以及这个日益流行的服务——使用开发测试的开源软件项目继续提升他们软件的质量,这使得整个行业更上一层楼。”
Coverity也宣布已经开放了Coverity扫描服务,允许任何对开源软件感兴趣的人查看参与项目的进展。个人现在可以成为项目观察者,这使得他们可以跟踪扫描服务中相关开源软件的状态,查看高级数据包括未解决和已修复的缺陷的数目以及缺陷密度。
(来源:http://www.ciol.com 编译:纪元)