來自美國山景城(加州)的訊息:Coverity公司(新思科技公司的一個子公司)釋出了2013年Coverity掃描開源軟體報告。經過Coverity掃描服務以及按照Coverity開發測試平臺的商業慣例,報告中詳細分析了關於7.5億行開源軟體程式碼的分析,這是至今報告研究的最大的樣本量。

141623kgjsgeng6rch7hxf.jpg

Coverity開啟了免費開發測試服務,允許任何對開源軟體質量感興趣的人檢視專案

在2013年Coverity掃描報告中,他們分析了超過700個C/C++開源專案和一個匿名的企業專案的樣本。另外,報告中還強調了幾個流行的開源Java專案的分析結果,這些專案從2013年3月就加入了掃描服務。

Coverity掃描開源專案報告成為了一個被廣泛接受的衡量開放原始碼質量狀態的標準。在過去8年時間裡,Coverity掃描服務分析了超過1500個開源專案的數億行程式碼——其中包括的C/C++專案中有NetBSD, FreeBSD,LibreOffice和Linux等,Java專案中有Apache Hadoop,HBase以及Cassandra等。

自2006年已來,掃描服務幫助開發者發現和修復了超過94,000缺陷。僅在2013年一年就修復了近50,000個缺陷——這是掃描服務的使用者在一年中修復缺陷的最大數量。在這些缺陷中,其中有超過11,000的缺陷修復出現在掃描服務中的四個最大的專案:NetBSD,FreeBSD,LibreOffice和Linux。

2013年報告中重要發現包括:C/C++專案中開源軟體程式碼質量超過專有軟體

缺陷密度(每1,000行軟體程式碼所含的缺陷)是一個通用的測量軟體質量的方法,缺陷密度1.0被認為是高質量軟體的公認的行業標準。

Coverity的分析中發現,掃描服務中的開源的C/C++專案的平均缺陷密度為 0.59,而為企業專案開發的專有C/C++程式碼的缺陷密度為 0.72。在2013年,在所有不同大小的程式碼庫中,掃描服務中的開源專案的程式碼質量超過專有專案,這進一步強調了開源社群開發測試的堅定的承諾。

Linux繼續成為開源質量的基準

通過利用掃描服務,Linux將修復一個新發現的缺陷的時間從122天減少到僅6天!從2008年第一個Coverity掃描報告發布後,掃描過的Linux版本的缺陷密度一直小於1.0。在2013年,Coverity掃描了超過850萬行Linux程式碼並發現缺陷密度為 0.61。

C/C++開發者修復了更多的高風險缺陷

Coverity分析報告發現貢獻於開源Java專案的開發者修復的高風險缺陷的數量沒有貢獻於開源C/C++專案的開發者修復的多。

參加掃描服務的Java專案開發者只修復了13%的被指出的資源洩露,而C/C++專案開發者則修復了46%。這一方面可能是因為Java程式設計社群錯誤的安全感的原因,這種安全感是因為內建於語言的保護,比如垃圾收集。然而,垃圾收集是不可預測的,而且不能訪問系統資源,所以這些專案處於危險之中。

HBase是Java專案的基準

Coverity分析了100個開源Java專案的超過800萬行程式碼,包括流行的大資料專案Apache Hadoop 2.3 (320,000 行程式碼)和Apache Cassandra (345,000 行程式碼)。

自從在2013年8月加入掃描服務以來,Apache HBase (Hadoop的資料庫)修復了超過220個缺陷,其中包括比其他參加掃描服務Java專案更高比例的資源洩露(HBase的缺陷中資源洩露佔的比例為66%,而其他專案平均為13%)。

“如果說軟體正在吞食世界,那麼開源軟體則是帶頭衝鋒,”Coverity的產品高階總監Zack Samocha說,“我們的目標,包括Coverity掃描服務在內是幫助開源軟體社群創作高質量的軟體。基於這個報告的結果——以及這個日益流行的服務——使用開發測試的開源軟體專案繼續提升他們軟體的質量,這讓他們使整個行業更上一層樓。”

Coverity今天也宣佈已經開放了Coverity掃描服務,允許任何對開源軟體感興趣的人檢視參與專案的進展。個人現在可以成為專案觀察者,這使他們可以跟蹤掃描服務中相關開源軟體的狀態,檢視高階資料包括未解決和已修復的缺陷的數目以及缺陷密度。

“我們看到了請求掃描服務的人數的指數增長,他們僅僅是要監控被發現和被修復的缺陷。在許多情況下,這些人工作於大型的企業組織,那些企業組織在商業專案中使用開源軟體,”Samocha補充說。“通過對個人開放掃描服務,我們提升了檢視開源專案程式碼質量的新的可見度,他們的軟體供應鏈中正包含這些專案。”

自Linuxcn