Coverity掃描報告開源軟件質(zhì)量領先
Coverity公司發(fā)布了2013年Coverity掃描開源軟件報告。經(jīng)過Coverity掃描服務以及按照Coverity開發(fā)測試平臺的商業(yè)慣例,該報告中詳細分析了對于7.5億行開源軟件代碼的分析,這是至今已知報道的最大的樣本量的研究。
在2013年Coverity掃描報告中,他們分析了超過700個C/C++開源項目和一個匿名的企業(yè)項目的樣本。另外,報告中還重點突出了一些流行的開源Java項目的分析結果,這些項目從2013年3月接受了掃描服務。
Coverity掃描開源項目報告成為了一個被廣泛接受的衡量開放源代碼質(zhì)量狀態(tài)的標準。在過去8年時間里,Coverity掃描服務分析了超過1500個開源項目的數(shù)億行代碼——其中包括的C/C++項目中有NetBSD、FreeBSD、LibreOffice和Linux等,Java項目中有Apache Hadoop,HBase以及Cassandra等。
掃描服務自2006年來,已幫助開發(fā)者發(fā)現(xiàn)和修復了超過94000缺陷。僅在2013年一年就修復了近50000個缺陷——這是掃描服務的用戶在一年中修復缺陷的最大數(shù)量。在這些缺陷中,有超過11,000的缺陷修復出現(xiàn)在掃描服務中的四個最大的項目:NetBSD、FreeBSD、LibreOffice和Linux。
2013年報告中重要發(fā)現(xiàn),包括:
C/C++項目中開源軟件代碼質(zhì)量超過專有軟件。缺陷密度(每1,000行軟件代碼所含的缺陷)是一個通用的測量軟件質(zhì)量的方法,缺陷密度1.0被認為是高質(zhì)量軟件的公認的行業(yè)標準。
Coverity的分析中發(fā)現(xiàn),掃描服務中的開源的C/ C++項目的平均缺陷密度為 0.59,而為企業(yè)項目開發(fā)的專有C/C++代碼的缺陷密度為 0.72。在2013年,在所有不同大小的代碼庫中,掃描服務中的開源項目的代碼質(zhì)量超過專有項目,這進一步強調(diào)了開源社區(qū)開發(fā)測試的堅定承諾。
Linux繼續(xù)成為開源質(zhì)量的基準。通過利用掃描服務,Linux將修復一個新發(fā)現(xiàn)的缺陷的時間從122天減少到僅6天。從2008年第一個Coverity掃描報告發(fā)布后,掃描過的Linux版本的缺陷密度一直小于1.0。在2013年,Coverity掃描了超過850萬行Linux代碼并發(fā)現(xiàn)缺陷密度為 0.61。
C/C++開發(fā)者修復了更多的高風險缺陷。Coverity分析報告發(fā)現(xiàn)貢獻于開源Java項目的開發(fā)者修復的高風險缺陷的數(shù)量沒有貢獻于開源C/C++項目的開發(fā)者修復的多。
參加掃描服務的Java項目開發(fā)者只修復了13%的被指出的資源泄露,而C/C++項目開發(fā)者則修復了46%。這一方面可能是因為Java編程社區(qū)錯誤的安全感的原因,這種安全感是由于語言的保護,比如垃圾收集。然而,垃圾收集是不可預測的,而且不能訪問系統(tǒng)資源,所以這些項目處于危險之中。
HBase是Java項目的基準。Coverity分析了100個開源Java項目的超過800萬行代碼,包括流行的大數(shù)據(jù)項目Apache Hadoop 2.3 (320,000 行代碼)和Apache Cassandra (345,000 行代碼)。
自從在2013年8月加入掃描服務以來,Apache HBase (Hadoop的數(shù)據(jù)庫)修復了超過220個缺陷,其中包括比其他參加掃描服務Java項目更高比例的資源泄露(HBase的缺陷中資源泄露占的比例為66%,而其他項目平均為13%)。
“如果說軟件正在吞食世界,那么開源軟件則是帶頭沖鋒,”Coverity的產(chǎn)品高級總監(jiān)Zack Samocha說,“我們的目標,包括Coverity掃描服務在內(nèi)是幫助開源軟件社區(qū)創(chuàng)作高質(zhì)量的軟件。基于這個報告的結果——以及這個日益流行的服務——使用開發(fā)測試的開源軟件項目繼續(xù)提升他們軟件的質(zhì)量,這使得整個行業(yè)更上一層樓?!?/p>
Coverity也宣布已經(jīng)開放了Coverity掃描服務,允許任何對開源軟件感興趣的人查看參與項目的進展。個人現(xiàn)在可以成為項目觀察者,這使得他們可以跟蹤掃描服務中相關開源軟件的狀態(tài),查看高級數(shù)據(jù)包括未解決和已修復的缺陷的數(shù)目以及缺陷密度。
(來源:http://www.ciol.com 編譯:紀元)