针对这个问题,可以直接拆分以下三个小问题来详细说明:
1、优秀软件测试工程师的标准是什么?
2、一个合格的测试工程师需要具备哪些专业知识?
3、一个合格的测试工程师需要具备哪些经验?
对于“优秀的软件测试工程师”的定义其实是没有一个统一标准的,每个公司对“优秀的软件测试工程师”标准都不一样。
比如:有的企业需要专业人才,会认为“能将一个比较复杂的测试环境设置好”的工程师就是一名优秀的测试工程师;
还有的测试工程师在技术领域特别强,擅长多语言的自动化测试框架(Python/Java等),或是全面发展类型的软件测试工程师(性能测试/渗透测试/安全测试),也都是非常优秀的软件测试工程师。所以一名优秀软件测试工程师可能是一个专业人才,也可能是一个全通型人才。
通常,从各企业测试经理的角度出发,大部分人认为集合了:扎实的专业能力、良好的沟通能力、优秀的素质等。可以称得上是一个优秀的软件测试工程师
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?
测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
测试工具永远是软件测试人员的得力助手,不能完全依赖工具,但也不能没有工具,在学习软件过程中,要著中软件测试工具的使用,下图覆盖初、中级软件测试工程师所需具备的测试工具,要想学好,下手学习吧。
混在软件测试职业圈,工具千千万,不可能每个都会用,至少要知道有哪些工具可用,什么时候该用什么工具,每个工具能解决什么问题,然后再深入应用几款工具即可,下面就带大家总结一下。
测试管理工具
禅道:简单好用,市场主流,互联网行业居多
Jira:简单好用
QC/ALM:复杂,收费,电信/金融行业使用较多
bugzilla:功能简单
svn:代码和文档管理工具
git:但是多分支管理比svn好
接口测试工具
Jmeter(开源)
postman
SoapUI
推荐使用 jmeter 和 postman。
性能测试工具
loadrunner:大而全,要学精通还是有点难度,重量级工具,过去和现在都是行业老大
jmeter:基于java平台的性能开源测试工具,其实也很强大,而且比较好用
Locust:基于python的一个性能测试工具
白盒测试工具
junit/testng:java下的单元测试框架
unittest/pytest:python下的单元测试框架
cppunit:跨平台的c++单元测试框架
PhpUnit:Php语言下的单元测试框架
TestBed:一个重量级的白盒测试软件,可以进行单元测试、集成测试、静态测试,军工行业常用
Klockword:静态测试工具,军工行业常用
持续集成工具
Jenkins:比较常见的一种CI工具
Hudson
网络测试工具
以HTTP/HTTPs协议为主,网络测试工具有:
wireshark
fiddler
charles
app自动化工具
appium:这个应该算是目前最流行的基于app的自动化测试框架了
uiautomator:安卓自动化测试框架,基本上支持安卓的所有事件操作
Monkey:安卓自带的测试工具
Monkey Runner:Monkey改进版,支持自己编写脚本测试,用Python语言
Robotium:一款国外的Android自动化测试框架,用法比较
web安全测试工具
appscan:算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来
fiddler:网络抓包工具
burpsuite:暴力破解、抓包工具
skipfish:这是一个轻量级的安全测试工具,处理速度很快,每秒可处理2000个请求。
好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python。
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用了!
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。
比如Java,只需要学完JavaSE的部分就够你用了。 python的话也是一样的,把基础的部分学完就行了。
总之前期你两者二选一的学习就OK了。
前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。
怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。
上面讲的都是教你应该怎么做。
在这个阶段你要自己去发现、为什么要那样做。
跨过了这个阶段就基本上可以成为专家了。
学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。
自动化测试框架、性能测试框架等等。
已经有了属于自己的一套东西了。
在群里或者论坛上去装逼、别人都会尊称你一声大佬了。
可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。
总之,到了这个阶段就没什么学习路线了。
不是有一个玩笑说某某公司扫地的大妈都可以做软件测试,某某公司看门的大爷都可以做软件测试。由此可见人们对软件测试的误解和测试工程师的尴尬。其实并不是任何一个人都可以成为测试工程师的,其实并不是任何一个测试工程师都可以成为合格的测试工程师的,要想成为一个合格的测试工程师,你必须有血有肉还的有思想。技术没有可以学,思想是学不来的,思想是需要实践的。***思想也不是他老人家凭空想象出来的,你说是否?
于是我建议大家:
1.每半年读一本测试书籍(现在的测试书籍也多起来了,尽管很多都是*抄西抄的,能力够的话去读英文原版,译本基本都不能完全领会作者的思想,人家老外的测试发展要比我门多几十年呢
2.每半年学一门测试技术(IT行业变化很快,测试技术也同样,每年都有新的测试技术出现,不希望大家对每一个新出现的技术都掌握,只希望每一个测试人员对本人从事的这个行业要充分了解和熟悉,因为在你现在和将来测试的项目中,你要选择最合适和最有效于这个项目的测试技术,如果你连所选对象都不知,那谈何选择,又谈何合适呢?)
3.每半年学一门IT技术(这里的IT技术范围要更广一些,做测试人员要了解更多的知识,如你做性能测试,你需要了解操作系统,你需要了解软件架构,你需要了解低层实现,你需要了解中间件,你需要了解数据库,你需要了解他们的配置与实现方式,你还需要了解硬件,了解网络,了解内存管理机制,了解磁盘I/O原理等等)
4. 要学会思考(测试人员要学会在测试前思考,测试中思考,测试后思考,思考的结果要记录下来,每有一个人敢说他自己是天才,可以记住所有的*西。想好后那就去做吧,去验证吧,如果不对,那返回重新思考,然后再去做,只有这样,你才会做的更好。)
5.要重视测试设计(某开发人员曾说过他精通JAVA,精通C,我于是和他说,那给你10年或20年,你用你精通的JAVA来写出一个可以替换WINDOWS的操作系统。他从此不在这样说,因为他知道即使给他一辈子,这对他也是一个梦。测试何尝不是,你测试技术再高,你也不可能测试的更好,重视测试设计吧,这才是测试之关键。)
6.多和测试同行交流(在一个封闭的圈子里,或在一个公司里,你觉得你是测试高手,当有一天你走出这个封闭圈子的时候,你才发现,天外有天,或许捆饶你一个月的难题某些测试同行轻描淡写的一句话就可以为你解决。测试是相通的,测试思想更是相通的,多去做一些比较,才可以看到自己的不足。)
我是崇尚测试技术的,所以相信,尊重源于实力!因此希望更多的测试人员能得到测试同行的尊重,能得到开发人员的尊重,能得到企业的尊重。
同时我更崇尚测试思想,所以我更相信,在软件行业更加规范化后,企业对测试工程师的要求必定是测试思想第一,经验第二,而测试技术只能排第三了。
我根据多年的测试经验总结编写了下面的《自动化测试工程师学习路线》,从测试的各个方面为你整理了当前最热门的测试库和框架,帮你建立自己的自动化测试技术体系, 让你在测试工作变得更加高效。现在分享给你们。
【自动化测试学习路线】
1. 自动化测试必备Python编程内容
2. Web UI 自动化测试基础内容
3. Web UI 自动化测试实战内容
4. APP UI 自动化测试基础内容
5. APP UI 自动化测试实战内容
6. API 接口自动化测试基础内容
7. API 接口自动化测试实战内容
8. CI/CD持续集成专项技术
9. 自动化测试框架实战技术
上面就是我为大家整理出来的一份软件测试工程师发展方向知识架构体系图。希望大家能照着这个体系,完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
既然看到这里,在收藏的同时,也请不吝啬的点个赞呗!期待 ~
绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。