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

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

我相信大家都是慢慢成长过来的。但时间久了,就比如说一年这个时间点,我们不难发现,我们和同时进来的开发同事的差别在哪里,我们对程序的代码逻辑会比较陌生。当然,毕竟两个职位的职能是不一样的。但是,这里我还是想说,测试其实也是很有必要掌握代码,理解程序的代码逻辑。我也经常和身边的测试小伙伴强调,平时测修改单的时候,也可以稍微关注下开发人员修改的代码。

上周周末,我和部门的测试经理一起对HT客户的现场问题做了一次复现和测试。这里先说明一下,这个问题其实在之前的版本上已经发布过临时补丁进行修正,但近期又反馈回来说没有修正正确。

OK,那我先描述一下问题。具体如下,系统中存在一张记录持仓的表TUNITSTOCK,由于这张表存在过多的0持仓的数据,影响了客户的使用,在某次修 改中增加了一个功能“日初清除0持仓”,而这个功能在零持仓的数据达到1000条以上时,会重建TUNITSTOCK的一个唯一索引。问题就出现在这里, 之前发布的临时补丁,在重建索引时,只是产生了一个NORMAL类型的索引,而不是UNIQUE类型的索引。而程序又正好莫名其妙的产生了一条原本不会产生的错误数据(原先不会产生,是因为UNIQUE类型的索引),这就导致了日终归档的时候发生了主键冲突。

那作为测试,首先第一点肯定是要重现问题了。这里也就会引申出“测试掌握代码必要性”。

第一点:提升测试效率

有时候,客户返回的信息并不是很完善,根据客户提供的信息我们不一定能成功复现出问题。但如果了解代码逻辑,就像这个清除0持仓的功能,我们知道它是在一个存储过程中,我们便会去找它进入“清除0持仓,重建索引”的匹配条件。这时候找到匹配条件,只要将测试数据一一匹配就能重现问题。

并且掌握代码,就比如一些简单的sql。也非常有利于批量测试数据的生成。依旧是这个例子,我们需要有1000以上的0持仓,为了不使TUNITSTOCK产生主键冲突,需要某些字段不一致,但又要和基础数据相互匹配。这时候笛卡尔积的运用,select t.vc_inter_code,a.* from tstockinfo t,tunitstock a where t.c_market_no=‘1‘ and t.c_stock_type in (‘1‘,‘2‘,‘3‘)

and a.c_market_no=‘1‘ and a.l=1 and a.l_unit_id=15;便可以很好的解决问题。所以有时候小学问加小技巧是十分管用的。

测试数据准备完成之后,就是要走流程使程序按照理想的预设出错。但对于当时我们测试的软件,流程非常耗时。如果按部就班走流程,就需要好几个小时,如果再加上后续测试修复,那真的可以睡在公司了。

所以,在知道程序一些实现逻辑上,我们将很多不影响这个测试的流程全部关闭。力求最快重现问题。并且我们知道这个是因为某一个存储过程造成的,我们也就直接在PLSQL中 test了这个存储过程,顺利的重现了问题。

第二点:定位问题

对于一些简单的问题,我相信在掌握了代码之后,我们自己在通过日志跟代码也是可以很轻易的定位到代码的错误地方。而不是,只是将错误的截图和日志直接扔给开发,让他们去排查。长而久之,会让他们觉得随便从一个地方拉一个人过来都是可以进行软件测试行业的。

这里我依旧以上面的例子为例,像上面描述,当0持仓达到了1000以上时,索引会重建。错误版本是从unique重建成为了normal。当我们把正确的代码替换后,原本的就是unique,重建后还是unique类型的索引,这个时候我们必须要自己确定这个索引是没有重建前的,还是重建后的。

这段代码开发并没有进行日志的输出,那为了确定程序是否修正,我们就必须要自己进行日志打印。这时候掌握一点程序日志输出的代码就很好用了。(之前测试人员就是因为观察到清除0持仓的前后索引类型都是unique,而没有关注到这个unique是否是重建的,而导致再次遗漏)。

第三点:清晰程序变动

其实这个0持仓清除,重建索引的修改是非常简单的。就是把原先create index修改成了create unique index。如果我们测试时候有关注代码的变动,就会发现修改的代码中还是没有添加unique这个关键字段,那我相信这个问题就不会再一次的遗漏出去。

时常关注修改单代码的,也可以很好的避免测试没有测试全面,出现遗漏的情况。也可以预防某些开发不正规递交修改单,修改单描述修改A,但代码其实修改了A和B。

第四点:提升自我能力和测试形象

经常性的关注程序代码逻辑,可以有效地提高自身代码水平和思维方式。为之后性能测试,安全测试提供支撑,例如自己写写测试工具等。

当有了比较好的代码能力,和开发沟通会更加顺畅,理解开发的设计和实现。

当然掌握代码不只以上说的几点好处,总之就是一句话,掌握代码对于测试如虎添翼。

作者:卢凯

作者:恒生开发者社区
链接:http://www.jianshu.com/p/26f7c088bdb8
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间: 2024-10-29 19:11:12

测试人员掌握代码的重要性的相关文章

测试人员为什么要深入到项目实现中去?

(“马蜂窝技术”公众号原创内容,ID: mfwtech) 一个项目从需求确定到最后上线,通常来说流程是这样的: 「测试」作为一个项目质量保证角色,在上面的整个流程中均有参与.而用例设计.项目测试环节更像测试的主场,PRD 的评审测试人员也会发表很多自己的观点,对项目的技术评审虽然测试人员也有参与,但也不如前两个环节的参与程度深. 其实,一个优秀的测试人员应该深入到项目的每一个环节中去发现问题,提出自己的观点,保证项目质量.那么要真正深入到项目实现中,测试应该怎么做呢? 一.Review 接口定义

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

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

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

测试人员代码走查基础要点 代码走查,是测试人员了解代码逻辑,进行测试设计的重要环节.并且有很多bug并非需要到运行程序进行测试才能发现.通过合理的代码走查方法能提前发现相当多的BUG.除常见的业务逻辑与程序逻辑不符外,本文收集了在过往工作中的经常能发现BUG的走查要点,以供参考. 走查要点:一段代码存在多个副本 [释义] 相同的代码段,在程序的不同地方复制和粘贴. 甚至同一项目,复制出多个副本. [问题表现] 修改好的bug,一直反复出现. 由于存在多个副本,如果代码段中有bug,就需要修复多个

[转]译文:五个测试人员必须具有的优点(软件测试人员需要转换视角)

出处:CHJ's BLOG 原文:Top 5 Things a Tester Must Have to Excel (And the Software Tester’s Shifting Perspectives) 作者:Ratha Jegatheson 在软件测试领域工作10年中,我曾有幸直接见证这个领域在相对短时间内跨越性的改变.在我刚进入这个领域的时候,除去软件开发周期里面所说的,大家刚开始真正意识到软件测试的重要性和把它从“应该做”提升到“必须做”. 在过去,由于会产生额外的成本,软件测

作为一个测试人员,在你提出问题之前请先想想如下问题

之前架构师米洛阐述了测试员报BUG的礼仪,并且引申出一个问题,该如何和程序员交往.其实,程序员群体,甚至推而广之的工程师群体,并没有那么的脾气大,对待测试人员还是挺客气的. 根据架构师米洛多年的开发经验,工程师还是希望通过解决一个接着一个的问题,来提现自己的价值.就像LOL中的推塔一样. 其实很多测试人员并不知道,出现问题之后,找程序员之前,该确定那些个问题,更能让自己的问题得到快速解决. 这里告诉测试员尤其是MM,你提供的信息越是多,越是全,程序员GG越是会觉得问题很容易重现,就会先去解决.当

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来

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

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

你问我答,及测试人员方向发展

大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼.遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路.首发于个人公众号[测试架构师] 原文如下: 做开发好还是测试好?如果做测试怎么入门? 既然还有人问这样的问题,我想应该还有部分人可能会有这样的疑问,我并不觉得这问题问的多么可笑,可能对于刚进入职场之前的我们也会有这样的疑问.我个人觉得,首先,应该去了解开发和测试需要做的事情,使用到的技能,在问这些问题之前有没有去主动的了解和学习

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

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