關(guān)于代碼審查的檢查點
數(shù)據(jù)引用錯誤
1.是否有引用的變量未賦值或者未初始化
2.下標的值是否在范圍內(nèi)
3.是否存在非整數(shù)下標
4.是否存在虛調(diào)用
5.當使用別名時屬性是否正確
6.記錄和結(jié)構(gòu)的屬性是否匹配
7.基礎(chǔ)的存儲屬性是否正確
8.索引或下標的操作是否有“僅差一個”的錯誤
9.繼承需求是否得到滿足
運算錯誤
1.是否存在非算術(shù)變量之間的運算
2.是否存在混合模式的運算
3.是否存在不同字長變量間的運算
4.目標變量的大小是否小于賦值大小
5.中間結(jié)果是否上溢或下溢
6.是否存在被0除
7.變量的值是否超過了有意義的范圍
8.操作符的優(yōu)先順序是否被正確理解
9.整數(shù)除法是否正確
10.是否存在二進制的不精確度
數(shù)據(jù)聲明錯誤
1.是否所有變量都已聲明
2.默認的屬性是否被正確理解
3.數(shù)組和字符串的初始化是否正確
4.變量是否賦予了正確的長度溪胶,類型和存儲類
5.初始化是否與存儲類相一致
6.是否有相似的變量名
比較錯誤
1.是否存在不同類型變量間的比較
2.是否存在混合模式變量間的比較
3.比較運算是否正確
4.布爾表達式是否正確
控制流程錯誤
1.是否超出了多條分支路徑
2.是否每個循環(huán)都終止啦
3.是否每個程序都終止啦
4.是否存在由于入口條件不滿足而跳過循環(huán)體
5.可能的循環(huán)越界是否正確
6.是否存在不能窮盡的判斷
7.輸出的信息中是否有文字或語法錯誤
接口錯誤
1.形參的數(shù)量是否等于實參的數(shù)量
2.形參的屬性是否與實參的屬性相匹配
3.形參的量綱是否與實參的量綱相匹配
4.傳遞給被調(diào)用模塊的實參個數(shù)是否等于其形參個數(shù)
5.是否考慮容錯
6.傳遞給被調(diào)用模塊的實參屬性是否與其形參屬性匹配
7.是否引用了與當前入口點無關(guān)的形參
8.全局變量的定義在模塊間是否一致
9.常熟是否以實參形式傳遞過
其他檢查
1.在交叉引用列表中是否存在未引用過的變量
2.屬性列表是否與預(yù)期的相一致
3.是否對輸入的合法性做過檢查