Can you summarize the following document?
        
  藉由程式碼審查可以找到及移除像是格式化字串攻擊、競爭危害、記憶體洩漏及快取溢位等電腦保安隱患,因此提升程式碼的安全性。基於Subversion(可能是Trac或是Redmine)、Mercurial、Git或其他軟體的線上軟體庫可以允許協同審查程式碼,而且有些協同程式碼審查工具可以簡化程式碼審查的過程。  自動化程式碼審查軟體可以系統化的檢查原始碼中是否有已知的電腦保安隱患,可以減少大量程式碼審查的工作。  卡珀斯·瓊斯(Capers Jones)分析了超過12,000個軟體開發專案,其中使用正式程式碼審查的專案,潛在缺陷發現率約在60-65%之間,若是非正式的程式碼審查,潛在缺陷發現率不到50%。大部分的測試,潛在缺陷發現率會在30%左右。。  一般的程式碼審查速度約是一小時150行程式碼,對於一些關鍵的軟體(例如安全關鍵系統的嵌入式軟體),一小時審查數百行程式碼的審查速度太快,可能無法找到程式中的問題。程式碼審查一般可以找到及移除約65%的錯誤,最高可以到85%。  也有研究針對程式碼審查詢到的缺陷型別進行分析。程式碼審查詢到的缺陷中,有75%是和電腦保安隱患有關。對於產品生命週期很長的軟體公司而言,程式碼審查是很有效的工具 。

  程式碼審查一般會分為三類:正式的程式碼審查、結對程式設計、以及輕量型的非正式程式碼審查。  正式的程式碼審查(例如範根檢查法)有審慎及仔細的流程,由多位參與者分階段進行。正式的程式碼審查是傳統審查程式碼的方式,由軟體開發者參加一連串的會議,一行一行的審查程式碼,一般會使用列印好的原始碼。正式的程式碼審查可以徹底的找到程式中的缺陷,但需要投入許多的資源。  結對程式設計是兩個程式設計師在一個電腦上共同工作,一個輸入程式,另一個工程師審查他所輸入的程式,結對程式設計是在極限程式設計中常見的開發方式。  輕量型的非正式程式碼審查需要投入的資源比正式的程式碼審查要少,一般會是在正常軟體開發流程中同時進行,有時也會將結對程式設計視為輕量型程式碼審查的一種。 書籍"Best Kept Secrets of Peer Code Review"中曾提到有關程式碼審查的案例研究,這個研究發現輕量型程式碼審查所找到的缺陷會比正式的程式碼審查要少,但其速度較快,其成本也較低。

  以往正式的程式碼審查在審查的準備及進行時都需要投入許多的資源。  程式碼分析工具的使用可以協助程式碼審查。尤其是一些整合在整合開發環境(IDE)下的工具,可以直接提供程式開發者有關程式設計標準相容的回饋。
程式碼審查(英語:Code review)是指對電腦原始碼系統化地審查,常用軟體同行評審的方式進行,其目的是在找出及修正在軟體開發初期未發現的錯誤,提升軟體質量及開發者的技術。程式碼審查常以不同的形式進行,例如結對程式設計、非正式的看過整個程式碼,或是正式的軟體檢查。