如果你并非计算机相关专业毕业,也没有过软件测试的相关经历(例如:去某家公司实习从事软件测试工作),那还是建议去参加一下软件测试培训。因为软件测试工作看上去不过就是点点点,但实际上我们进入到软件测试工作后会发现,并不是那么简单。在点点点的背后,还有非常非常多的知识域和方法论,甚至我们做到一定的时候,测试就是一个初中级的程序员了。

在测试工作中,我们常常看到的那些点点点的工作,实际上是黑盒测试的其中一部分。

什么是黑盒测试呢?

用比较理论的语言来说,黑盒测试就是运营软件,对系统的输入输出进行测试验证,但不关心其中的实现过程。

举个例子:我现在把一只猫放进黑色的盒子里面,过一会我把黑盒子里面的东西拿出来,发现是一条狗,刚好我期望的结果就是把猫变成狗,那么这个结果满足我的要求,我也并不关心黑盒子里面是怎么把猫变成狗的。

软件测试培训

而做黑盒测试也并不是我们拿着手机打开APP或者电脑里面打开一个网页就各种点点点就完了,在这个之前我们还有很多的事情需要做。

第一步:作为一个测试,是需要参加产品的评审的,并且需要在评审的过程中给出自己对于质量、功能的要求。当然,对于需求的理解是需要非常透彻的,往往测试是比研发更懂产品经理的人。

第二步:作为一个测试,在拿到了产品设计和需求分析文档以后,自然就需要开始做测试计划和测试用例了。

测试计划,顾名思义,即使根据现在的测试需求、项目周期、剩余资源情况来进行工作的安排,并且预测出需要达到的目标(测试覆盖率、测试通过率等等)。

测试用例,就是对系统的功能或者流程分析以后,将我准备输入的内容和我预期的结果整理出来。这个过程可以说是最为复杂的,我们最终统计测试覆盖率也是要依赖于用例的完善程度。一个优秀的测试用例可以达到什么程度呢?假设这个用例拿给研发,研发可以按照这个测试用例无脑的进行编码了。

软件测试培训

第三步:自然就是执行用例了,也就是点点点的过程,我们根据用例的规划,一条一条的执行用例。通常情况下,我们在执行用例之前,还会进行以下冒烟测试,看看提测的系统是否达到了可以执行用例的水平。如果冒烟测试通不过的话,测试小伙伴一般都会想跳起来骂人。

什么是冒烟测试?

还是先来官方一点的解释,就是我们在正式测试前,对产品或系统的此次迭代影响功能点进行一次简单的验证性测试。实际上就是对这次改动的功能页面挨着点一下,看看会不会报错。

执行用例的过程中,很多时候我们并不是点点点就能够解决的,我们必须掌握一些基础工具的使用,例如:Postman或者数据库工具。因为,在一些接口测试的时候,我们要对数据进行输入并不是通过页面,而是通过接口,那么就需要模拟HTTP或者其他形式的请求,同时,我们要对报文有基本的了解,知道怎么构造报文、加密报文。接口数据输入以后,怎么来判断数据的对错呢?这时候就可能还需要打开数据库,通过SQL脚本把我们的数据查出来进行比对。也就是说,测试小伙伴也是需要一定的技术基础和技能的。

软件测试培训

因此,我们觉得测试工作比较简单,那是因为我们只是认识到了测试工作中的一部分,还有大部分的内容我们并没有看到。那么,是不是我们做到以上的几点,就算是一个比较厉害的测试了呢?No,No,No,仅仅是一个合格的测试人员。要知道,上面的内容也只是黑盒测试中的一部分而已,如果一个测试想要进阶,那么就还需要掌握更厉害的技能,例如黑盒测试的升级能力——自动化测试。

什么是自动化测试?

简单来说,就是通过代码和工具,自动的对系统进行测试。也就是从人工点点点转变为写代码来点点点。

要想能够做自动化测试,那么测试小伙伴就一定需要有写代码的能力,现在最流行的自动化测试语言就是Python,很多的自动化测试工具都支持写Python的脚本。当然,也有一些是Java写的,例如Jmeter,如果你懂Java,甚至可以自己去改造一下它。当测试小伙伴进阶到了自动化测试小伙伴时,你就会觉得以前点点点的生活太苦闷了,现在我只要把脚本写好了,每次迭代以后,我就改改我的脚本,甚至我在准备测试用例的同时就可以准备好我的脚本,到测试时,我简单调整一下,然后鼠标一点,测试就完成了(事实上当然不是这样,自动化测试是有局限性的,最终还是会要点点点,所以自动化测试小伙伴都比较傲娇,不愿意去点点点)。

软件测试培训

当然,如果测试到了这个水平,那么测试和程序员的界限就比较低了,测试和程序员就会有很多相同的技术栈。OK,我们到这里还仅仅说了黑盒测试,但测试还有一个领域叫做白盒测试。

什么是白盒测试?

我们还是用黑盒测试的例子来解释,我们把一只猫放进一个透明的盒子里,然后我们要看着这个透明盒子是怎么工作的,一步步分析这个工作过程有没有问题,最后,从盒子里出来一条狗,整个的变化过程和我期望的一致时,就是测试通过。

通常情况下,我们现在的系统很少回去做白盒测试。第一、白盒测试对于测试人员的要求非常高;第二、测试成本很高,大部分系统做不到这种程度;第三、测试人员如果对代码的逻辑熟悉度低时,测试的效率非常差。因此,我们更多的是在研发内部做code review,很少去做白盒。当然,白盒测试也是一种测试领域,某些时候还是有必要的。

软件测试培训

OK,那到这里就是我们测试大致的里程了吗?并不是的。

对于软件测试来说,我们还要了解很多软件测试管理乃至质量管理的知识,因此,什么PMP、高级项目经理、CMMI、6西格玛等等方面的知识,都是测试未来需要学习的内容。如果我们想要再考个证,那不经过系统的学习,光靠着工作时候的经验积累,基本是过不了这些考试的。所以,在技术领域的任何岗位,都是一个不断学习不断进步的过程,没有谁能够随随便便就成功,未来还有很多的培训、学习过程等着我们。与其把学习放到未来,不如现在就开始,从基础的知识开始。因此,参加软件培训一下还是很有必要的。