写点什么

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:473027
用户头像

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

关注

评论

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

Photoshop 2023 (PS 2023下载) v24.7中/英文激活版

Rose

Mac密室逃脱游戏推荐:Escape Simulator for mac安装包

你的猪会飞吗

Mac游戏下载 Mac电脑软件

鸿蒙再进化,原生游戏商用化进程加速

最新动态

万字长文浅谈系统稳定性建设

京东科技开发者

知乎AI产品“直答”正式上线!文心一言4.0 Turbo来袭,可为农民提供专业指导!|AI日报

可信AI进展

人工智能

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

BinTools图尔兹

访问控制 数据库管控 CloudQuery OTP令牌 #SQL

【永久激活版】Topaz Mask AI for mac 人工智能AI抠图

Rose

spark运行的基本流程

京东科技开发者

KeilC51基础 利用仿真测试代码的运行时间

万里无云万里天

嵌入式 单片机 8051

KeilC51基础 生成可以下载到单片机的Hex文件

万里无云万里天

嵌入式 单片机 8051

AI时代:中美竞争,未来在孩子手中!

新消费日报

2024年6月文章一览

codists

编程人

为什么单元测试不是持续交付的唯一答案

禅道项目管理

项目管理 DevOps 单元测试 自动化测试 持续交付

硬件加倍,性能翻番!TDengine 线性扩展能力测试全解析

TDengine

数据库 tdengine 时序数据库

KeilC51基础 添加与删除中文时出现问号

万里无云万里天

嵌入式 单片机 8051

Java开发者LLM实战——使用LangChain4j构建本地RAG系统

京东科技开发者

专业HDR渲染软件Topaz Adjust AI下载安装 附topaz adjust ai破解工具

Rose

XMind 2024绿色破解版下载 好用的思维导图软件

Rose

LED透明屏:新时代的视觉革命与技术突破

Dylan

广告 科技 LED display LED显示屏 市场

Redis可视化工具Redis Desktop Manager mac中文直装版下载安装

Rose

深度解读昇腾CANN多流并行技术,提高硬件资源利用率

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号2024年7月PK榜

基于STC89C52+PulseSensor心率传感器检测心率实时显示

DS小龙哥

7月月更

华为云技术专家硬核分享,云原生中间件如何加速业务发展

华为云开发者联盟

云原生 中间件 华为云 华为云开发者联盟 企业号2024年7月PK榜

Parallels Desktop 17(pd虚拟机)+懒人小白win系统直装包

Rose

Paragon NTFS Mac终身激活版(mac读写ntfs磁盘软件)

Rose

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