做软件测试有几年了,发现大家对测试还是有很大的偏见和误检的,包括QA自身也对测试有很深的误解,这里把自己对测试的理解和感悟记录一下。

  软件测试在一般人看来技术含量是比较低的,就是点点鼠标或者做一些很基础,很枯燥的事情。一般都是一些技术水平不高的人做不了开发或者算法的工作,迫不得已才去做的测试。

  首先必须承认,有一部分测试工作确实是很枯燥和繁琐的,但是要想把测试工作做好还正不是一件容易的事情。工作时间越久,越觉得测试就像是销售,门槛不高,好多人都可以做,测试开发的要求可能会更高一点。但是要想把测试工作做好,就像是要想当一个好的销售,还是很困难的。

  我认为测试是需要一些天分的,而且测试越往后面走,对一些软技能的要求就越高。拿开发或者算法来说,他们其实对硬技能的要求很高,具体来说就是代码的熟练程度、对各种模型的理解程度等。这部分硬技能认真学习的话,好多人还是能够掌握这些技能的。但是对于测试来说,一些测试的理论和方法、测试用例的设计方法等属于测试的硬技能,这些硬技能相对于开发的硬技能来说,难度并不高,更容易学习。但是怎么在工作中很好的应用这些知识就不容易了。就拿测试用例的设计来说,通常都会说等价类划分、边界值、判定表等,但是在实际应用中,我们的项目和产品是面对的是实际的使用场景,这些场景通常很复杂以至于很难直接套用这些方法。比如人脸识别算法,背景可能是影响正确率的一个因素,如果对背景进行等价类划分,可以分为简单背景和复杂背景,问题在于显示世界中复杂背景千差外别,不同的复杂背景比如花草树木是一种、商场是一种、街道是一种,这些都是复杂背景,他们属于同一类,但是他们对算法的影响是不一致的,这样就没办法用简单的等价类划分去做。有的人会说在复杂背景的基础上再进行划分,那么就会出现类别越来越多的情况,最后会出现类别太多导致类别的划分意义已经不大了。

  这里所讨论的测试的软技能主要是指思考力、对琐碎有繁多事情的处理能力、沟通能力、主动性、责任心、创新等,这里分别进行说明。

  思考力:说白了就是要多思考,勤思考。这个也没有一个很好的考察方法,但是在实际工作中很重要,比如说在进行测试时,多去想想怎么才能做得更好,怎么才能提高效率,是否需要自动化、怎么才能提高质量,怎样测试才能暴露更多的问题。举个例子,之前我在测试一个项目的时候,因为使用场景是在室外,室外的环境千差万别,做不到所有的场景都覆盖。这样就会有很多场景被遗漏,然后就改变了测试策略,每天不止在办公室测试(因为办公室场景就那么多),会把app装在手机上,每天上下班,周末出去都会用一下,这样就显著增加了测试的场景。后面为了在更大范围内测试,就开发了微信小程序,这样我们组的小伙伴就都可以随时随地测试,既增加了手机的覆盖率,也更明显的增加了测试场景。不过思考力是一个长期训练的过程,不过要尽早培养起勤思考、多思考的习惯,时间长了,自然就会有很多想法。

  对琐碎有繁多事情的处理能力:对开发或者算法来说,一段时间内可能在集中精力进行一个项目,但是QA有些情况会同时测试多个项目,还经常会有一些额外的测试工作的支持,素材采集的支持等,当好多事情一起涌来的时候,没有经验的同学会一下子觉得没法下手工作了。感觉事情有很多,但是就是不知道怎么做了。QA会经常遇到这些情况,因此要学会处理这种情况。QA的大脑应当是支持异步操作的,有时候就是要必须听下手上的工作去处理其他事情,有时候可能一整天都在处理其他事情。特别是走上领导岗位,手下的小伙伴有问题都会来找你,你必须先帮他们解决问题,要不然他们就没法开展工作了,所以这个能力也很重要。

  沟通能力:在整个项目中,QA要和各种角色的人员打交道,算法、开发、产品经理、PM,所以沟通能力的重要性就不言而喻了。特别是现在开发和算法一般情况下还是有点鄙视QA的,所以在沟通的时候就要更加注意谈话技巧和心态。有时候同样一件事,有的QA办起来就很顺,有的就办不成。

  主动性:在工作中也要保持主动性,做工作不要总是挤牙膏一样,告诉你做什么就只做什么,这样给你的感觉很不好。而且好多事情其实是早晚都要做的,早做还能给别人留下一个好印象,自己也不至于手忙脚乱,何乐不为呢?人都是有惰性的,不过我们尽量克服这种惰性,给自己多点主动性。

  责任心:这个也很重要,在工作中也会直接影响到工作质量。比如QA验证一个客户报过来的问题,不能只是简单验证一下就OK了,验证完之后最好要邮件通知相关的产品、开发和算法,告知他们测试结果。接下来还要主动去跟踪开发或者算法什么时候回解决这个问题,是否还需要QA的协助,然后还要思考接下来怎么避免此类问题的出现,回测测试的时候是否要加上这条case等。

  创新:创新算是对QA的一个比较高的要求了,创新包括新技术,新方法的学习,也包括规章制度,工作流程的改进等。

  这些软技能其实和个人的素质有关,而且不想其他硬技能可以通过一段时间的学习就能掌握。有些人可能在很短的时间内就掌握了这些技能,有的人即是你给他明确指出来要进行这方面额锻炼还是不行。因为这些和个人的人生观、价值观密切相关的,有些同学就是不想在这方面做改进,那么软技能有很难掌握,有些同学态度比较积极,在这方面走的就远一点、快一点。某种意义上和销售差不多,同样是销售,可能千差万别。