对于很多零基础的朋友想要入行软件测试,但却无从下手,这里我简单介绍软件测试以及软件测试学习方法。
软件测试行业里工程师工作岗位的分类
有按看不看代码分的:黑盒测试工程师、白盒测试工程师
有按主要业务分的:金融测试工程师、通信测试工程师、本地化测试工程师、游戏测试工程师
有按主要任务分的:自动化测试工程师、性能测试工程师、安全测试工程师
有按被测软件分的:手机app测试工程师、手游测试工程师、网页测试工程师、客户端测试工程师
有时也有按被测软件的语言、技术分的:java测试工程师、.Net测试工程师、数据库测试工程师
还有和开发混在一起的:测试开发工程师、测试工具开发工程师、测试架构师
最多的还是笼统的:软件测试工程师、资深测试工程师、高级测试工程师、测试主管、测试经理此外最常见的就是复合的,如:java测试资深工程师、ios手游高级测试工程师,把上面的各类定语随机组合。
软件测试行业的特点
- 收入差距极大,有月薪四五千的黑盒测试工程师,也有年薪几十万的资深测试工程师
- 技术差距极大,有只会鼠标点点点的手工测试人员,也有精通程序代码的资深测试人员
- 工作内容差距极大,有人每天点点鼠标,测测XXX信息管理系统,有人测复杂的金融业务,有人写测试工具,有人测服务器、中间件、测socket、测高并发,有人搭建测试平台
- 不同岗位间技术壁垒严重,比如你让一个黑盒手工测试人员去看两个安全测试人员做渗透测试,他很可能完全看不懂这些人在干啥。如果你给一个网站手工/自动化测试人员做一份数据库测试人员的笔试题(考具体数据库的SQL、函数、存储过程),很可能他要交白卷。当然反过来说,要从技术型测试岗位转行去做黑盒手工测试人员是毫无壁垒的,但一般不会有人这么转……
- 入行门槛低,一个其他专业的无关人员通过两个月简单培训,即可掌握普通的黑盒测试方法,成为一名软件测试工程师
- 黑盒手工测试是主流职业,国内大部分中小型公司都需要大量的黑盒手工测试人员,同时巨头级的金融机构、互联网公司仍然需要资深的黑盒测试人员所以造成了大量外行人员涌入软件测试行业里的黑盒手工测试岗位,并给人以测试人员技术不行的感觉。
零基础想要学习转行软件测试方法:
第一阶段基础学习
只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的,所以说测试基础是软件测试最基础也最最最重要的一部分了。
而学习的程度并不是说理解就可以了,最好是能够用自己的话给复述出来。
那测试基础有哪些内容呢?
测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)
以上就是大概的内容,只要你肯背、肯写,都是能独立的掌握的。
第二阶段工具学习
工具学习软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具再去学什么工具就可以了。
下面我会列几个必学的工具,不用太精通,会用就行了。性能测试工具:loadrunner、jmeter。
接口测试工具:postman
抓包工具:fiddle
数据库管理工具:Navicat
项目/BUG管理工具:禅道、QC
搜索工具: 百度、谷歌
第三阶段代码学习
如果你已经完成以上的两个部分的学习,那么恭喜你,你已经是一名出色的初级测试工程师了。
接下来,你需要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
其实关于方向的选择,相信你自己心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python,当然数据库也是必须掌握的!
自动化方向
等你代码已经基本掌握了,接下来就是要学习各种自动化测试了。·
- 各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
- WEB自动化测试框架:selenium(适用于java\python\javascript)
- APP自动化测试框架:appium(适用于java\python\javascript)
以上的内容,根据你学的语言进行选择。
appiunm和selenium根据你参与的项目进行选择。
性能方向
对loadrunner和jmeter的掌握更加的深入。
可以手写脚本、脱离录制。
学会了多线程编程、能够手写java或者python、不用工具直接实现压测。
学习linux,毕竟性能总是和服务器打交道的。
学习系统架构的相关知识、方便你更容易的分析系统瓶颈。
说实话、性能方向的提示更难、因为需要掌握的东西太多了。
性能测试做深入了,基本上就是架构师的水平了。
可能你现在看着这个性能方向的学习一脸懵逼。没关系、等你把上面的编程语言学会了你就不懵逼了。
安全方向
渗透测试
SQL注入
暴力破解
脱库
推荐软件测试书籍说到这里先给大家推荐几本书,书本不在于多,要精,给大家推荐4本必看的书籍,看完一定受益匪浅,找到软件测试工作没有问题。
第四阶段
经过之前三阶段的学习之后各位接下来考虑的就应该是怎样写代码更合理、怎样测试会更全面。
上面讲的都是教你应该怎么做。而在第四个阶段你需要自己去思考为何要这样做,也就是说这个阶段你要学会的是主动学习,跨过了这个阶段就基本上可以成为专家了。
学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了,已经有了属于自己的一套东西了。
推荐软件测试书籍
说到这里先给大家推荐几本书,书本不在于多,要精,给大家推荐4本必看的书籍,看完一定受益匪浅,找到软件测试工作没有问题。
1、软件测试(第2版)
本测试入门的好书,较全面地介绍了各种测试领域和方法,为测试新手提供了正确的观念和宽泛的基础。
2、软件测试技术大全:测试基础、流行工具、项目实战
由多位作者共同撰写,内容涉及测试理念、测试技术、测试开发、测试自动化、测试管理和常见的测试工具,不愧“测试大全”的书名。有些内容失之于粗糙,一些论述也不够严谨,缺乏参考文献更是此书的硬伤。瑕不掩瑜,此书理论和实践结合紧密,仍值得测试工作者学习和思考
3、软件测试的艺术(第2版)
一本“久经考验”的测试经典:1979年,第一版面试;25年后,第二版登场。平心而论,有些观点已经不能直接应用在测试实践中,但是仔细品味仍有所收获。毕竟,这是一本需要思考的书,而不是操作手册。
4、软件测试工程师面试指导
面向初学者,介绍了软件测试行业、测试工程师素质要求、基本测试技术、求职策略、面试技巧、典型试题,对于测试新手或迈向测试行业的朋友有较高的参考价值。此书还收录了一些对读者来信的回复,内容涉及职业规划、大学生就业、测试学习、测试实践等,针对当前常见的困惑,做出了谨慎且深思熟虑的回答。