成为一个优秀的测试工程师需要具备哪些知识和经验?

针对这个问题,可以直接拆分以下三个小问题来详细说明:

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了。
啥?你问我学的啥。
我当然是两种都会啊
哈哈哈哈哈哈哈,惊不惊喜!意不意外!

自动化方向

等你代码已经基本掌握了,嗯,很好,接下来就要学习各种自动化测试了。

各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
WEB自动化测试框架:selenium(适用于java\python\javascript)
APP自动化测试框架:appium(适用于java\python\javascript)
以上的内容,根据你学的语言进行选择。
appiunm和selenium根据你参与的项目进行选择。
不过无所谓了,反正迟早都要学会的。
这部分的教程太多了,你学会了编程的基础后,随便百度,好多博客论坛都有教程。
而且凭你那时候的水平,你都能轻松的看懂。

性能方向

对loadrunner和jmeter的掌握更加的深入。
可以手写脚本、脱离录制。
学会了多线程编程、能够手写java或者python、不用工具直接实现压测。
学习linux,毕竟性能总是和服务器打交道的。
学习系统架构的相关知识、方便你更容易的分析系统瓶颈。
说实话、性能方向的提示更难、因为需要掌握的东西太多了。
性能测试做深入了,基本上就是架构师的水平了。
可能你现在看着这个性能方向的学习一脸懵逼。
没关系、等你把上面的编程语言学会了你就不懵逼了。

安全方向

渗透测试
SQL注入
暴力破解
脱库
等等
其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。
推荐知道创宇的学习体系。
我估计你看到这里就更懵逼了。
没关系、等你把基础的东西学会就知道我在说啥了。
毕竟你现在还是一个小白嘛。
不要去纠结这种小事。

各位在这个阶段,正常情况都应该是中级测试工程师的水平了。

第四阶段 架构学习

前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。
怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。
上面讲的都是教你应该怎么做。
在这个阶段你要自己去发现、为什么要那样做。
跨过了这个阶段就基本上可以成为专家了。
学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。
自动化测试框架、性能测试框架等等。
已经有了属于自己的一套东西了。
在群里或者论坛上去装逼、别人都会尊称你一声大佬了。
可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。
总之,到了这个阶段就没什么学习路线了。

三、一个合格的测试工程师需要具备哪些经验?

不是有一个玩笑说某某公司扫地的大妈都可以做软件测试,某某公司看门的大爷都可以做软件测试。由此可见人们对软件测试的误解和测试工程师的尴尬。其实并不是任何一个人都可以成为测试工程师的,其实并不是任何一个测试工程师都可以成为合格的测试工程师的,要想成为一个合格的测试工程师,你必须有血有肉还的有思想。技术没有可以学,思想是学不来的,思想是需要实践的。***思想也不是他老人家凭空想象出来的,你说是否?

于是我建议大家:
1.每半年读一本测试书籍(现在的测试书籍也多起来了,尽管很多都是*抄西抄的,能力够的话去读英文原版,译本基本都不能完全领会作者的思想,人家老外的测试发展要比我门多几十年呢

2.每半年学一门测试技术(IT行业变化很快,测试技术也同样,每年都有新的测试技术出现,不希望大家对每一个新出现的技术都掌握,只希望每一个测试人员对本人从事的这个行业要充分了解和熟悉,因为在你现在和将来测试的项目中,你要选择最合适和最有效于这个项目的测试技术,如果你连所选对象都不知,那谈何选择,又谈何合适呢?)

3.每半年学一门IT技术(这里的IT技术范围要更广一些,做测试人员要了解更多的知识,如你做性能测试,你需要了解操作系统,你需要了解软件架构,你需要了解低层实现,你需要了解中间件,你需要了解数据库,你需要了解他们的配置与实现方式,你还需要了解硬件,了解网络,了解内存管理机制,了解磁盘I/O原理等等)

4. 要学会思考(测试人员要学会在测试前思考,测试中思考,测试后思考,思考的结果要记录下来,每有一个人敢说他自己是天才,可以记住所有的*西。想好后那就去做吧,去验证吧,如果不对,那返回重新思考,然后再去做,只有这样,你才会做的更好。)

5.要重视测试设计(某开发人员曾说过他精通JAVA,精通C,我于是和他说,那给你10年或20年,你用你精通的JAVA来写出一个可以替换WINDOWS的操作系统。他从此不在这样说,因为他知道即使给他一辈子,这对他也是一个梦。测试何尝不是,你测试技术再高,你也不可能测试的更好,重视测试设计吧,这才是测试之关键。)

6.多和测试同行交流(在一个封闭的圈子里,或在一个公司里,你觉得你是测试高手,当有一天你走出这个封闭圈子的时候,你才发现,天外有天,或许捆饶你一个月的难题某些测试同行轻描淡写的一句话就可以为你解决。测试是相通的,测试思想更是相通的,多去做一些比较,才可以看到自己的不足。)

我是崇尚测试技术的,所以相信,尊重源于实力!因此希望更多的测试人员能得到测试同行的尊重,能得到开发人员的尊重,能得到企业的尊重。
同时我更崇尚测试思想,所以我更相信,在软件行业更加规范化后,企业对测试工程师的要求必定是测试思想第一,经验第二,而测试技术只能排第三了。

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

字节女测试工程师万字总结的软件测试入门技巧相关推荐

  1. 女测试工程师的成长(1-4)

    女测试工程师的成长(1)      "酸甜苦辣"这四种味道几乎涵盖了人生应有的全部体会.屈指算算,如今已经是虚渡了将近29个春秋,没什么成就,再平凡不过. 以下的文字简单谈谈从99 ...

  2. 一个女测试工程师的成长之路

    一个女测试工程师的成长之路 的主人公从刚毕业时的多次失败,通过自己的努力一步步走向成熟,其毅力令人敬佩. 文中多次鼓励读者要自信.自强,"人得自已成全自已". 文章有点长,请慢慢品 ...

  3. 阿里在职7年高级测试工程师整理出的软件测试自学指南

    前言 之前发过一次回答,反响不错,所以我把这个又重新整理了一遍写成了文章. 我在自学软件测试的过程中个人整理了一些软件测试学习资料,什么课堂学习笔记.重点思维导图详情,作业练习等. 老规矩:想要的直接 ...

  4. 来自一位女测试工程师的内心独白...

    简单的话语,透露着职场的真实!来看看这位女测试的职场内心吧! 01.性别福利 刚入职的时候,快速熟悉业务.梳理项目需求.进行测试用例设计,Leader和同事确实在帮助确实很多,等上手之后,基本上都是自 ...

  5. 来自一位女测试工程师的内心独白

    简单的话语,透露着职场的真实!来看看这位女测试的职场内心吧! 01.性别福利 刚入职的时候,快速熟悉业务.梳理项目需求.进行测试用例设计,Leader和同事确实在帮助确实很多,等上手之后,基本上都是自 ...

  6. 我,33岁,字节跳动测试工程师,2月无情被辞,想给划水的兄弟提个醒

    前几天,一个认识了好几年在大厂工作做软件测试的朋友,年近30了,却被大厂以"人员优化"的名义无情被辞,据他说,有一个月散伙饭都吃了好几顿-- 在很多企业,都有KPI考核,然后在此基 ...

  7. 入职阿里,一位女测试工程师的心声

    我的职业生涯也和大多数测试人一样,刚毕业是在一家电商公司外包功能测试,做了应该有大半年,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好几年发现自己还只是一个功能测试工程师,看着身边人一个个的 ...

  8. java测试工程师做什么_软件测试工程师的职责是什么

    软件测试工程师的职责是发现BUG,此外,如何体现个人价值?那么我们试想,只提出问题而不去解决,问题就永远得不到闭环.所以,一个资深的测试人员的基本功应该是这样的:深挖业务和功能需求,找出BUG,定位B ...

  9. 一位女测试工程师的成长

    "酸甜苦辣"这四种味道几乎涵盖了人生应有的全部体会.屈指算算,如今已经是虚渡了将近29个春秋,没什么成就,再平凡不过. 以下的文字简单谈谈从99年毕业到如今的几个印象深刻的瞬间以及 ...

最新文章

  1. Linux驱动修炼之道-SPI驱动框架源码分析(上)
  2. 3. 定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这
  3. 杨幂掐点祝福唐嫣,打破不和传言,情感营销还能这么玩?
  4. Jenkins入门系列之——03PDF文档下载
  5. html推箱子怎么清除走过的,第九讲:HTML5该canvas推箱子原型实现
  6. 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
  7. 中国象棋人机对弈搜索算法学习-极大极小值,负极大值,alpha-beta算法
  8. 用Multisim高频小信号谐振放大器
  9. 车联网TBOX国六OBD排放终端远程在线监控系统
  10. Hie with the Pie
  11. 43_sql注入绕waf
  12. 计算机专业英语期末考试,《计算机专业英语》期末试卷
  13. GAN异常检测论文笔记(一)《GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training》
  14. 内存卡打不开需要格式化怎么恢复数据
  15. 稳定、易用、不掉线,家用NAS终极体验,铁威马F4-421上手
  16. 红蓝对抗-红队打点的那些事
  17. Hadoop学习之SSH免密登录配置(以三台虚拟机为例,完全分布式)
  18. poj 2480 python_python-pptx:是一个python处理ppt的库
  19. Overflow Freed Chunk
  20. 启动子容器失败:A child container failed during start

热门文章

  1. 怎么制作游戏脚本_怎么剪游戏视频?五步教你制作绝地求生击杀合集
  2. 科研篇一:NeurIPS2019 分类整理-对抗样本Meta-Learning
  3. 【STM32】时钟系统RCC
  4. sin45怎么用计算机,IT教程:sin45度等于多少
  5. NUC 折腾笔记 - Linux 系统篇
  6. springboot项目部署到Linux服务器
  7. 浏览器调试 console.table() 方法,方便查看json和数组数据内容
  8. 最新云智推任务提交版拉新任务分销系统源码+功能强大
  9. JSON和XML的区别
  10. 自控力读书笔记 第九章 别读这章:“我不要”力量的局限性