NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

Nova for Mac:强大代码编辑器的极致体验

Rose

mac软件下载 Nova代码编辑 Nova Mac破解

010 Editor for Mac(文本和十六进制编辑器)v14.0.1激活版

影影绰绰一往直前

敢闯技术无人区,TCL实业即将亮相AWE 2024

Geek_2d6073

虚拟人物直播源码实时互动!

青否数字人

数字人

App Cleaner & Uninstaller:Mac软件卸载神器,彻底清理无残留

Rose

mac系统清理优化软件 App Cleaner Mac卸载软件 苹果电脑软件下载

PopChar 10 mac直装版 特殊字符表情一键快速输入

Rose

特殊字符 Mac软件 PopChar 10新功能 PopChar 10下载 表情包

Alfred 5 for Mac(苹果效率提升工具)v5.5 (2255)免激活版

影影绰绰一往直前

Calendar 366 II for Mac(日历管理软件)v2.15.3中文激活版

影影绰绰一往直前

Red Giant VFX Suite Mac(AE红巨人特效合成插件)v2024.1.1激活版

影影绰绰一往直前

架构实战营-模块一作业

满心

架构实战营

Java 日期和时间 API:实用技巧与示例 - 轻松处理日期和时间

小万哥

Java 程序人生 编程语言 软件工程 后端开发

104 Connection reset by peer

麦兜

智能部署之巅:Amazon SageMaker 引领机器学习革新

亚马逊云科技 (Amazon Web Services)

DxO PhotoLab 7:影像之美,源于细节之魅,专业摄影后期处理的首选

Rose

摄影 图片编辑 摄影后期处理软件

AI板块的io.net 为什么值得关注?

币离海

AI IO.NET

微信小程序能代替原生App么?

天津汇柏科技有限公司

小程序 App

Cocktail for Mac(系统清理)v17.1.1注册激活版

影影绰绰一往直前

AI制作PPT工具有哪些?10款AI生成PPT软件盘点推荐!

彭宏豪95

职场 PPT PPT模板 办公软件 AIGC

好用工具清单——ver1.1

充实的orzi

工具 实用工具

基于亚马逊云科技新功能:Amazon SageMaker Canvas 无代码机器学习—以构建货物的交付状态检测模型实战为例深度剖析以突显其特性

亚马逊云科技 (Amazon Web Services)

鸿蒙ArkUi中List样式

贺公子之数据科学与艺术

非常专业的3D样机宣传视频制作工具Rotato for mac

Rose

Mac 3D样机 Rotato下载 样机宣传 软件下载

自定义对象池实践

FunTester

技术管理者如何避免被裁掉(3)

芃篙君

管理

阿里巴巴中国站1688商品详情API:获取数据的关键步骤与技巧

技术冰糖葫芦

API 接口

Soulver 3 for Mac:让数字处理变得简单直观的智能计算器

Rose

计算器 智能计算 Mac软件 Soulver 3

EagleFiler for Mac(Mac数字信息管理器)v1.9.13注册版

影影绰绰一往直前

为什么苹果用户都在使用Dynamic Wallpaper动态壁纸软件?

Rose

动态壁纸 Dynamic Wallpaper下载 苹果壁纸下载 Dynamic Wallpaper中文版 壁纸app

科技向善,真的吗?

算法的秘密

Frappe下解决Socket.io 的问题

麦兜

无需魔法,快速体验 Claude 3 ,GPT 4 在他面前就是弟弟

朱亚光

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