在一个团队中, 如果没有code review, 直接允许开发提交代码到版本库并部署环境, 那么在正式开始测试之前的代码走查就非常有必要了。
这里说的走查不是使用工具在持续化集成之前进行代码规范的检查, 而是根据PRD文档, 验证代码的实现是否符合需求描述。
在开始测试之前我都会先同步开发的代码, 然后询问开发人员具体有哪些接口涉及到本次功能提测, 之后从每个接口入手, 查看业务逻辑层与数据库访问层代码, 看其实现是否与需求相符, 并找出一些明显的错误。
这样做的目的只有一个, 那就是节省时间。其实这些问题应该在开发提交代码前由code review发现的, 但是由于团队刚刚组建,其中新手较多,没有形成一套合理的流程,而且时间非常有限。
其实这些恶性bug都是可以在测试阶段发现的,但是问题还是时间紧,不如先走查一遍代码,将错误处 与开发沟通,之后提bug,将具体哪行哪个位置的问题标出,这样可以大大加快测试进展,起码可以快速使得测试通过冒烟阶段,节约一些时间。
案例:没做代码走查引来的生产问题
项目在2019年3月22日 19时实施版本变更,19时25分版本变更完成,整个变更过程顺利;
联机服务重启后,在19时35分出现查询交易成功率降低,并且有一台机器产生FULL GC,问题出现后,进入机房对日志信息进行排查。
在实现登陆用户控制需求时,程序出现了BUG,没有考虑无客户编号的交易,查询了委托人下全量的用户信息,导致内存不断增大,以致Full GC发生。
总结:经过本次事件充分认识到代码走查的重要性,后续在新功能或优化改造的过程中,要时刻保持警惕思想,组织开发人员进行全量的代码审查,并形成常规的代码走查制度,督促自己和项目组不断完善程序漏洞。
组织开发人员进行代码规范培训,提升开发人员的代码书写质量和规范性。加强开发人员内部程序代码的互测和单元测试工作,形成有改必查,查完必测的规范。