2.5 何时发起代码评审

代码评审应当在代码开发完成之后,进入QA部门进行测试之前执行。代码在签入版本控制前,所有的代码都应当能够编译和运行,并且没有任何错误、警告或其他信息。要达到上述要求,应当做到以下几点:

  • 对程序进行静态代码分析并检查是否有任何问题,解决分析过程中报告的错误、警告或其他信息。如果忽视这些信息则可能在今后造成问题。在Visual Studio 2019中,右击项目,并选择Properties | Code Analysis。就可以在Project Properties页的Code Analysis页面中访问Code Analysis配置对话框了。
  • 所有测试都应成功运行,且新代码不论是正常用例还是异常情况均应当得到覆盖,以确认代码正确实现了需求规范的要求。
  • 如果你在工作中使用持续开发的软件实践将代码集成到更大的系统中,则应确保集成成功,并通过所有的测试。如果出现错误则请修正错误再继续推进后续工作。

当代码开发结束,文档齐备,通过了所有测试,并且系统集成工作良好、没有任何问题,此时就是进行代码评审的最佳时机。当代码评审通过之后,代码就可以进入QA部门了。图2-11展示了代码从开发到结束的整个软件开发生命周期(Software Development Life Cycle,SDLC)。

图2-11 软件开发生命周期

开发者按照规范编写软件代码。将代码提交到版本控制仓库并发起一个pull request。随即进行代码评审。如果评审失败,评审人将附加评论并拒绝pull request;如果评审成功,则代码将部署到QA团队并执行其内部测试。中间如果出现任何缺陷都将返回给开发者进行修复。如果QA内部测试通过,则代码将部署到用户验收测试(User Acceptance Testing,UAT)环境中。

如果UAT失败,则缺陷将提交至DevOps团队。DevOps团队的成员大多是开发人员或基础设施相关人员。如果UAT质量验证通过,则软件将部署到模拟(Staging)环境上。生产验证团队的职责是将软件部署到产品环境。当软件发布到客户手中后,任何缺陷都会生成一个缺陷报告。此后开发人员将重启流程并修正客户提出的缺陷。而当产品生命周期临近尾声时,其服务也将终止。