再谈软件测试-工作感悟

发表于:2012-01-16来源:博客园作者:一米阳光说测试点击数: 标签:软件测试
软件测试,一个即将要崛起的行业,却也是一个充满着争议性的行业。谈到崛起,是因为我们发现,我们身边的客户开始越来越关注软件的体验性了,如果你的软件还有功能问题,他们可就不那么待见你了。同样,在国内的公司也是越来越开始重视软件测试,这几年,测试

  软件测试,一个即将要崛起的行业,却也是一个充满着争议性的行业。谈到崛起,是因为我们发现,我们身边的客户开始越来越关注软件的体验性了,如果你的软件还有功能问题,他们可就不那么待见你了。同样,在国内的公司也是越来越开始重视软件测试,这几年,测试的职位需求量越来越多了,各种外包、培训机构,争先恐后而至~说起争议性,那就要从门槛来说了,毕竟,所谓软件测试,也是IT行业中一个技术领域,只不过,在国内,大家并不这么认为,所以专业不专业,先进去就再说!我最近在群里看一个非计算机专业同学,咨询各位关于软件测试这个行业的发展前景,当然有人质疑他非技术专业出身,可能发展会有瓶颈,但他的回应是,没见那些计算机专业出身的同学学得怎么样啊~并且他个人表示,5个月之后,他就可以跟各位一样进入这个领域,因为他决定去参加软件测试培训。当然泼冷水的人有很多,但也不乏还是有很多支持的,认为完全没问题。通过对行业一些现象的分析,作为这个行业中的一分子,我们似乎更关心,我们未来的发展方向,我们的核心优势在哪儿,我们的竞争压力又在哪儿?进入这个行业的人众说纷纭,有人说是为了热爱测试,有人说了,因为开发能力不行,只能退一步而行之,但至少是计算机专业出身的。测试并不是一个注重专业的领域,其实我是想跟那位同学建议,其实你可以选择去培训开发,或许这样你的技术之路会走得更远。就像这个行业流行的一种说法,如果你做了几年资深开发,你才有资格成为一名专业的测试人员。此言一语道明,对于一名优秀测试人员的技术能力要求远胜开发人员,只是我们身边这样的人太少而已。

  谈到测试工作定位,通过这几年的工作,开始不断的感悟,在此我想从这些感悟中对当前测试的三阶段段来分别谈一谈:

  一、测试是为了发现问题

  这个观点一开始就是指引着我们工作的方向,甚至我们会为了发现更多的问题而感到愉悦,就像开发人员完成一个功能开发一样,有一种成就感,所以测试的成就感就是给开发找茬。所以我们每天都会关注JIRAbug量是否在增长,可能包括你的主管都会对bug的量来评定绩效考核,当然这都必须,因为测试就这么点增长点而已。

  二、测试是为了定位问题

  对于这样的测试人员,开发就很喜欢,因为省去了他们很多定位问题的时间,当然这样就对于测试人员的要求就要高了。定位问题从测试角度来看,那就是两个过程,首先你要发现问题,比如一个保存功能,你测试下来发现保存失败,这个时候你就会将此问题提交到缺陷管理工具上,并告知开发,如果仅此而已,那开发就需要去查找这个问题出现原因,首先保存失败可能有几种情况,有可能是数据没有保存到数据库中,前天提示保存失败;另外可能是数据保存到数据库了,但没有传回到前台,而提示失败;还有可能是返回值不对,导致提示信息出现提示错误,等等~想想开发去这样定位的问题,对于时间成本的控制,他们肯定就比较不爽了,如果这样的问题不断暴涨,那开发也会崩溃的。那如果测试人员去完成这样的一个工作,直接把问题定位到,比如产生此问题的原因是由于数据没有被保存到数据库中而导致的提示保存失败,这个时候开发一看到bug的描述就明白了,原来是因为我的保存方法有问题所导致,这样他就很快可以解决问题了,同样他也会对你的工作而感到欣慰!当然,这里只是举一个很简单的例子,目的是为了说明,我们如何提升我们自己的能力,定位问题是测试人员应该具备的能力。

  三、测试是为发现并解决问题

  说到测试人员去解决问题,可能大多数人觉得是不可思议的事情。所以这里就需要去领悟前面提到的依据话:如果做过几年资深的开发人员,你才有资格成为一名专业的测试人员。对于开发来说,并不是所有的bug都需要修复的;而对于测试来说,也并不是所有的bug都是开发去解决的。这里也来举例说明下:当你在测试一段数据查询效率的问题时,通过一番折腾,你发现你找到了问题,并可以很自信的告诉开发人员,你的sql语句效率有问题,当你数据库中有5万条记录时,查询最后一条记录,它就要轮询5万多行才能找到,这样导致最终的查询效率就非常低下了,加入数据到几百万条时,就需要轮询几百万行,这个性能是几乎不能想象的。所以这个时候,你告诉开发人员这样的结果和论证,并告知他需要优化的几点意见,比如更新表结构,增加索引机制;另外优化配置文件,比如修改缓存的大小等等。最后开发人员会思考,要么指派一名专业的数据库DBA来完成优化,要么就自己解决,不过不是所有的公司都有专职DBA的,所以如果开发人员对数据库优化也没有太多的经验,那他解决的速度还不定有测试人员快~所以这样的问题衡量下来,发现只能测试人员自己去解决,边优化的同时,还可以边测试。当然,这里想表达的观点就是,测试人员不一定在某个技术领域是大牛,但你的技术面必须要广,对于开发人员来说,只要能解决问题,才称得上是一名专业的测试人员。

  通过对如上测试的三个阶段工作解析,就可以很明确自己属于哪个阶段,未来努力的方向也就清晰了。

  当然,如果你还认可测试是一门技术活儿的话,那就不要再为了测试人员是否需要学习编程这样的问题而纠结了,因为这是一个很迂腐的问题。未来的测试行业肯定是要趋于国际化标准了,而且未来将会有越来越多的资深开发转向测试发展,不妨可以思考一下,我们的优势在哪儿?前段时间了解到淘宝关于性能测试工程师的要求,他们非常需要那些做过资深的开发人员有意向转性能测试方向的人才。因为人家对所谓专业出身的测试人员已经失去了希望,很多工作不是一个专业测试人员真正所能够完成的,没有深厚的开发功底,对架构和细节的熟悉,不可能完成一些重量级测试分析工作的。

原文转自:http://www.ltesting.net