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

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

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

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

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

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

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

參與分析的開源項(xiàng)目的代碼行數(shù)大部分在100k-500k行之間,只有2個項(xiàng)目超過了7M行,總代碼量為37,446,469行,平均每個項(xiàng)目約832,000行。開源項(xiàng)目的缺陷率為每千行代碼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è)私有項(xiàng)目。這些項(xiàng)目規(guī)模各異,也來自不同領(lǐng)域,總共超過300M行代碼,平均每個項(xiàng)目代碼量約有7.4M行。結(jié)果顯示,在項(xiàng)目規(guī)模相當(dāng)?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

關(guān)鍵詞:開源代碼開發(fā)

贊助商鏈接:

主站蜘蛛池模板: 都兰县| 通辽市| 阳高县| 平塘县| 齐齐哈尔市| 肇东市| 峡江县| 新巴尔虎左旗| 义乌市| 广汉市| 阿尔山市| 饶平县| 武乡县| 永济市| 双牌县| 南和县| 临颍县| 城固县| 通河县| 郯城县| 阿瓦提县| 宾川县| 尼勒克县| 卢龙县| 杂多县| 奉化市| 益阳市| 嘉峪关市| 阿图什市| 安乡县| 绥德县| 东乡族自治县| 北海市| 武威市| 洛川县| 吉木乃县| 德钦县| 凤翔县| 贺兰县| 溆浦县| 湄潭县|