回想之前钱老板开代码评审流程的讨论会,有事没去,有些遗憾,所以谈下这个当前最fashion的话题,分享下之前对代码等评审的体验。
之前在CFT的研发氛围还是比较重视代码评审的,完成度也比较好,原因有以下几个:
(1) 开发在提交代码之前需要进行代码评审,也有少数推到提测后再进行,这对测试来说很烦躁,因为测了一半了你跟我说要更新评审后的改动,早干嘛去了?
评审形式基本上都是线下订个会议室讲个半天,很少在线评审,由组长级带头,相关项目的开发人员对自己的代码还有逻辑进行讲解,然后总结改动点输出会议纪要。
评审主要评审实现方法上的问题为主,很少涉及编码规范和代码结构方面的问题(一般不是新人的话这方面大家都会遵守),重点关注但不限于超时、锁、系统调用、异常处理、数据字典设计等方面的问题。
测试会不会去参加代码评审呢?一般会邀请测试参加,但效果并不是很好,究其原因主要有三:
(2)用例评审也是线下通过评审会的方式,主要在测试了一轮以后召开(这个时间点我觉得是蛮好的,测试对系统有了较深的认识)。邀请项目的开发,项目的测试人员,其他资深测试人员参与。主要由项目的测试人员讲解系统实现和对应的测试用例
评审的范围比一般的开发评审用例更为宽泛,对于系统设计或者代码实现上有问题,可以提;如果开发逻辑有问题或者测试用例设计有问题,也会马上拉出代码一起确认,比如一个入参测试的用例为一个fee参数的长度超过32位报错,遭到挑战:为什么是32位,通过开发和代码确认是因为fee字段的值类型用了int,评估后认为int太短,必须用long,于是开发和测试都要进行修正,而由开发评审用例一般看到这个的确符合了代码逻辑往往就放过了。所以一般的评审结果里,测试的用例和开发的代码都会有需要优化的地方。
(3)安全评审。项目需要出具风险报告;高风险的项目需要找安全接口人进行评审(组长或副总监级),讲下涉及的风险点,解决的思路和实现的代码。经常因为需要解决老大新提出的安全风险而延迟上线有木有,说多了都是泪。
风险报告的某一部分,比如这样的
个人感觉代码评审的好处有如下几点:
当然缺点就是耗时~~如果开展了代码评审但又不认真去做,那就是白白耗时。所以在CFT,大家开评审会还是蛮认真的,然而我不知道大家是真认识到了代码评审的好处还是被流程束缚着。直到后来,之前在CFT的几个开发组也一起去了WXG, 由于新部门没有强制的代码review流程,结果大家开始不做代码评审了。。。这说明用流程强制容易,但让质量意识深入人心,难啊~~所以,我一直想在项目中引入代码评审,然而这不是用不用gerrit的问题,而是该如何让开发心甘情愿的接受代码评审,用什么样的方式去实现它并产生应有的效果的难题。
原文:http://www.cnblogs.com/opama/p/5444749.html