开源软件比私有软件bug更少?

以火狐、LibreOffice以及Linux为代表的免费开源软件正越来越多地为商业领域及个人计算机所使用,但不同的声音也同时挥之不去:分析人士常常大肆鼓吹开源软件的局限性,尤其是软件自身的质量水平。

“软件与其它商品一样,永远是一分钱一分货,”开源软件的反对者们总是喜欢这样评价。

这类观点往往源于所谓FUD(即恐惧、困惑与质疑),但开发及测试机构Coverity公司刚刚发布的最新报告有助于大家对这一问题做出正确评估。

在上周四刚刚发布的2011年Coverity开源项目质量观察报告中,Coverity公司发现开源项目中每千行代码所存在的平均缺陷数量居然低于其它私有软件。

“随着开源项目在现代软件供应链中的地位日益巩固,开源与私有软件之间的界线将随着时间的推移进一步淡化,”Coverity公司观察项目总监Zack Samocha指出。

寻找缺陷

这一观察项目最早由Coverity与美国国土安全局于2006年共同推出,希望通过公共部门与私营企业的通力合作共同对开源软件质量话题展开深入研究。

在今年的分析报告中,Coverity共对超过3700万行开源软件代码以及3000余万行私有软件代码进行采样,这些代码全部来自Coverity的匿名用户。

为了进行分析,Coverity使用了一套今年刚刚经过升级的专业测试平台,能够从现有软件代码中发现更多更新的缺陷类型。

Linux 2.6 脱颖而出

Coverity的研究结果显示,在私有软件代码库中,每款软件平均由750万行代码构成,而每千行代码中所存在的平均缺陷数量为0.64。

上述结果听起来已经相当令人满意,但在开源软件这边,代码质量却又更胜一筹。具体来说,开源项目平均由83万2千行代码构成,而每千行代码中所存在的平均缺陷数量为0.45。

Coverity公司同时发现,在双方代码库规模相近的项目中,开源软件与私有软件的实际代码质量颇为相近。就以Linux 2.6为例——此项目由将近700万行代码构成——其缺陷密度为0.62(即每千行代码中存在0.62个缺陷),这一结果仍然略好于私有软件代码库的平均成绩。

在为数众多的开源项目之中,Linux 2.6、PHP 5.3以及PostgreSQL 9.1完全可以当作行业标杆,该公司表示,三者的缺陷密度分别为0.62、0.20与0.21。

这并不意味着开源软件已经成为任何业务目标的最佳解决方案。然而当我们决定选择一款新型软件时,希望大家不要再固守传统思维。事实证明,质量不仅不是开源项目的短板,反而成为其竞争优势的一种体现。