软件测试小白必读

Posted cnb_yangwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试小白必读相关的知识,希望对你有一定的参考价值。

软件测试作为一个行业繁荣发展,也只是近四五年的事情,相关培训也是雨后春笋,自2011年入行,看过太多人转行,看过一些人带着未知想入行,真真是围城里的人想出去,围城外的人想进来。如果去网络上搜索相关信息,大都说,测试是个门槛低的行业,我曾经认同这个说法,现在对这个说法带保留意见,不过,每次别人问我在做什么的时候,我的回答一成不变:玩儿手机的。

这么说一点儿都没有逗你的意思,2011年的时候,诺基亚虽已迟暮,但还顽强的支撑着很多团队的运转,我从那个时候开始手机系统的测试,后来到android app的测试,然后就一直是app的测试,这两种测试,都是每天对着手机各种玩,目的就是把目标玩儿死。所以针对我理解的软件测试,作为QA,我简单的闲聊下。我先来讲两个例子。

第一个,有个朋友的朋友本来的行业与IT毫不沾边,非常唾弃那些动不动就拽英语的人,觉得别人中汉交杂的说话是故意拽,当然,他自己的英文貌似很差。因为自己的行业经常加班,工资貌似在7-8K的样子,觉得暗无天日,就辞了职,去报了个软件测试培训班,说是包就业的,朋友知道我是做测试的,过来咨询我的意见,但他的目的,主要是打听我的工资水平,而不是软件测试工程师的工作内容与必备技能,我非常真诚的听了下这个朋友的朋友的具体情况,然后得出了个结论,他目前职业发展到了迷茫期和瓶颈期,而且听说做IT的工资都很高,因为听说,就像海市蜃楼在你眼前,迷茫的现有工作如魔鬼一样在后面推你,稀里糊涂的你就往前走了。但是,第一,每个职业都有自己的瓶颈。第二,对于将要入行的职业一无所知就扑进来,我觉得不是勇气。第三,我来说下行业里普遍的一些现象/概念。

一,     我们确实经常会中英文交杂的说话,我们会经常说,“这个bug很难repro,repro rate为30%”,“可以跟我说下这个bug的root cause嘛?”“明天之前我准备好test case”,我们没在炫耀什么,只是很多词语确实只有那个英文单词能确切的表达这个意思。我说的这种情况是中国团队合作的情况。如果你处于外国团队合作的情况,那么对你的听说能力就会有更高的要求,不过他们都很nice,跟中国的工作人员沟通,在不了解你英文水平的情况下都会特意放慢语速。所以你看,“nice”这个词我真的不知道该用哪个词来代替,你想说“很好”?但其实味道挺不一样的。

二,     如果你的听说很差,也一定要有一定的读写能力,因为可能你写报告要用英文,即使不写报告,提交bug也要用英文,即使不用英文提交bug,一些文档你还是要看的吧?比如http://developer.android.com/index.html你说你可以看翻译的?我也不知道该怎么回答,我身边的大牛都是能直接看原文书籍和文档的,在我看来,QA尤其需要这项技能,因为测试技术在中国发展的很缓慢,中国顶尖的测试人才也许很多,但出来的书籍,参考文档,先进的还是国外的多些。阅读原文的能力,是很重要的一点。

三,     众人眼中IT人才普遍工资高,这一点我还真不知道。仅就行业内来说,你的工资水平是跟你的个人能力严格挂钩的。不挂钩的情况分几种,第一,企业急招,但是实在招不到人,所以**招人,据说这种都是创业型小公司为了赶项目,会给应聘者超出能力范围的薪资,但项目结束后呢?(这只是我的了解,并没有实例)第二,企业急召,并且你的能力与职业有相对较高的匹配度。第三,HR和面试你的人要么是土豪,要么是傻X。所以,在了解市场行情,个人能力的前提下你再跟别人谈钱。

四,     软件测试也叫QA,我是玩儿手机的,但不是所有QA都是玩手机的。还有一种叫SDET也是QA的一种。QA又因为工作内容不同而有不同的工种,PC端和客户端,他俩分别有同工种的仔仔。黑盒,白盒,自动化,性能等等。这些概念性的知识是你入行前就需要大致了解和准备的。每个工种都可以说是不同的行业,代表着你以后的职业路径,所以,入行需谨慎。

五,     QA也是有职业发展瓶颈的,就像女汉子也需要谈恋爱一样正常。而遇到瓶颈后是逃避还是寻找答案,跟行业没关系,跟人有关系。

六,     外包这个词你要知道,典型的几个IT外包公司,文思海辉,博彦,软通动力。这个词当时我怎么都理解不了,后来在外包公司待了两年,才切身体会到。(哎,笨人没的医)通俗点说,A(雇主)公司把一部分活给B(外包公司)公司,你签约B公司,但干的是A公司项目的活。外包又分两种,一种是外派到A公司去,另一种是公司内部有个团队,在B公司里面做这个活儿。外包的话有些人很排斥,在我看来倒是各有利弊。如果你想进入这个行业,但是不能直接和一些大牛公司牵手,那借助外包就会是一个很好的平台。而对于新人来说,平台很重要。这块要展开来说的话也可以但开个题了,暂且点到为止。

七,     沟通。对于开发,很多人的固有印象是每天埋头写代码,对于测试呢?其实无论开发,测试,都不是每天埋头写代码的。我们每天话30%~70%的精力去沟通,沟通需求,沟通repro step,沟通测试结果,修复方法……

第二个例子,遇到的新人,聪明,高EQ,高IQ,就是因为什么都高,自己没办法低下来。然后自然而然的衍生出很多问题。而我的另一个朋友,同样高EQ,高IQ,还是个大美女,但态度放的很低,再加上元认知能力强悍,毅力强悍,能力自然跟的上。同样双高的人,但她们的距离太远了,这个距离是态度。我可以接受你不聪明,可以接受你效率低,我甚至可以接受你偶尔的懒散,但我的底线是你对工作的态度,我的最低期望是可以把最简单的工作放心的交给你。我想,态度这个问题不只是IT这个行业,应该是通用的。你可以不喜欢,但你得认真。就像有人跟你表白,你可以拒绝或接受,拒绝请利落,接受请认真。

这个引子貌似有点儿长而啰嗦,我想说的是什么呢?入行。

如果你打算进入这个行业,那有些概念是你需要清楚的。

  1. 软件测试的概念
  2. 软件测试的分类
  3. 软件测试的工作流程
  4. 软件测试的测试方法分类
  5. bug的定义
  6. bug的生命周期
  7. 测试策略的概念
  8. 软件测试常用的工具有哪些
  9. 哪些技术是必备的?哪些是辅助的?

还有一些软技能是你需要具备的:

  1. 沟通能力
  2. 自我驱动力
  3. 学习能力
  4. 快速的适应能力
  5. 责任心
  6. 态度

可能远远不止这些,但你连这些都不知道,那你选择入行一定是过于鲁莽了。知道不一定是让你熟练掌握,你知道有这个概念就行了,等你实际工作了,遇到你就会对它有更深远的理解。这是我最近才总结出来的,温故知新,工作5年后重新去看那些基本概念,一些新的理解会冒出来。

那接下来说下转行。从事软件测试后转行的有很多,有转成产品经理的,项目经理,UI设计,交互设计,开发,还有跟IT毫不相关的职业。有工作10多年后转的,有工作1,2年后转的,有遇到瓶颈转的,有因为职业路径规划转的。而我遇到最多的,是QA转产品经理,以及QA转开发测试。如果是行业内的转,你要知道,不同的行业,不止需要的是该行业的专业技能,还有思维方式。就像开发的思维方式是创造,测试的思维方式则是破坏。在我看来,这个是比技能更重要的转变。写到这突然觉得针对转行这个话题,我没啥能说的。

第一次写跟工作相关的文档,还有稍许不适,如果你读的云里雾里,就当坐了一圈过山车。( via echohappy521)


软件测试新人需要及时掌握哪些技能?

问题描述:作为一个刚进入软件测试行业的新人,哪些技能是最需要及时掌握的?

精彩答案:

会员 平凡子 :

  测试新人,哪些技能是及时掌握的?

  1、讨论之个议题之前,我们先明确测试新人为什么需要掌握一些技能。

  2、作为测试新人,如果开始就是达人什么都会什么都懂,也就没什么技能需要掌握了。

  3、之所以需要掌握相关技能是因为:

  A、测试新人对业务,应用程序,特殊工具,日常流程不熟悉,千头万绪不知道从哪里开始?

  B、有些测试项目需要背景知识,有些需要分析技能、有些需要编程技能、有些需要自动化测试能力、有些需要数据库知识、有些专业业务技能。自己可能以前未接触过!

  C、团队和公司文化的不熟悉,周围都是陌生人、自己是否会被很快接受、勾通是否畅通、同事是否友好、领导是否关心。

  D、团队分工问题,你处于哪个组,你的职责是什么,你会跟谁合作?相应的就需要学习与自己职责有关的技术,知识。

  4、所以,关于测试新人及时掌握什么技能,和以上几个方面都有很大的联系,现总结如下:

  A、作为测试新人,肯定是好多东西都不懂,不懂就要学和问,学和问就要产生沟通,所以必要的沟通能力是首要掌握的。

  B、由于各行各行业测试对象各自都有其特殊性,掌握业务技术基础,知道测试对象的工作原理及应用。

  如果然测试对象有什么作用,是怎么工作的都不清楚,那就谈不上测试,所以业务能力不得不掌握。

  C、业务知识、技术、能力达到标准后,那就需要对业务对象进行测试,那怎么测?为什么这样测?

  测试有哪些方法,怎么测更全面、更迅速。这样测试技术,测试流程,测试理论就不能不掌握。

  C、测试技术、测试方法的应用又离不开相关工具的辅助,那么测试工具的应用能力也要提上日程,至于掌握什么测试工具,那就根据岗位职责、业务特征来决定了。

  D、随着测试技术、测试方法、测试工具的应用,以及测试层次的加深,这个时候就不再是针对因研发马虎,未自检的、简易的BUG进行测试,而是从底层设计开发方面找出设计、研发的漏洞,找出研发本身能力未能发现和解决的漏洞。那么要看懂研发的程序, 开发模型的编程方面的技能又需要掌握。

  E、关于掌握数据库的技能:

  · 如果测试对象是和数据库紧密联系的,那肯定需要掌握;

  · 如果测试对象需要大量的测试数据;

  那么测试数据的生成,自动化工具的数据连接,也需要掌握必要的数据库能力;


 初级测试工程师如何得到快速提升和认可?

问题描述:初级测试工程师或新进入一家公司从事测试工作的人员,如何快速得到提升和认可?

精彩答案:

会员 yolander :

  题目写的非常清楚,角色定位为初级测试工程师,那就来看看对于测试新手入行,我们都看重他(她)的哪些方面吧

  首先,从个人素质来看,我喜欢的测试新人要具备:

  1、快速的学习能力

  ——这也是我最看重的一点,作为测试人员也好,开发人员也好,同为技术岗位,如果缺乏学习能力,那么他将来的发展肯定是十分有限的,而对测试岗位来说,快速的学习更显得尤为重要,因为作为入门级的开发新手,或许只需要看懂设计文档,能够使用开发工具进行编码就可以了,但是测试人员则不同,除了编码(更多的是体现在测试脚本的开发上),更需要深入掌握系统知识,业务能力上要比研发人员高一大块,这样在将来的工作中,提出的问题也更有说服力,更能够被开发人员所接受

  2、细致认真的工作态度

  ——很多人都将测试人员比喻为“挑毛病的”,这可能是一句戏言,但也体现了作为测试人员的一种定位,我们从事了这样的行业,随时都在给开发人员编写的程序找bug,那么我们自己的工作是否也能够被人找出bug来呢?如果缺乏细致认真的工作态度,提交个问题报告也会错别字百出,甚至漏洞一堆,那么怎么能够让人相信我们的工作是有效的呢?要做好测试工作,那么首先要在工作中竖立自己的威信,但这种威信,并不是靠你的上级授权的,更多是通过自己的日常工作积累,给大家留下的深刻印象,共同认定为你是这个行业中的权威才行

  3、充沛的精力

  ——我很喜欢与有着充沛精力的测试人员一起工作,测试是一门需要足够耐心的行业,虽然自动测试技术的兴起,已经能够减少我们工作中一些简单繁琐的重复性劳动,但实践经验来看,测试并不能完全杜绝这种单调的手动测试工作,仍然需要大量手动测试的执行,所以就需要我们测试工程师具备自我激励的能力,能够在这样的乏味工作中找到自己的兴奋点,并且能用自己的充沛的热情去感染别人

  4、高度的责任心

  ——测试是个良心活,投入时间、执行次数等度量项,都无法真正与测试出的问题数成正比,如果缺乏高度的责任心,在测试工作中“偷懒”(请原谅我用了这个词),确实是一个极大的资源浪费,可能在短时间内很难被发现,但是逐渐成熟起来的测试过程、度量与统计学、以及标准化的管理办法,都会逐渐淘汰掉这样的测试人员,所以请各位希望在测试岗位上有所发展的新人们,一定要在入行伊始,就建立起自己的责任心吧,将责任变为习惯,一定会让你的步伐走的越来越稳健

  5、良好的沟通能力

  ——测试工作有时是需要跟多个环节打交道的,有时是开发人员,有时是项目经理,还有时,甚至是直接面对客户,所以,作为测试人员的能力要求中,沟通能力也很重要,而且,事实证明,有着很好的沟通能力的测试工程师,他报告的问题在开发人员中的接受度也是相对较高的

  以上,是我对一个测试新手的考量指标,如果是作为测试工程师、高级测试工程师等等,可能要求的方面也会有所不同,但就作为新人来讲,是否适合测试工作的岗位,我会更看重上面几条标准

会员 莫道桑榆晚 :

  一:端正心态

  测试人员是孤独的,寂寞的。作为测试人员,我们也许干的工作比开发还要繁锁,更加枯燥更加乏味,重复的测试使我们麻木,工作强度和压力给我们测试人员背负着三座大山,而我们的收入却无法与开发拼比?为什么?这就是心态。做任何一行工作,都会遇到不公平。但为什么要去跟别人比呢,只要自己有提高,就是好的。作为测试初级工程师,我们无法与资深的专家比,无法与开发比,但是我们必须得端正心态。

  二:正确定位

  现实中很多测试人员是由于不能从事其它工作才从事测试的,因而工作中也是不断地抱怨待遇、团队环境等不能满足自己的要求。在此建议测试工程师,如果选择了这个行业,就应该认真地对待工作,抱怨永远解决不了问题。作为软件测试工程师只有认真分析自己的行业,才可以有更好的职业化发展,否则还不如换其他的工作。既然选择了目前地位有些低的测试工作,就应该踏实的做好,不要刚进这家公司,发现那家更好马上就跳。


 如何能得到一些国内或国外大公司的测试职位?

问题描述:如何能得到一些国内或国外大公司的测试职位?

精彩答案:

会员 戒情人 :

  我来简单谈谈自己的认识吧:

  1. 业务。如果你在一个行业做了多年,对这个行业的业务非常熟悉了,这绝对是一个大优势。公司无论国内国外,无论大公司小公司,在招聘时都会注明有相关行业经验优先。行业经验不是一朝一夕就能得到的,是一个长时间的积累过程。你有相关的行业经验,工作就很容易上手,而且做出成绩。有些公司招人时,对有相关的行业经验这一条是必须条件。比如复杂业务的电信行业(当然不是每个公司都是)。

  2. 学历。出身很重要的。虽然很多公司都表明更看中能力,但其实他们还是很看重你的学历的。重点大学或者研究生、博士,更容易获得好公司的青睐。

  3. 技术。大公司做测试,不单单要求能做黑盒测试,如果你擅长自动化,擅长编码,就自然而然的增加了自己的优势。

  4. 英语。好的公司都是很看重英语能力的,因为很多帮助文档,技术文档都是英文的。你英文不好,公司不会相信你有很好的能力和潜力。

会员 yolander :

  我觉得六楼总结的四条已经基本概括了用人单位的要求,比如:

  1.学历——这可能是一些大公司的敲门砖了,因为无论去哪家公司面试,首先需要接触的都是HR部门,而对于HR来说,好的学历几乎等同于你的个人素质,他们都是非专业人员,无法在短时间内判断你的能力高低,所以学历就变成了唯一的衡量标准。

  2.业务能力(行业知识)——这个要看你从事的是哪些行业软件的测试,如果是通用软件的,那么业务就显得不是特别的关键了,但如果是专业软件,尤其是业务流程复杂的,专业性越强,对业务能力的要求也就越高,如果能够在相关行业有一定的积累,那么被聘用的可能性也会较大,这个通常会通过你的工作经历和从业时间来判断,有时用人部门也会通过面谈等方式进行侧面了解,而且很多时候它可以作为学历欠缺方面的弥补,前提时,你要先给自己争取到面试的机会。

  3.技术能力(测试专业)——主要是指测试相关的专业技能,比如测试设计、测试开发,这个是可以通过一些问卷,或者面试来进行考核的,同时如果具备了测试策划、测试管理、质量管理项目管理配置管理等相关经验那就更好了,从我罗列出来的内容也可以看出,倒不一定是有开发经验,才能做好测试,不过如果在考核过程中适当的表现出自己的细致认真的一面,也还是有所进益的。

  4.语言能力——这个也跟从事的行业相关,如果是欧美日韩等合资公司,或者做对外业务较多的国内公司,是会对语言能力有一定的要求的,但如果是只做国内业务的公司,据我所知,国内也有不少IT公司是做国内行业解决方案的,这些公司就不会对语言能力做太多的要求。

  以上要求如果全都具备了,那么剩下的可能就是等待机遇了吧。(原帖地址:http://bbs.51testing.com/thread-173771-1-2.html


 

以上是关于软件测试小白必读的主要内容,如果未能解决你的问题,请参考以下文章

Python小白的数学建模课-01.新手必读

Linux命令执行的过程(小白必读)

同行说技术Android从小白到大神必读资料汇总

同行说技术Android程序员从小白到大神必读资料汇总

同行说技术Android程序员从小白到大神必读资料汇总

小白必读神经网络原理