fbpx
维基百科

代码审查

代碼審查是指對電腦源代码系統化地审查,常用軟體同行評審英语Software peer review的方式進行,其目的是在找出及修正在軟體開發初期未發現的錯誤,提升软件质量及開發者的技術。代碼審查常以不同的形式進行,例如结对编程、非正式的看過整個程式碼,或是正式的軟件檢查[1]

簡介

藉由代碼審查可以找到及移除像是格式化字串攻擊英语Format string attacks競爭危害内存泄漏缓存溢出计算机安全隐患,因此提昇代碼的安全性。基於Subversion(可能是Trac或是Redmine)、MercurialGit或其他軟體的線上軟體庫可以允許協同審查代碼,而且有些協同代碼審查工具可以簡化代碼審查的過程。

自動化代碼審查軟體英语code reviewing software可以系統化的檢查源代碼中是否有已知的计算机安全隐患,可以減少大量代碼審查的工作。

卡珀斯·瓊斯(Capers Jones)分析了超過12,000個軟件開發項目,其中使用正式代碼審查的項目,潛在缺陷發現率約在60-65%之間,若是非正式的代碼審查,潛在缺陷發現率不到50%。大部份的測試,潛在缺陷發現率會在30%左右。[2]

一般的代碼審查速度約是一小時150行程式碼,對於一些關鍵的軟體(例如安全关键系統的嵌入式軟體),一小時審查數百行程式碼的審查速度太快,可能無法找到程式中的問題[3][4]。代碼審查一般可以找到及移除約65%的錯誤,最高可以到85%[5]

也有研究針對代碼審查找到的缺陷類型進行分析。代碼審查找到的缺陷中,有75%是和计算机安全隐患有關。對於產品生命週期很長的軟體公司而言,代碼審查是很有效的工具[6] [7]

分類

代码审查一般會分為三類:正式的代码审查、結對程式設計、以及輕量型的非正式代码审查[1]

正式的代码审查(例如范根检查法)有審慎及仔細的流程,由多位參與者分階段進行。正式的代码审查是傳統审查代码的方式,由軟體開發者參加一連串的會議,一行一行的审查程式碼,一般會使用列印好的源代碼。正式的代码审查可以徹底的找到程式中的缺陷,但需要投入許多的資源。

結對程式設計是兩個程式設計師在一個電腦上共同工作,一個輸入程式,另一個工程師审查他或她所輸入的程式,結對程式設計是在極限編程中常見的開發方式。

輕量型的非正式代码审查需要投入的資源比正式的代码审查要少,一般會是在正常軟體開發流程中同時進行,有時也會將結對程式設計視為輕量型代码审查的一種。

  • Email往返:在代碼登入後,源代碼管理系統自動將代碼郵寄給审查者。
  • 配合輔助工具的代码审查:作者及审查者利用配合代码审查的軟體進行审查。

書籍Best Kept Secrets of Peer Code Review中曾提到有關代码审查的案例研究,這個研究發現輕量型代码审查所找到的缺陷會比正式的代码审查要少,但其速度較快,其成本也較低。

評論

以往正式的代碼審查在審查的準備及進行時都需要投入許多的資源。

代碼分析工具的使用可以協助代碼審查。尤其是一些整合在整合開發環境(IDE)下的工具,可以直接提供程式開發者有關編程標準相容的回饋。

相關條目

參考資料

  1. ^ 1.0 1.1 Kolawa, Adam; Huizinga, Dorota. Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. 2007: 260/426 [2012-04-08]. ISBN 0-470-04212-5. (原始内容于2012-04-25). 
  2. ^ Jones, Capers; Christof, Ebert. Embedded Software: Facts, Figures, and Future. IEEE Computer Society. April 2009 [2010-10-05]. 
  3. ^ Ganssle, Jack. A Guide to Code Inspections (PDF). The Ganssle Group. February 2010 [2010-10-05]. (原始内容 (PDF)于2018-12-15). 
  4. ^ Kemerer, C.F.; Paulk, M.C. The Impact of Design and Code Reviews on Software Quality: An Empirical Study Based on PSP Data. IEEE Transactions on Software Engineering. July-Aug. 2009 [2012-03-21]. 
  5. ^ Jones, Capers. . Crosstalk, The Journal of Defense Software Engineering. June 2008 [2010-10-05]. (原始内容存档于2010-01-11). 
  6. ^ Mantyla, M.V.; Lassenius, C. What Types of Defects Are Really Discovered in Code Reviews? (PDF). IEEE Transactions on Software Engineering. May–June 2009 [2012-03-21]. (原始内容 (PDF)于2018-07-21). 
  7. ^ Siy, H.; Votta, L. Does the Modern Code Inspection Have Value?. IEEE Proc. International Conference of Software Maintenance. May–June 2001 [2012-03-21]. 

代码审查, 代碼審查是指對電腦源代码系統化地审查, 常用軟體同行評審, 英语, software, peer, review, 的方式進行, 其目的是在找出及修正在軟體開發初期未發現的錯誤, 提升软件质量及開發者的技術, 代碼審查常以不同的形式進行, 例如结对编程, 非正式的看過整個程式碼, 或是正式的軟件檢查, 目录, 簡介, 分類, 評論, 相關條目, 參考資料簡介, 编辑藉由代碼審查可以找到及移除像是格式化字串攻擊, 英语, format, string, attacks, 競爭危害, 内存泄漏及缓存溢出等计. 代碼審查是指對電腦源代码系統化地审查 常用軟體同行評審 英语 Software peer review 的方式進行 其目的是在找出及修正在軟體開發初期未發現的錯誤 提升软件质量及開發者的技術 代碼審查常以不同的形式進行 例如结对编程 非正式的看過整個程式碼 或是正式的軟件檢查 1 目录 1 簡介 2 分類 3 評論 4 相關條目 5 參考資料簡介 编辑藉由代碼審查可以找到及移除像是格式化字串攻擊 英语 Format string attacks 競爭危害 内存泄漏及缓存溢出等计算机安全隐患 因此提昇代碼的安全性 基於Subversion 可能是Trac或是Redmine Mercurial Git或其他軟體的線上軟體庫可以允許協同審查代碼 而且有些協同代碼審查工具可以簡化代碼審查的過程 自動化代碼審查軟體 英语 code reviewing software 可以系統化的檢查源代碼中是否有已知的计算机安全隐患 可以減少大量代碼審查的工作 卡珀斯 瓊斯 Capers Jones 分析了超過12 000個軟件開發項目 其中使用正式代碼審查的項目 潛在缺陷發現率約在60 65 之間 若是非正式的代碼審查 潛在缺陷發現率不到50 大部份的測試 潛在缺陷發現率會在30 左右 2 一般的代碼審查速度約是一小時150行程式碼 對於一些關鍵的軟體 例如安全关键系統的嵌入式軟體 一小時審查數百行程式碼的審查速度太快 可能無法找到程式中的問題 3 4 代碼審查一般可以找到及移除約65 的錯誤 最高可以到85 5 也有研究針對代碼審查找到的缺陷類型進行分析 代碼審查找到的缺陷中 有75 是和计算机安全隐患有關 對於產品生命週期很長的軟體公司而言 代碼審查是很有效的工具 6 7 分類 编辑代码审查一般會分為三類 正式的代码审查 結對程式設計 以及輕量型的非正式代码审查 1 正式的代码审查 例如范根检查法 有審慎及仔細的流程 由多位參與者分階段進行 正式的代码审查是傳統审查代码的方式 由軟體開發者參加一連串的會議 一行一行的审查程式碼 一般會使用列印好的源代碼 正式的代码审查可以徹底的找到程式中的缺陷 但需要投入許多的資源 結對程式設計是兩個程式設計師在一個電腦上共同工作 一個輸入程式 另一個工程師审查他或她所輸入的程式 結對程式設計是在極限編程中常見的開發方式 輕量型的非正式代码审查需要投入的資源比正式的代码审查要少 一般會是在正常軟體開發流程中同時進行 有時也會將結對程式設計視為輕量型代码审查的一種 Email往返 在代碼登入後 源代碼管理系統自動將代碼郵寄給审查者 配合輔助工具的代码审查 作者及审查者利用配合代码审查的軟體進行审查 書籍Best Kept Secrets of Peer Code Review中曾提到有關代码审查的案例研究 這個研究發現輕量型代码审查所找到的缺陷會比正式的代码审查要少 但其速度較快 其成本也較低 評論 编辑以往正式的代碼審查在審查的準備及進行時都需要投入許多的資源 代碼分析工具的使用可以協助代碼審查 尤其是一些整合在整合開發環境 IDE 下的工具 可以直接提供程式開發者有關編程標準相容的回饋 相關條目 编辑軟件審查 英语 Software review 軟件檢查 偵錯 軟體測試 靜態程序分析 性能分析 自動代碼審查 代碼審查工具列表參考資料 编辑 1 0 1 1 Kolawa Adam Huizinga Dorota Automated Defect Prevention Best Practices in Software Management Wiley IEEE Computer Society Press 2007 260 426 2012 04 08 ISBN 0 470 04212 5 原始内容存档于2012 04 25 引文使用过时参数coauthors 帮助 Jones Capers Christof Ebert Embedded Software Facts Figures and Future IEEE Computer Society April 2009 2010 10 05 Ganssle Jack A Guide to Code Inspections PDF The Ganssle Group February 2010 2010 10 05 原始内容存档 PDF 于2018 12 15 Kemerer C F Paulk M C The Impact of Design and Code Reviews on Software Quality An Empirical Study Based on PSP Data IEEE Transactions on Software Engineering July Aug 2009 2012 03 21 请检查 date 中的日期值 帮助 Jones Capers Measuring Defect Potentials and Defect Removal Efficiency Crosstalk The Journal of Defense Software Engineering June 2008 2010 10 05 原始内容存档于2010 01 11 Mantyla M V Lassenius C What Types of Defects Are Really Discovered in Code Reviews PDF IEEE Transactions on Software Engineering May June 2009 2012 03 21 原始内容存档 PDF 于2018 07 21 Siy H Votta L Does the Modern Code Inspection Have Value IEEE Proc International Conference of Software Maintenance May June 2001 2012 03 21 取自 https zh wikipedia org w index php title 代码审查 amp oldid 74723230, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。