谈code diff
为什么要进行code diff
QA参与 code diff是需要有代码基础的,最低要求需要能看懂代码逻辑发现错误。有些公司有硬性要求必须code diff,所以有的QA同学会被项目流程规范着去参与code diff,但在不清楚code diff目的的情况下,可能产出达不到预期。
如果QA同学负责发布,那就需要整理发布步骤,如果发布的工程之间有依赖关系,你如何确定依赖关系,来确定发布顺序呢?有的可能回答说听开发的,开发说的真的就是正确的吗?code diff产出其一就是梳理出依赖关系,给出正确的发布步骤。比如本次新增接口,通过code diff可以很清楚的知道哪个系统是服务提供方,哪个系统是服务调用方,这样就很容易梳理出先发哪个系统了。梳理出正确的发布步骤是code diff产出之一。
空指针引起的线上问题,大家是不是也遇到过呢,是不是很苦恼呢?sonar检查会帮我们消灭一部分空指针,但是有些空指针是sonar检查不出来的。这时候就需要我们通过code diff环节,来发现。变量使用前需要考虑是否会出现null。发现空指针也是我们code diff的产出之一。
有的开发工程师喜欢“买一送一”,产品经理的提出的功能,在基础上自主提供一个功能。这个功能你有可能在功能测试阶段是发现不了的。通过code diff讲解代码逻辑,就可以很轻松的发现对应代码的功能是否本次需求中需要的功能。本次代码是否都是为了实现本次需求功能,是否有多余的代码,也是code diff产出之一。
code diff还有一个特别重要的产出就是新增测试点。在code diff过程中你会梳理出未验证到的点,这个时候你就需要补充你的测试用例。及时发现遗漏的测试用例,也是code diff 产出之一。
能力强一些的QA还能提前发现代码结构设计不合理的地方,可以尽早的进行优化;一些初始值设置的不合理,比如并发线程池线程数初始化的值设置,最大线程数的设置等;比如redis设置值及有效期的原子操作;这些通过功能测试很难发现问题,但是在code diff环节就可以很容易发现。这也是code diff很重要的产出之一。
有的公司有代码规范,如果公司顺便提供对应的代码检查插件就可以省时省力,如果没有提供对应的工具插件,就需要在code diff的时候查看开发工程师的代码是否符合公司规范,这些都是需要从代码层面来看的。
现在是不是觉得code diff还是有必要的呀。接下来咱们做个总结,code diff的产出有以下几个方面:1.测试用例;2.测试范围(降低漏测和无效测试);3.发布步骤;5.代码bug(功能和性能);6.系统结构
与其相关的文章:
后续文章会讨论:
如何code diff:工具篇、经验分享篇