写点什么

Coverity:开源代码比商业代码缺陷少

  • 2012-03-12
  • 本文字数:911 字

    阅读完需:约 3 分钟

Coverity 的一项调查发现,在代码量相当的情况下,使用了 static analysis 的开源代码通常比商业私有代码的缺陷少。

Coverity Scan 是一个关注开源代码完整性的公私合营的研究项目,于 2006 年由美国国土安全部(U.S. Department of Homeland Security)发起并与斯坦福(Stanford)大学合办。在过去的五年中,Coverity Scan 采用 Coverity 公司的 static analysis 工具评估和改进了 300 多个开源项目的代码质量。比如在 2006 年,此工具就帮助开源代码修复了 6000 多个 Bug。

近期发布的 2011 Scan 报告(PDF)显示,开源项目的缺陷通常比商业私有项目少。该报告分析了 2011 年期间最活跃的前 45 个开源项目的代码,总共 37,000,000 多行代码,并且只有影响级别为中或高的缺陷参与采样分析。调研数据不涉及 QA 测试或后续发布过程中发现的缺陷。参与 Coverity Scan 计划的所有项目的代码都经过 Coverity Static Analysis 的测试和分析。

参与分析的开源项目的代码行数大部分在 100k-500k 行之间,只有 2 个项目超过了 7M 行,总代码量为 37,446,469 行,平均每个项目约 832,000 行。开源项目的缺陷率为每千行代码 0.45 个缺陷,而对于那些没有采用自动测试工具比如 static analysis 的公司,行业平均值大约是每千行代码 1 个缺陷。

Coverity Scan 覆盖了 14 种缺陷,开源代码中位列前五的缺陷是:

缺陷 数量 影响 控制流问题

3,128

空指针异常

2,818

未初始化的变量

2,051

内存越界

1,551

错误处理方面的问题

1,535

调查同时覆盖了 41 个使用了 static analysis 的商业私有项目。这些项目规模各异,也来自不同领域,总共超过 300M 行代码,平均每个项目代码量约有 7.4M 行。结果显示,在项目规模相当的情况下,开源代码的质量与私有的持平。例如,Linux 2.6 代码大约有 7M 行,缺陷密度为 0.62,私有代码则大约为 0.64。通常 Linux 的缺陷密度比较低,但其代码量在 2011 年从 5.3M 增至 6.8M。作为参考,PHP 5.3 和 PostgreSQL 9.1 的缺陷密度值则为每千行代码 0.2 和 0.21 个缺陷。

综合上述,此次调查清晰地表明,采用自动测试,包括 static analysis,能够很好地减少代码缺陷的数量。

查看英文原文: Coverity: Open Source Code Has Fewer Defects than Commercial One

2012-03-12 06:472656
用户头像

发布了 114 篇内容, 共 32.9 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

从开源小白到新晋 committer:主动尝试,心无旁骛,收获满满!

Apache IoTDB

我的上班搭子之有小浣熊的一天-日常统计分析工作应用

老壳有点爽

人工智能 AI 商汤 办公小浣熊 商汤科技

超级实用 Python GUI 入门

我再BUG界嘎嘎乱杀

Python 开发语言 GUI

SkyEye对接CANoe:助力汽车软件功能验证

DevOps和数字孪生

汽车行业 CANoe

低代码开发技术助力企业数字化管理的实践探究

不在线第一只蜗牛

管理 低代码 数字化

玩转 AI 服务:成为海量视频的超级管理员!

爱AI的猫猫头

SD-WAN的具体适用场景有哪些

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

智汇宁夏,共创未来!天翼云携手宁夏共建“中国算力之都”!

天翼云开发者社区

云计算 开发者大会 生态大会

多模态合规分析平台,保障AIGC营销新时代对客服务高质合规

中关村科金

TiDB 资源管控的对撞测试以及最佳实践架构

PingCAP

最佳实践 #TiDB TiDB Operator 资源管控 组织架构最佳实践

吃个瓜而已,AI居然写了份研究报告??

Openlab_cosmoplat

人工智能 ChatGPT

低代码开发的终局:数字化应用创新智能平台

EquatorCoco

低代码 数字化

一文了解Spring Boot启动类SpringApplication

不在线第一只蜗牛

spring Spring Boot

低代码开发平台发展现状及标准化研究

快乐非自愿限量之名

低代码

“东数西算”长三角(苏州)算力调度中心正式启用!

天翼云开发者社区

人工智能 云计算 算力 调度中心

雨҈ 雨҈ 雨҈ 雨҈ 雨҈ 雨҈

天翼云开发者社区

人工智能 云计算 论坛

项目管理系统哪个好?2024最新解析

易成管理学

项目管理 项目管理软件 Tapd

LeetCode题解:205. 同构字符串,哈希表,JavaScript,详细注释

Lee Chen

开发体育直播平台创业前景:策略性参考与指导

软件开发-梦幻运营部

手把手带你使用JWT实现单点登录

快乐非自愿限量之名

Spring Boot JWT 单点登录

2024 MWC上海,“翼”彩纷呈!

天翼云开发者社区

人工智能 云计算 世界移动通信大会

Coverity:开源代码比商业代码缺陷少_软件工程_Abel Avram_InfoQ精选文章