在我的工作过程中,公司要求参加代码走读。
刚参加代码走读的时候我很迷茫:
我需要做什么?
我能做什么?
我该围绕什么方面来关注走读的代码?
针对这段代码我该给开发提出什么样的建议?
我该如何做?
在参加了几次代码走读后,我总结了以下几点。可能还不是很完善,希望大家可以给我提意见,补充我的不足。
代码走读分为2部分:静态代码检查、人工走读代码。
首先,我们需要静态代码检查。
此时在项目配置一个外部配置文件来检查。只要符合这个外部配置文件的规则,就不会有报错,如果不符合,在用该配置文件检查的时候会列出不符合的具体规则,不符合的条数以及具体位置。
在开发发给测试之前,开发也是需要自测的,所以基本上这一步,测试只是走个流程。
然后,进行人工走读代码。
因为静态代码检查是通过外部配置文件来检查的, 可能有些地方没有检查到,所以需要人为走读。
开发:把上次发布的版本,以及本次最新的代码版本发给需要参加代码走读的同事。
参与代码走读的人:通过代码走读工具,对比两版代码的不同之处,并做好记录。(最好是能进行线上评审,提交意见之后所有参加走读的人都能看到,对于之后代码走读的会议也会很有帮助)
对于改动后的代码:
1.走读人员需要基本了解公司编码规范(代码结构,命名等等)
2.了解改动的模块具体功能,并理清逻辑
3.通过阅读注释理解代码的目的和实现方式
4.检查函数实现是否符合预期,关注潜在的错误或漏洞。
5.检查代码是否易于阅读和理解
6.注意循环次数过多、内存泄漏等
在代码走读之后,开发人员修改会议提出的意见,并让提出意见的人进行验证。
通过代码走读:
1.测试工程师可以更好地理解代码
2.能发现代码潜在的问题和风险
3.有助于测试工程师编写测试用例(关注到黑盒测试没关注到的东西)
简单列举部分编码规范(不同语言有不同编码规范,以JAVA语言为例):
常量的使用规范 |
声明的时机与规范 |
变量、类、常量、包的命名规范 |
代码长度、宽度、代码缩进的规范 |
重载与重写 |
参数传递 |
分支语句,if-else,switch,for,while |
异常的处理 |