前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CCTech:测试同学如何参与codereview?

CCTech:测试同学如何参与codereview?

作者头像
周辰晨
发布2022-09-20 15:13:53
7410
发布2022-09-20 15:13:53
举报
文章被收录于专栏:软件测试架构师俱乐部

前言

Code Review,简称CR,也就是我们常说的代码评审。Code Review主要是在开发过程中,对代码进行评审。其目的是为了提高代码质量和规范性,尽早发现潜在缺陷与BUG,降低修复成本。同时也可以提高开发者自身水平。现在越来越多的公司已经把Code Review作为研发流程中的一个必备环节之一。

在大家的潜意识当中,Code Review是开发的工作,只要开发参与就行了。与测试同学无关。但是随着近些年测试左移概念的流行,Code Review可以作为测试左移的一个环节之一。测试过程中结合Code Review 可以大大的提升测试质量和效率。

为什么要参与Code Review?

1、用更低的成本发现问题

一些比较简单的错误经常通过Code Review就能发现,比如计算错误、数值类型错误(存储时间的变量使用 string 类型是否合适)、未做异常捕获、未对边界值进行处理等等。

Deming 先生曾提出“问题发现得越早,修复的成本越低”。有数据指明,85% 的缺陷都是在代码编码阶段引入的,然而大部分的缺陷并不是在编码的时候发现的,而是在后面的测试过程中发现的,并且越往后发现的缺陷越多。

按照STICKYMINDS网站上上的一篇名为The Shift-Left Approach to Software Testing的文章中所给出的(如上图),假如在编码阶段发现的缺陷只需要1分钟就能解决,那么单元测试阶段需要4分钟,功能测试阶段需要10分钟,系统测试阶段需要40分钟,而到了上线之后再发现可能就需要640分钟来修复,这个成本是非常高的。

所以如果测试同学有能力通过Code Review 就发现问题,不仅可以降低修复问题的成本,也提高整体的效率。

2、明确测试范围,进行精准测试

通过Review代码,了解代码变更点,能够针对性地对开发代码的变更点以及变更关联点做测试,并且精准的确定回归测试范围,避免了全量回归造成的测试资源浪费,也降低了漏测的风险。

3、对上线需求代码范围进行把控

之前在一次Code Review时,发现有一位开发把不属于本次版本上线的需求代码也合并了过来,后来经证实是误操作后,又把对应的代码进行剔除。

那如果这部分代码未经测试就上线,极大可能会影响线上的正常功能。这种情况是大家都不愿看到的。

有的同学会说,在发版之前开发会检查对应的代码的吧,在上线前剔除就可以了。如果是这种情况,代码剔除之后,一些解决的冲突会被复原,测试同学还要再进行一次比较全面的回归,非常浪费时间且风险极大。

4、较小需求可以在Code Review后直接上线

经常有些需求只涉及到相关配置文件的变更,比如,有一些logo图片是上传到存储平台后,把url放在配置平台的,如果设计/产品要更换logo,直接修改相关配置后,产品/设计直接进行验收即可,不用再进行对应的测试,也大大的节约了测试时间。

5、更快速的定位问题

熟练的同学可以结合日志和代码,快速的定位到出现bug的代码行,在提交bug 的时候把相关代码信息提交上去,开发直接修改即可,在提高效率的同时,也会让开发对我们更加的信服!

什么时候做Code Review呢?

提测前,在开发完成coding后,把开发分支合到测试分之前进行code review,可以自己走读代码,也可以参与开发的代码评审会议,这时参与,可以对比自己对需求的理解和开发实现的有何不同,及时对齐相关信息。

功能测试发现bug时,这时候可以通过走读代码,定位失败原因,将详细的错误代码行指出并告知开发,可以提高开发修复bug 的效率,也减少了自己给开发复现bug的时间。

修复bug后,走读开发提交的代码记录,看是否会引入新的bug。

上线前,查看开发merge 代码范围,检查是否只merge了当前要上线需求的代码,是否夹带了其他不需要上线需求的代码,等。

测试同学在Code Review中应该关注什么?

开发同学在review代码的时候,会检查代码的可读性和可维护性,会关注代码的设计,逻辑和业务是否正确,使用的相关设计模式等等,但是对于测试来说,我们应该着重关注一下代码逻辑,以及常见的缺陷等。

CR前:

在CR前我们要对需求做一个全面的了解,对如何实现需求有自己的思路。对比自己的思路和开发的实现逻辑有何差异,开发的实现有什么优势?自己的思路缺点在哪里?实现有没有漏洞?这么做不仅可以加深自己对业务的理解,也能大大提高自己的代码能力和设计能力!

CR时:

在CR过程中要关注下开发的代码实现细节, 并且对自己的测试用例查漏补缺,来完善测试场景,也可以对测试设计中冗余的 case 进⾏清理,避免重复⽆⽤的测试。

另外,除了关注这次的改动点,还要留意是否不小心改了其它地方的代码,影响已有功能。

其次,在review 代码的时候,我们还可以关注一下常见的缺陷,下面列举了一些:

  • 函数的参数, 参数是否被函数使用或正常使用
  • 数据类型 对某个值用int还是double;
  • 除数为0、整数溢出、精度损失;
  • 可能死循环;
  • 在finally程序块中关闭或者释放资源;
  • 异常处理,是否正确处理了异常,最常见的空指针异常要关注;
  • 公式计算错误;
  • 字符串对比不能用==,使用equals;
  • 数组可能越界;
  • 传递引用错误;类型转换错误;
  • 条件范围选择错误;
  • 边界值处理情况;

等等...

多参与Code Review,记录常见的缺陷,总结、整理出自己的心得,一定会越来越顺手的。

充分合理的利用code review,不仅可以降低发现和修改问题的成本,还可以提高测试质量和效率。同时也可以学习代码中设计精妙的地方,快速提高自身编程水平。

往期推荐:

CCTalk:没有需求文档怎么测试?

CCTalk:帮助超过100位测试人复盘,发现巨大的误区

CCTalk:很多人说测试经理容易被架空?

欢迎关注:

作者介绍:高粱饴,CCTech写作组成员,来自阿里巴巴

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师影响力 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档