让眼睛去代码里旅行(代码检视的一些心得)

一、前言

我一直相信,代码检视可以帮助开发人员,验证软件的所有功能,发现代码中的所有Bug。

我也一直认为,不断进行代码检视,是开发人员提升软件质量,提高工作效率最好的方法。

代码检视就是LLT测试,代码检视也是黑盒测试,当你的眼睛扫过代码行的同时,你的脑子在想着软件功能,这就是高效、活生生的功能测试。

另外,代码检视还能完成功能测试不能完成的事情:提高代码简洁性、可读性、低耦合、可维护性等。

下面是我自己经常用到的一些代码检视方法和心得,总结出来供大家参考。

二、检视方法

方法一、按照“代码行从上往下顺序”进行检视

这可能是大家最习惯用的一种方法,检视起来行云流水。这种方法虽然简单,但是最重要,这种方法可以提高代码简洁性、可读性、低耦合、可维护性,我觉得这是好代码最根本的特征。

虽然方法简单,为了达到不简单的检视效果,我觉得这种方法要重点检视如下方面的问题:

  1. 代码简洁性差。比如:函数超大;
  2. 代码可读性差。比如:函数逻辑复杂,圈复杂度高;函数中空行使用混乱,导致很难看出代码层次划分;注释记录少、或者多但是混乱。
  3. 代码可维护性差。比如:关键日志记录少、或者记录了很多无用的日志;
  4. 代码整体的功能逻辑。

方法二、按照“测试场景执行的代码顺序”进行检视

这种方法是代码检视可以媲美功能测试的“利器”。无需费尽“九牛二虎之力”搭建测试环境,无需花大量时间写LLT用例。你只要对照自己设计的功能测试用例,或者直接拿来测试人员设计的用例,就可以用你的眼睛和大脑开始“测试”了。

这种方法的优点是:发现各种功能场景的逻辑问题,尤其是异常场景的逻辑问题。

方法三、重点专项检视

当编程语言语法的“灵活性”遇到我们长时间编码已经“迟钝”的大脑,问题就来了… (挖掘机技术哪里强,中国山东找蓝翔 )

逻辑跳转的代码,虽然灵活高效,但也容易引入一些隐藏很深的Bug。在现在各种静态检查工具横行的年代,我觉得还需要进行下面这些重点专项检视:

  1. 内存申请、释放的场景;比如:异常分支的提前退出,容易导致内存泄露,野指针。

  2. 在for/while 循环中使用 break/continue/return 的地方,容易出现死循环,内存访问越界,功能逻辑错误的问题。

  3. 不带else的if判断语句,并且其中没有跳转, 后面隐含的else分支可能会导致问题。

     int i = 0;
     if (xxx)
     {
         i = 1;
     }
     // 这里隐藏了一个逻辑 i = 0; 可能这不是代码的本意
    

最后,希望这些心得能帮得上一些忙,希望各路人都能重视代码检视,多花时间在代码检视上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值