美文网首页赏味不足码农的世界程序员
测试人员代码走查基础要点

测试人员代码走查基础要点

作者: 胖艺 | 来源:发表于2017-02-14 22:02 被阅读1142次

        代码走查,是测试人员了解代码逻辑,进行测试设计的重要环节。并且有很多bug并非需要到运行程序进行测试才能发现。通过合理的代码走查方法能提前发现相当多的BUG。除常见的业务逻辑与程序逻辑不符外,本文收集了在过往工作中的经常能发现BUG的走查要点,以供参考。


走查要点:一段代码存在多个副本

[释义]

相同的代码段,在程序的不同地方复制和粘贴。

甚至同一项目,复制出多个副本。

[问题表现]

修改好的bug,一直反复出现。

由于存在多个副本,如果代码段中有bug,就需要修复多个副本。其修复难点在于:如何确定找到所有的代码副本。如果无法确定修复了所有副本,极易导致漏测。看似减轻工作的复制粘贴给后期维护带来了极大工作量和风险。


走查要点:初始化对象或返回值为空

[释义]

在实例化对象时(例如,从数据库中取出一条订单数据,实例化一个订单对象),某些字段字段为空。而后面定逻辑需要使用这个字段时,没有进行判空。或者在一些远程调用过程中,返回的对象有可能是空,或者某些字段为空,在后面的使用中,没有判空。

[问题表现]

空指针异常NullPointerException


走查要点:数据定义被破坏

[释义]

在处理各种数据时,由于某些数据的定义(类型、长度、必填、范围及其他性质)被破坏,例如,某接口需要接受三个都为必填项的参数,由于未对是否必填进行校验,导致数据库中的数据与预期的定义不符。应尽早检查数据的定义。

[问题表现]

代码运行好好的,突然就发生一些问题,之后又没问题了。完整的数据任务都没有问题,只有当程序运行到不完整数据时,才会报错。


走查要点:资源(内存、文件或数据库连接)未被正确释放

[释义]

程序的一些执行路径没有完成它们应该做的工作,或者持有不再使用的对象。

[问题表现]

资源未能正常释放,导致连接被用完、文件打开过多、FGC


走查要点:接口定义不一致

[释义]

接口定义与实现不一致,导致调用接口出错。

[问题表现]

当使用某个接口时,处理结果与接口定义的结果不一致,甚至直接报错异常。


走查要点:消息队列能否补发消息、对补发消息的处理

[释义]

生产者发出消息时发生异常,导致消费者无消息可用。需要能够补发消息。而消费者在处理消息时(或者回调),是否能处理重复的消息(重复的回调通知)。特别是在多线程的情况下,对数据的修改,需要对线程进行分析。

[问题表现]

消费者端无响应

少数数据处理出错,而大部分都正常。


走查要点:不恰当的日志

[释义]

日志中的敏感信息:卡号、手机号、密码、cvv、有效期等

关键的操作步骤没有日志(修改状态,异常报错)

日志量过大,打印无效日志,导致无法查问题。

[问题表现]

泄漏用户信息

无法查错


走查要点:查询SQL的底线

[释义]

查询的sql语句,需要有条件限制,不能无条件的查询数据库。常见的约束:时间范围,数据量限制。

[问题表现]

查询出的大数据量的结果集,导致数据库和应用的性能问题。


走查要点:缓存

[释义]

(1)集中缓存,还是分布式缓存

(2)分布式缓存如何保证缓存间的一致性,不一致时,如何影响流程。

(3)缓存如何与数据库的数据保持一致性,不一致时,如何影响流程。

(4)如果缓存失效,如何影响流程

[问题表现]

修改了配置,但有的服务器更新了,有的没更新。

集中式缓存服务挂了,没有备份,直接查数据库,导致数据库压力过大。


走查要点:系统间调用的保护

[释义]

同步调用外部系统,必须有超时时间的设置,防止线程池涨满影响其他业务。考虑用异步调用替代同步调用。

[问题表现]

由于被调用系统的性能瓶颈,导致调用系统的响应也下降。


走查要点:异常处理

[释义]

异常是否得到明确的定义

是否有未捕获到异常

捕获异常后,是否有合适的处理,后续代码是否能正常执行

[问题表现]

异常未能正确定义,导致问题无法快速定位

未捕获异常,导致信息泄漏、系统处理异常

未能正确处理异常,导致后续流程错误


为了身心健康,文中的鸡肋处,请自行屏蔽。

相关文章

  • 测试人员代码走查基础要点

    代码走查,是测试人员了解代码逻辑,进行测试设计的重要环节。并且有很多bug并非需要到运行程序进行测试才能发...

  • 测试如何进行代码走查?

    (1)测试为什么要做代码走查?测试真的需要做代码走查么? 话说开发同学进行代码走查是因为把缺陷扼杀在摇篮里,那测试...

  • 关于代码走查和代码审查

    代码走查和代码审查是白盒测试方法中的2种。 代码走查: 从参加人员来说,应该是项目的整体参与者,如果项目太大,整体...

  • 软件测试扫盲【教科书级】

    按测试技术划分 黑盒测试、白盒测试、灰盒测试 被测试对象是否运行 动态测试、静态测试 (文档检查、代码走查) 按不...

  • 代码走查

    目标:体系架构/设计:单一职责原则:每个类应该有且只有一个职责。更甚于此,我一般会将此原则应用于方法之上。对于某个...

  • 作为一个软件测试员,是不是需要懂编程代码呢?正确答案告诉你

    软件测试人员需要懂代码吗?如果软件测试人员会代码,那还有软件开发人员的事吗?既能测试又能敲代码的人是不是很牛...

  • 测试人员基础

    网络传输的知识 一、Cache 1、浏览器缓存 浏览器(IE,Chrome,Firefox)都有缓存设置选项,它可...

  • 软件测试员一定需要懂编程代码吗?

    软件测试人员需要懂代码吗?如果软件测试人员会代码,那还有软件开发人员的事吗?既能测试又能敲代码的人是不是很牛? 不...

  • 20170718-两段代码的异同

    前两天测试代码,测试人员告诉我,以下的代码2写法不规范 按照测试人员的说法,这里的代码1是对的,代码2不对,当时就...

  • 代码走查究竟该关注什么(二)

    上一篇讲到代码走查是为了写出更好的代码,提到了“望、闻、问、切”四种走查姿势,这次我们聊一聊代码走查的“周边”。 ...

网友评论

    本文标题:测试人员代码走查基础要点

    本文链接:https://www.haomeiwen.com/subject/jwaxwttx.html