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

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

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

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

  [释义]

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

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

  [问题表现]

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

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

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

  [释义]

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

  [问题表现]

  空指针异常NullPointerException

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

  [释义]

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

  [问题表现]

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

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

  [释义]

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

  [问题表现]

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

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

  [释义]

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

  [问题表现]

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

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

  [释义]

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

  [问题表现]

  消费者端无响应

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

  走查要点:不恰当的日志

  [释义]

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

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

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

  [问题表现]

  泄漏用户信息

  无法查错

  走查要点:查询SQL的底线

  [释义]

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

  [问题表现]

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

  走查要点:缓存

  [释义]

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

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

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

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

  [问题表现]

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

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

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

  [释义]

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

  [问题表现]

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

  走查要点:异常处理

  [释义]

  异常是否得到明确的定义

  是否有未捕获到异常

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

  [问题表现]

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

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

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

注明:以上内容摘自网络

时间: 2024-08-16 09:41:39

测试人员代码走查基础要点的相关文章

51Testing专访史亮:测试人员在国外

不久前,我接受了51Testing的访问,讨论了软件测试的一些问题.以下是全文. 1.史亮老师,作为我们51Testing的老朋友,能和我们说说您最近在忙些什么吗? 自2011年起,我加入Microsoft Office部门,参与了Microsoft Office 2013的研发,主要工作是测试Windows版本的Office产品.目前,我正参与研发下一代的Microsoft Office,主要工作是测试产品和开发测试辅助工具. 今年,我的新书<软件测试实战>问世.这本书基于一个很朴素的想法:

测试小白必备基础知识总结

什么是软件测试 软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程. 本质:软件测试是为发现软件错误而执行程序的过程. 例如场景:淘宝网用户登陆 大家都有在淘宝购物的经历吧,如果想要在淘宝进行购物,就必须登陆后才能进行. 那么能够登陆的前提是什么呢?必须是淘宝网的注册用户. 登陆的步骤是什么呢?在下图1中输入已经注册的用户名>输入已设定的密码>点击“登陆”按钮,步骤非常简单. 大家也一定会遇到过用户名和密码输入错误而无法登陆的情况,此

测试未来发展,测试人员的发展方向,测试趋势

最近在脉脉上看到某某公司斩掉测试团队啊,某某开发嘲讽测试人员啊╮(╯▽╰)╭,转个测试行业看法聊以自慰,至少现在还有碗饭吃. 测试行业的趋势有这么些: 功能测试依然存在,但是会变得越来越难找工作 功能测试不可能消失,即使Google这种高技术的公司,也依然存在功能测试,所以功能测试肯定不会消失,但是工作一定会越来越难找.国内的企业招聘都是从众心理,大家都觉得BAT的招聘是业界的方向,所以现在都开始要求测试人员必须会各种编程语言,实际上他们也不知道自己要什么,入职后也可能还是点点点,但是由于他们都

【转】测试思考——测试人员需要具备哪些素质?

之前写的文章,今天分享出来 测试人员需要具备哪些素质? 测试人员需要具备哪些技能? 软件测试知识:测试计划.测试方案.编写用例.提交bug.跟踪bug,编写测试报告 测试工具的使用 操作系统 编写代码的能力 数据库知识 业务知识.网络知识. 除了这些必备的技能,我们还需要什么样的素质呢? 一.主动沟通    过去我是做传统ERP软件的测试,因为ERP软件已经很成熟,所以他的需求文档一般也都很完善,很细致,需求变更也不会太多.所以我们完全可以按照需求文档进行测试,与开发电话沟通就OK,只要我们bu

测试人员掌握代码的重要性

在测试中心做了一年的测试,从一个对业务不熟悉的小白到能独立掌握一个两个或者更多业务:从一个连ORACLE都没有接触过,连LINUX都不知道是什么东西小白到能在平时测试时稍微写写存储过程,写写shell脚本提高测试效率.点点滴滴的成长都使得自己在测试的发展上继续保持兴趣.想想当初点开界面左点点,右点点,程序偶尔出现BUG,自己便会兴奋地记录QC,截图加日志给开发排查,当时想想可能还是蛮有成就感的,毕竟程序在自己的手中得到了提升. 我相信大家都是慢慢成长过来的.但时间久了,就比如说一年这个时间点,我

作为测试人员,如何写好优秀的测试用例

作为一名功能测试人员,最基本的要求就是能写出测试用例.一份好的用例直接反映出测试人员的思维方式和严谨性.那么我们就要想了,何写好一份测试用例,利用所写用例来测试验证产品质量呢? 写好测试用例,需要多方位的思考. 1.   测试用例设计 这是写好用例的前提,尽可能多的站在不同的角度分析问题.比如在运营维护.用户等角度来看待软件,分别针对性的设计测试用例; 2.   测试用例设计方法 这个是测试工程师必备的技能,通过项目的需要来划分测试粒度,然后设计测试用例,具体的方法可能有这些: 边界值分析法:对

单体测试书的检查要点

在系统开发中单体测试时非常重要的.特别是对于承担开发任务的公司来说,单体测试做得好的话能大大减少返工,提高效率.特别是我们的一些外包公司,可能有的项目只让你做编码和单体测试. 单体测试是质量的第一关,要做好单体测试首先要写好单体测试书.也许有的公司就没有单体测试书这回事,完全凭借员工的经验来做单体测试,这样做的风险较大. 写单体测试书虽然要花费一定时间,但写单体测试书以下几个好处. 1.在写单体测试书的时候能够更加准确地理解详细设计书甚至是要件定义. 2.写好的测试书在做review的时候能够进

关于全功能团队及测试人员的发展

这两天部门内部在讨论全功能团队的相关东西,希望后续能慢慢的实施起来.这里全功能团队的概念,简单来说就是希望能够减少团队的规模,加快产品交付的节奏,类似于敏捷开发模式中的小步快跑,能够频繁的有版本上线运行.总体方向来说是好的,这套东西很多互联网公司也玩的很顺畅,但是在华为,最起码在我所在的部门内,还非常缺乏这方面的积累和氛围.整个研发的运作模式和管理层都是从传统的运营商转型过来的,团队庞大,低效,笨重...等等一系列的缺点. 关于这种团队模式的优缺点,如何根据自身的项目实际来运作,以及在这种模式下

测试人员内功心法

转眼间2017已过了十天,中国传统的新年也马上来临.目前大家的状态应该是人在曹营心在汉,早想着回家过年的事情了吧?抢票,参加年会,中奖的高兴请客,没有中奖的替同事高兴,反正是不亦乐乎!由于最近一段时间比较忙,也没有写太多的东西出来分享给大家.不过在这新年即将到来之际,还是感觉应该写点儿东西的. 往期我分享的博文一般以技术偏多,要么就是一些儿个人心得,具有指导性的文章:不过这些都是比较具体的套路,就像武学上的刀法,剑法,棍法什么的,其实最重要的心法,我一直没有涉及过.原因是什么呢?中国人每个人都有