關於Peer Review、程式碼評審和測試驅動
關於Peer Review,中文不知道應該怎樣翻譯才貼切,一些人翻譯作“同行評審”,一些翻譯作“對等評審”,我現在姑且意譯作“成員間相互檢查程式碼”。Peer Review實際上在外國已經流行n久了,外國把它作為過程改進的一個關鍵步驟。
目的:
-
儘可能早的發現並確定軟體產品中的缺陷。
-
儘可能早的發現產品中應該改進和提高的部分,並及早實現。
-
專案成員通過同行評審,可以更好的理解軟體產品,防止部分錯誤的發生。
相關的文件請參看:
-
同行評審:http://www.bytewatch.com.cn/pro_intro/peer_review.htm
-
對等評審:http://www.8848software.com/cmmchina/whatiscmm/kpa_l3_pr.html
關於程式碼評審,中國很多公司早就有這個做法了。我今天跟金蝶的溫少討教過這個問題,他提出了不少好建議,先摘錄如下:
你可以把專案組中的每個人的程式碼都抽取部分給其他人審查。最好有辦法避免開發者把最好的程式碼提交評審。
每幾個人負責評審一塊的程式碼,最好能夠熟悉對方的業務或者程式
最初時,通常只能檢查到一些程式碼中的容易發現的錯誤,例如編碼不規範和一些很顯而易見的錯誤,不過單這一些就很重要了
你最好讓大家花時間自己整理一下程式碼,然後提交評審。評審的時候,最好有投影儀,大家坐在一個電腦前面,輪流講自己評審別人的程式碼中發現的問題和優點
當然,發現了問題,如果確定了要修改的,會錄入研發管理平臺中作為待處理任務的
不單要發現問題去解決,也要發現優點推廣之
你先做一次,你就會發現,這個過程會很愉快,因為發現了很多可笑的程式碼,同時你要注意協調,讓這個過程愉快一些
最初只能做編碼規範和一些簡單錯誤的檢查。你去審查一遍大家的程式碼,你可能也能總結一些和自己所採用技術相關的規則,你目前的一些評審專案可能還可以細化和補充
建議補充一條,是否檢查了在函式入口處檢查了引數的合法性,如果檢查了,做優點處理。
呼叫別人的函式,返回值,是否進行了合法性檢查或者空值處理。例如if (rtnVal != null) 。通常如果做了,當優點處理
這兩條,能夠提高程式碼的質量,因為程式中,通常會很容易產生因為引數或者返回值不恰當導致的錯誤,這類錯誤的錯誤資訊通常比較亂,很難查。
這個要求有些高的,所以如果做了,當優點處理。
當然,資料庫可以檢查命名規範,是否使用不恰當的資料型別
程式碼評審的目的:
設計和開發評審的目的是由一組有資格的人員對軟體設計和開發的輸出進行評價,以判斷確定設計和開發的輸出能否實現軟體產品預先定義的規格,同時通過評審標識出與規格和標準的偏差。它向管理部門提供充足的證據以證明
1)設計和開發的輸出符合了其規格要求;
2)設計和開發的輸出是否滿足相關法律、法規以及企業標準的要求;
3)軟體產品的更改得到了恰當地實施;
4)軟體產品的更改只對那些規格發生了更改的系統區域有影響,沒有引入新的問題。
相關的文件請參看:http://www.chinauml.net/software_engineering/rjzl/20040429/151346.html
程式碼評審時應該有一依據,並根據這一依據進行評審,把評審結果詳細記錄下來,這就是程式碼評審報告。我在網路上搜尋很久都沒有這樣的文件,於是就自己寫了一個,並實際運用起來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14639675/viewspace-578123/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 漫畫:Code Review 程式碼審查View
- 程式碼審查(Code Review)清單View
- 關鍵字WebElement 驅動測試Web
- Digg4持續部署,程式碼評審和經過測試的提交
- Code Review 程式碼審查 不完全整理View
- 軟體測試的需求評審
- 關於程式碼評審(CodeReview)那些不得不說的事兒View
- Steven Code Review 程式碼線上審查工具[開源]View
- 測試過程中的評審工作及關注事項
- 說透程式碼評審
- 星雲精準測試對安卓底層驅動程式碼的測試案例分析安卓
- 程式碼審計基礎--白盒測試
- 程式碼審查“查”什麼(2):測試
- 基於測試驅動的iOS開發iOS
- 基於事件驅動的測試框架ETS事件框架
- 關於code reviewView
- 程式碼review,程式碼審查,用upsource 也太方便了吧View
- 測試人員如何做需求評審?
- 程式碼review工具:Review BoardView
- TestComplete使用關鍵字測試的資料驅動測試(三)
- golang 表格驅動測試Golang
- "測試"驅動開發
- Oracle 審計和測試操作Oracle
- 程式設計師必備的程式碼審查(Code Review)清單程式設計師View
- 關於程式碼審查的幾點建議
- 【討論】用大模型評審測試用例?大模型
- 測試用例驅動閱讀Express原始碼Express原始碼
- 關於驅動程式中的ioctl (轉貼)
- Android 驅動測試程式H-M-SAndroid
- 基於Python的介面自動化-unittest測試框架和ddt資料驅動Python框架
- Spring review--動態代理和AOP程式碼的演化SpringView
- 如何理解自動化測試資料驅動與關鍵字驅動的區別?
- 關於 IDC 評測
- 【轉】程式設計師必備的程式碼審查(Code Review)清單程式設計師View
- 京東雲開發者|程式碼評審的價值和規範
- golang 表格驅動測試案例Golang
- 滲透測試工具方法基礎程式碼審計篇
- 關於設計評審的一些思考