下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

CodeReview之阅读开发代码

作者:匿名     来源: Python点击数:725发布时间: 2021-10-21 16:48:07

标签: python基础教程CodeReview阅读开发代码

大神带你学编程,欢迎选课

  说到CodeReview,大家都很熟悉,上线前,分支合并Master进行CodeReview,开发人员交叉进行Review,接下来,大家跟随小编一起来聊一聊阅读开发代码。

  对开发人员来说,CodeReview是一个非常重要的Check步骤,对测试人员来说也是一种发现缺陷,了解项目的重要方法。读取代码能从以下几个方面帮助我们:

  1.检查测试用例的漏点。

  众所周知,无论是单元测试还是功能用例测试,都不容易完全覆盖测试,尤其是在多种情况下。CodeReview可以帮助我们再次检查测试中是否漏掉了功能点。

  2.帮助测试人员更熟悉系统,更好地了解业务。

  黑盒子测试的被测对象是已成型的系统,无法清楚地看到业务功能是在系统结构的哪个部分实现的。例如现在流行的微服务架构,一项业务功能可以通过多项微服务相互协作来完成,通过阅读代码,可以清楚地知道业务实现的入口在哪里,调用了哪些服务,一项业务场景从开始到结束都能清楚地看到。

  3.发现增量功能错误和设计缺陷。

  业务线的功能能是不断迭代的,由于体验的提升而进行的功能优化和新功能的增加都在迭代的范围之内。测试者面对的是整个商业线路,每一次迭代都需要准确判断这次迭代的影响范围,以确定测试范围。透过商业代码明确具体的实现细节、实现方式,在商业功能迭代时,测试者可以准确地判断代码增量是哪一部分,关联受影响的代码是哪一部分,确定测试范围,做到精确测试,在设计评审时反馈会对开发者产生影响,与开发者形成良好的互动。

  说到阅读代码的好处,测试人员如何去Review开发人员代码?从哪些方面开始?

  1.带任务看代码。

  带任务去看代码就是要清楚这次迭代有哪些功能,最好在Review之前熟悉一下测试用例,带功能实现是否有问题心态去看,关注业务逻辑实现,界面参数定义部分,有些配置的config实现可以不用担心,避免陷入与功能无关的细节。

  2.关注代码条件判断。

  判断各种业务逻辑条件是必不可少的,也是容易出问题的地方。条件判断错误的功能表现可能是失之毫厘,差之千里。条件判断需要结合业务实际情况,如:

  (1)检查if句子中的每一个条件表达式是否正确。例如:变量取值isNotBlank和isNotEmpty会导致不同的结果,特别是涉及到与、或非的表达式;

  (2)检查条件表达式是否涵盖所有相关变量。举例来说:一个订单状态的流动与a,b两个变量的取值有关,其中b变量会在某些特殊情况下影响订单状态。若只考虑对a的判断而忽视b,则会导致功能不全。

  火车票改签测试中有这样一个bug,同一乘客成功购票后->将票改签到其他日期->再退票,然后该乘客在同一日期购买同一车次的票提示行程冲突,预期结果为:用户已改签到其他日期并退票,可再次购买。下面的图表是一个简化的过程图表,判断是否有行程冲突(黄色部分是bug的原因):  

 

  从流程图可以看出,如果乘客有已经发票的订单,他们需要首先判断他们是否旅行或退款。如果没有,他们仍然处于发票状态,他们需要继续判断是否已经更改了签名。如果已经更改了签名,允许用户继续创建订单,导致错误的原因是很少判断是否更改了签名。

  (3) 检查不同条件值给出的处理结果是否正确。举个简单的例子:学生成绩不同的区间对应于a、b、c三个不同的文件,有以下伪码:  

  以上代码没有考虑s取异常值,学生成绩值大于等于0,当成绩大于100时,c档是否合理也需要考虑实际需求。

  3.注意循环语句。

  所有循环是否都有结束条件,即所有循环都能正常结束;进入循环的入口条件是否正确,可以进入循环;循环条件是否有越界错误等。

  4.检查代码中的界面定义是否与界面文档一致。

  5.Review用于增量代码。

  一般情况下,由于时间有限,没有足够的时间阅读所有代码,可以选择只对增量代码进行Review,检查是否有功能遗漏,更改代码是否影响原有功能。

  6.Review之后,知识就会底。

  以前的几点都是怎么做的,在阅读代码的过程中沉淀知识也很重要。Review完成后,可以对发现的问题进行分类,在以后的测试过程中可以作为测试用例进行补充。Review完成后,可以尝试绘制服务流程图、项目架构图,帮助自己更深入地了解项目。

  7.测试人员对代码进行说明。

  读完代码后,测试人员可以反复理解代码,邀请开发人员参加。

  当然,当我们看到代码时,我们会遇到很多问题。我们可以咨询开发学生,了解代码结构,如业务实现代码、数据库交互设计、配置文件和界面定义文件,这些都可以帮助我们快速了解项目代码结构。

  小编的分享就到这里了,希望上面的介绍有帮到大家!

    >>>>>>点击进入Python专题

赞(12)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程