成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

為什么開源代碼比商業(yè)代碼缺陷少?

2012-03-13 10:22:23來源:InfoQ作者:

Coverity的一項調(diào)查發(fā)現(xiàn),在代碼量相當?shù)那闆r下,使用了static analysis的開源代碼通常比商業(yè)私有代碼的缺陷少。

Coverity的一項調(diào)查發(fā)現(xiàn),在代碼量相當?shù)那闆r下,使用了static analysis的開源代碼通常比商業(yè)私有代碼的缺陷少。

Coverity Scan是一個關注開源代碼完整性的公私合營的研究項目,于2006年由美國國土安全部(U.S. Department of Homeland Security)發(fā)起并與斯坦福(Stanford)大學合辦。在過去的五年中,Coverity Scan采用Coverity公司的static analysis工具評估和改進了300多個開源項目的代碼質(zhì)量。比如在2006年,此工具就幫助開源代碼修復了6000多個Bug。

近期發(fā)布的2011 Scan報告(PDF)顯示,開源項目的缺陷通常比商業(yè)私有項目少。該報告分析了2011年期間最活躍的前45個開源項目的代碼,總共37,000,000多行代碼,并且只有影響級別為中或高的缺陷參與采樣分析。調(diào)研數(shù)據(jù)不涉及QA測試或后續(xù)發(fā)布過程中發(fā)現(xiàn)的缺陷。參與Coverity Scan計劃的所有項目的代碼都經(jīng)過Coverity Static Analysis的測試和分析。

參與分析的開源項目的代碼行數(shù)大部分在100k-500k行之間,只有2個項目超過了7M行,總代碼量為37,446,469行,平均每個項目約832,000行。開源項目的缺陷率為每千行代碼0.45個缺陷,而對于那些沒有采用自動測試工具比如static analysis的公司,行業(yè)平均值大約是每千行代碼1個缺陷。

Coverity Scan覆蓋了14種缺陷,開源代碼中位列前五的缺陷是:

缺陷 數(shù)量 影響

控制流問題

3,128

空指針異常

2,818

未初始化的變量

2,051

內(nèi)存越界

1,551

錯誤處理方面的問題

1,535

調(diào)查同時覆蓋了41個使用了static analysis的商業(yè)私有項目。這些項目規(guī)模各異,也來自不同領域,總共超過300M行代碼,平均每個項目代碼量約有7.4M行。結(jié)果顯示,在項目規(guī)模相當?shù)那闆r下,開源代碼的質(zhì)量與私有的持平。例如,Linux 2.6代碼大約有7M行,缺陷密度為0.62,私有代碼則大約為0.64。通常Linux的缺陷密度比較低,但其代碼量在2011年從5.3M增至6.8M。作為參考,PHP 5.3和PostgreSQL 9.1的缺陷密度值則為每千行代碼0.2和0.21個缺陷。

綜合上述,此次調(diào)查清晰地表明,采用自動測試,包括static analysis,能夠很好地減少代碼缺陷的數(shù)量。

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

贊助商鏈接:

主站蜘蛛池模板: 清涧县| 长治市| 资源县| 托克逊县| 喀喇| 高邮市| 崇左市| 枞阳县| 怀仁县| 黑龙江省| 惠州市| 浦城县| 中宁县| 陆河县| 静宁县| 土默特左旗| 望城县| 潞西市| 农安县| 陆良县| 红原县| 海口市| 安宁市| 成都市| 台州市| 惠安县| 永济市| 寻甸| 仁怀市| 来安县| 象州县| 望奎县| 高邮市| 文水县| 丰顺县| 梁平县| 合作市| 江孜县| 富平县| 曲靖市| 平舆县|