测试同学如何参与CodeReview?

简介: 经验

前言

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,不仅可以降低发现和修改问题的成本,还可以提高测试质量和效率。同时也可以学习代码中设计精妙的地方,快速提高自身编程水平。

目录
相关文章
|
存储 测试技术 编译器
【软件测试】3、代码检查与Code Review
对于一家技术研发流程完善的技术公司来说,代码审查都是必不可少的一部分。虽然大部分代码审查工作都是研发团队的工程师完成,广义上讲,代码审查也是软件测试的一部分。
1190 0
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
4天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
43 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
24 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
2月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
135 11
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
92 3
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
109 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
5月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
311 7
Jmeter实现WebSocket协议的接口测试方法

热门文章

最新文章