AIGC 应用、数据分析等企业 10+ 热门专题课,就在极客时间企业版>>> 了解详情
写点什么

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

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

    阅读完需:约 3 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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

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

关注

评论

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

2021年常见面试真题汇总,含了14个技术栈,已助我成功拿到腾讯offer!

Java 架构 架构师 java面试

毕业设计项目

燕燕 yen yen

架构是训练营

如何评估一个软件的项目费用?

石云升

项目管理 管理 引航计划 内容合集 10月月更

后端的另一种打开方式-路由还能这么玩~

Bob

微服务 后端 网络 服务 引航计划

模块六作业

Geek_fc100d

「架构实战营」

这份笔记太牛了!手把手教你从零开始搭建Spring Cloud Alibaba!

Java 架构 面试 程序人生 编程语言

太牛了!同事凭借这份Java面试题1000道手册(pdf)入职了阿里,定级P7

Java spring 程序员 架构 编程语言

(实战篇)漫游语音识别技术—带你走进语音识别技术的世界

攻城先森

深度学习 音视频 nlp 语音识别

引航计划|AI|优质合集手把手带你玩转AI

Nydia

AI 引航计划

12道Zookeeper高频面试题,你顶得住吗?

Java 架构 面试 分布式 后端

(深入篇)漫游语音识别技术—带你走进语音识别技术的世界

攻城先森

深度学习 音视频 nlp 语音识别

微博评论系统架构设计

guangbao

【LeetCode】字符串中的单词数Java题解

Albert

算法 LeetCode 10月月更

(mode4)千万级学生管理系统考试试卷存储方案

消失的子弹

架构 云原生

模块五作业

Geek_fc100d

「架构实战营」

面试进阶必备:“阿里爸爸”高并发秒杀架构设计笔记(全彩版)

Java 架构 面试 程序人生 编程语言

Spark 系列教程(2)运行模式介绍

Se7en

华为大佬的“百万级”MySQL笔记,基础+优化+架构一键搞定

Java 架构 面试 程序人生 编程语言

Zabbix VS Prometheus :哪个更适合你

耳东@Erdong

后端 Prometheus zabbix 引航计划 10月月更

Apache ShenYu源码阅读系列-基于ZooKeeper的数据同步

子夜2104

Java 网关 shenyu

不愧是阿里P8架构师总结的Java面试笔记,上线仅七天,Github标星55K

Java 程序员 架构 面试 后端

40K成功入职:六年开发终获小米Offer(附面经+面试题+答案详解)

Java spring 程序员

安全逆向分析实战

网络安全学海

Linux 网络安全 信息安全 WEB安全 漏洞分析

让我薪资提升了个新高度!这份阿里核心教程:理解JVM垃圾回收器手册帮了我大忙!

Java 架构 面试 程序人生 编程语言

靠这份GitHub star过万的1121页图解算法成功杀进字节跳动

Java 架构 面试 程序人生 编程语言

架构实战营 毕业总结和毕业设计项目

李东旭

「架构实战营」

架构1期模块九作业

五只羊

架构实战营

私有云部署系列之动态IP获取(程序编写)

稻草鸟人

《Go 开发指南》-管理 Go 环境

看山

Effective-go 10月月更

这份阿里P8撰写的面试笔记就是逊了!才帮助十几个人圆了大厂梦

Java 架构 面试 程序人生 编程语言

金九银十一线大厂Java面试题大全(整理版)1000+面试题附答案详解,最全面详细!

Java 程序员 架构 面试 后端

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