目的

代码走查有几个目的,第一个是让新同学快速熟悉代码并了解系统。第二个是做咨询防控的事前检查,避免引发线上故障。第三个是通过一起讨论和审查,加强团队代码阅读和编写能力,让大家编写出优秀的代码。代码走查的优点非常多,但是最核心的还是提前发现问题并解决问题。

所以基于以上目的,代码走查不是批评而是发现问题共同成长,所以对于写代码的同学不需要过于紧张,但是在代码走查前可以自己看优化一遍,但是变更必须有单元测试覆盖。

什么场景应该做代码走查?我认为有几个时机点是需要做代码走查的,第一个是定期,每几个月定期做一次代码走查。第二个是有重大变更时做代码走查,如代码第一次上线或增加了比较多的代码。

如何进行代码走查

  • 代码走查的角色

  • 主持人:负责主持整个走查活动,包括会议邀约和控制时间(一般一小时左右)进度。为了让代码走查高效,需要及时阻止不必要的讨论,比如讲解人讲的太发散、或者大家针对一个点讨论时间过长。

  • 讲解人:负责对代码进行讲解并跟进修改计划,一般是系统Owner或代码编写者。

  • 记录人:记录代码走查记录,记录中包括代码走查中发现的问题点、修复方法和最佳实践,问题需要指定到对应的人。

  • 评审人:对代码进行评审发现问题并找出最佳实践,一般是资深开发和测试同学。

  • 参与人:参加代码走查,主要以学习为主。

  • 走查前做好充分准备

讲解人整理本次要走读的代码分支、系分设计和代码入口,然后发邮件通知大家,参加代码走查的人提前阅读系分和代码,针对看不懂的代码、有问题的代码和设计复杂的代码全部提交Review记录。

讲解人必须想好走查哪些代码,一般是主流程或有问题的点,控制整个代码走查的时间,我们第一次代码走查花了三个多小时,由于时间太长,走查的过程中开发都走了几个。

  • 走查中控制节奏

直接讲代码很多没参与的同学会很晕,所以先大致讲下系分设计,不需要全部讲完设计再讲代码,而是讲一部分设计,再讲一部分代码。讲解人带着大家一行一行读代码,讲解代码的含义和思考,记录人负责记录Review出的问题和最佳实践。

代码走查的评判标准,主要关注几个点

  1. 编码规范: 可以使用IDEA的插件自动扫描有没有编码问题。

  2. 设计规范

  3. 幂等性

  4. 逻辑问题:是否满足需求。

  5. 一致性问题

  6. 并发和锁:在并发情况下,代码执行结果是否有问题。

  7. 性能问题:代码是否存在性能问题,预计峰值流量能到多少。

  8. 分支覆盖率:是否有分支没有覆盖

  • 走查后总结

在代码走查之后,要优化代码走查,所以会发一个调查问卷给大家

  1. 参加代码走查有什么收获?

  2. 对代码走查有什么建议?

我们走查完之后有几个改进点

  1. 时间把控:第一次代码走查主持人和讲解人时间没控制好,走查了三个多小时,后续主讲人讲重点,主持人随时控场,讨论超过几分钟的就记录下面,线下讨论。

  2. 重点优先:大家前面精力比较好后面就分神了,后续主讲人优先走查重点代码。

(全文完)

点击下方
阅读原文

软件质量保障之代码走查相关推荐

  1. 软件测试中的软件质量保证,软件质量保障全流程(上)

    一. 软件质量保障流程 1.1 微服务产品的特点 微服务架构下,一个大型复杂软件系统不再是一个单体,而是一系列相互独立的微服务,特点鲜明: ·每个服务独立,开发技术栈独立 ·每个服务可以独立开发.部署 ...

  2. 【软件质量保障笔记】软件质量保障

    文章目录 Introduction Classic Testing V model 单元测试 集成测试 系统测试 验收测试 α\alphaα测试和β\betaβ测试 测试流程 测试目标 测试范围 测试 ...

  3. 软件工程第三次作业——关于软件质量保障初探

    一.什么是软件质量 软件质量就是"软件与明确地和隐含地定义的需求相一致的程度".更具体地说,软件质量是软件与明确地叙述的功能和性能需求.文档中明确描述的开发标准以及任何专业开发的软 ...

  4. 2022年度软件质量保障行业调查报告

    2023年已经到了第2个月,大家OKR定好了吗?对目前工作满意吗?过去三年是否换过工作,所在的公司2022年有哪些重大变化,通过问卷结果,让我们看看测试同行们过去一年的经历,以及测试领域的变化. 软件 ...

  5. 软件质量保障实践合集

    这一份软件质量保障实践合集是我们团队所采用的实践,全部来源于真实项目经历,都在我以往的文章中有介绍,这里是将它们重新整合浓缩到了7页 PPT 里边,并且对每个部分有详细的总结性介绍. 浓缩的都是精华, ...

  6. 软件质量保障体系建设

    前言 从事软件测试相关工作七年,做过功能测试.自动化测试.测试开发.性能测试.专项测试,也干过一段时间技术管理. 近几年随着行业成熟度的发展,对软件测试也有了更高的要求,很多测试团队开始转变为质量保障 ...

  7. 揭秘阿里软件质量保障团队的建设方法

    "质量与效率"一直是阿里关注的焦点.相对于软件开发,软件测试起步较晚,缺乏拥有专业知识的人才.即便是大学开设的软件工程专业,针对软件测试的介绍也只是涉及少量的概念和设计测试用例的方 ...

  8. 软件质量保证与测试作业2,2 软件质量保障与测试.ppt

    2 软件质量保障与测试 第三讲 质量的度量 "度量"就是对象(物体或性质)在数值体系上的影射.也就是用一个数值描述这个对象.因此,它必须遵循如"唯一性"之类的规 ...

  9. 解读工业互联网建设中的安全保障

    2017.11.27日,国务院发布关于深化"互联网+先进制造业"发展工业互联网的指导意见的政策文件.指导意见中用基本形势,总体要求,主要任务,保障支撑四个章节全面阐述了先进制造业融 ...

  10. 阿里微服务质量保障系列(一):微服务知多少

    年初买了一本集团巨佬联合出的书<阿里测试之道>,然后认真拜读了下,我相信看过的同学都会获益匪浅,此书分享了阿里在大促保障.移动App测试.大数据测试.AI系统测试.云计算测试.资损防控.物 ...

最新文章

  1. 一年赚上亿的生意_如何一年不到的时间2万赚10个亿?
  2. 后副车架焊接机器人_车架全自动焊接机器人的日常维护保养方法
  3. .NET Core 3.0 使用Nswag生成Api文档和客户端代码
  4. JVM解惑:消失的异常堆栈,log中打印异常堆栈为空
  5. java 自定义 钩子_使用现有钩子的函数不能使用自定义do_action钩子
  6. ​Cell:粟硕/施莽团队利用宏转录组揭示“野味”动物携带和人类疾病密切相关的多种病毒...
  7. 安卓系统曝root权限安全漏洞 已有软件利用
  8. Linux基础学习-NFS网络文件系统实时文件共享
  9. 【b站黑马程序员C++视频学习笔记-文件操作】
  10. 关于OpenCV中图像的widthStep
  11. Jquery消息提示插件toastr的使用
  12. java动态二维数组定义_Java动态定义二维数组问题
  13. android 底层键值映射,如何在使用android-ETE时进行键值映射.doc
  14. 小记 events.EventEmitter.call
  15. nginx 404解决
  16. JAVA 攻城狮 第三天
  17. 人生启示录效应篇之破窗效应:及时矫正和补救正在发生的问题
  18. 超好用的鼠标增强软件:Smooze for Mac
  19. 10-133 4-5 查询具有最低价格的的彩色打印机的制造商
  20. 全国大学生计算机等级考试计算机二级python真题复习链接

热门文章

  1. 被封杀4年的看片神器终于解禁了,要跟百度网盘抢生意?
  2. 防止SQL注入的五种方法
  3. 线性代数学习之坐标转换和线性变换
  4. 斗鱼tv鸿蒙电视版,斗鱼直播鸿蒙版
  5. vue3引入echarts
  6. JeDate日期控件,未选择日,出现undefined错误
  7. Oracle查看IP操作,Oracle VM VirtualBox虚拟机ip addr命令查看ip不显示以及静态IP设置
  8. 微信8.0.0中的[烟花]\[炸弹]原来还可以这样玩(JAVA脚本)程序员的快乐,很简单,快来看!!!
  9. 什么是servlet ,servlet的作用
  10. android nfc常用标签读取