大多數(shù)開發(fā)者對代碼審查的概念并不陌生,其他開發(fā)者或小組成員檢查你編寫的源代碼是最常見的方式。代碼審查(Code Review)是軟件開發(fā)過程的一個階段,在這個階段中,代碼創(chuàng)造者和審查人員,可能還有質(zhì)量保證(QA)測試人員,一起進(jìn)行代碼審查。審查的內(nèi)容包括代 碼規(guī)范性檢查、代碼質(zhì)量評估和對重點(diǎn)代碼進(jìn)行代碼實(shí)現(xiàn)的評審三部分。代碼規(guī)范性檢查是較簡單的部分,可以通過工具來實(shí)現(xiàn),不需要召開專門的審查會議進(jìn)行審 查。最近Google發(fā)布了一個代碼審查工具——Rietveld,當(dāng)然還有其他的一些工具。下面主要介紹幾個。
1.Rietveld
Rietveld的主要開發(fā)者是Python語言的Guido van Rossum。該工具由Python語言編寫,托管在Google的云計算架構(gòu)AppEngine上。任何一個谷歌帳戶可以參與:登錄后,您可以識別出 Subversion倉庫和分支需要加以審查的代碼,上傳修改源代碼文件,并邀請?jiān)u審員。評審員可以在線留言,系統(tǒng)使用郵件通知來維持談?wù)摰倪M(jìn)行。
目前Rietveld并未獲得很多認(rèn)可,盡管它已在多個Python項(xiàng)目中使用。如果你的主要興趣是發(fā)現(xiàn)最好的工具進(jìn)行代碼審查,那么在決定使用 Rietveld之前,至少還有3個基于Web的開放源代碼工具審查工具供你選擇。
2. Review Board
Review Board起源于VMware的一些開發(fā)者。它基于Django,你可以把它安裝在自己的服務(wù)器上,工作流和Rietveld極為類似。令人高興的是它提 供了在diffs里進(jìn)行語法彩色編碼,使得代碼閱讀變得簡便。此外,它還實(shí)現(xiàn)了基于Lucene的搜索來幫助管理較大的diffs組。
3.CodeStriker
CodeStriker是基于Perl語言的工具,和其他工具一樣,需要安裝在你自己的服務(wù)器上。它支持廣泛的多種類型,包括CVS, Subversion, Clearcase, Perforce, Visual SourceSafe and Bugzilla等內(nèi)置式融合。
4.JCR
JCR代表Java代碼審查器,是另一個基于Python的工具。與其他工具不同的是,它不直接與源代碼管理系統(tǒng)融合,而是被設(shè)計成整個可用文 件。JCR加強(qiáng)了更多正式的進(jìn)程,比如跟蹤進(jìn)程和審查會議功能。
對于大規(guī)模、正式的開發(fā)組織,我首先會選擇JCR?;赪eb和開放源碼的項(xiàng)目可以使用ReviewBoard或Codetriker會比較好 些。Rietveld值得關(guān)注,根據(jù)Google的搜索結(jié)果顯示,現(xiàn)在它已幫助許多開發(fā)者認(rèn)真思考代碼審查,但它不得不努力增強(qiáng)、完善自己的功能來追趕上 已有的一些工具。
5.Fortify SCA
Fortify SCA 是一個靜態(tài)的、白盒的軟件源代碼安全測試工具。它通過內(nèi)置的五大主要分析引擎:數(shù)據(jù)流、語義、結(jié)構(gòu)、控制流、配置流等對應(yīng)用軟件的源代碼進(jìn)行靜態(tài)的分析, 分析的過程中與它特有的軟件安全漏洞規(guī)則集進(jìn)行全面地匹配、查找,從而將源代碼中存在的安全漏洞掃描出來,并給予整理報告。掃描的結(jié)果中不但包括詳細(xì)的安 全漏洞的信息,還會有相關(guān)的安全知識的說明,以及修復(fù)意見的提供。
6. ounce
Rational AppScan Source ( ounce )白盒代碼掃描工具支持多種語言,包括 Java、JSP、C、C++、C#、VB.NET、ASP.NET、Classic ASP、VB6 等,還有即將支持的 PHP。這款產(chǎn)品的性能非常不錯,使用 C/C++ 語言構(gòu)建了內(nèi)存管理模塊,使用基于 Eclipse 的前端展現(xiàn)構(gòu)建其主要界面,在設(shè)計之初就兼顧了掃描性能和易用性,同時結(jié)合擁有專利的核心掃描引擎,可以達(dá)到每小時掃描百萬行代碼的速度。
Rational AppScan Source 產(chǎn)品包含了一系列功能模塊,用來全方位的管理從應(yīng)用代碼診斷分析、漏洞展現(xiàn)到漏洞修復(fù)的整個過程。
聯(lián)系客服