大专毕业找工作受挫折无奈进了厂一年,后面很庆幸选择了软件测试

博主分享了从电子厂工作到转行成为软件测试工程师的经历。他详细介绍了软件测试的学习路径,包括测试基础、工具使用、代码学习和架构理解,并提供了学习建议。强调实践与理论结合的重要性,提到了自动化测试、性能测试和安全测试等方向的选择。
摘要由CSDN通过智能技术生成

 先说电子厂

如果让我说优点,除了工厂凉快点,其他没什么优点了。我挑战新厂,这个厂要穿防尘服,规矩很多,进门要脱鞋,2个钥匙,然后到2楼又去换防尘服,那个衣服穿真心不舒服。带口罩干活,本人最不喜欢带什么口罩,车间怎么说呢 ,活不重,就也拿个手机屏检测,车间机器噪音大,2个说话,不靠近说 听不到什么。

你要上班出去喝个水上个厕所,又要脱防尘服,过安检才可以,很头疼的。如果你以前做销售门店和外卖行业,下午出去几分钟去喝个奶茶都没问题。这个单位伙食不行,里面上班人,都面黄肌瘦多,我半天在车间就待不住了。我说我要走,里面领导说了一句,猜到你干不了,看来跑路不少。最后再说下,这个厂妹子不少,尤其好看的。不过上班穿个防尘服,脸都看不到,只有去食堂换了衣服才知道对方什么样子,当然上班时间你也不好随便聊天的。

命运转折点

2018年初通过朋友介绍认识到了软件测试这个行业从而开始了学习。一开始在网上找了一大群资料,没有做学习规划导致学的时候东西都学串了浪费了2个月的时间,我相信大部分朋友都有下面的一些经历。

一、 怎么系统学习的问题。

测试用例设计方法,什么边界值,等价划分,正交法等等,这些一般都是功能测试需要的技能,不用去死记硬背理论,先用起来。

抓包,运用工具进行抓包,这里需要了解http协议,请求头,请求体,响应消息这些基本的知识。通过抓包得到的数据,用postman或者jmeter构造接口请求,接口能否请求成功。不要单纯为了抓包而抓包,将会的技能运用起来。

数据库,一般互联网公司在测试都有用到数据库,学习基本的增删改查。深入的话了解子查询,左右连接,多表查询,存储过程,事务等。

Linux命令: 测试需要定位bug,部署环境等。所以掌握常见的linux命令是很有必要的,列举一些常见的。cd,pwd,cp,mv,tail,cat,ps,netstat,chmod等。

二、学了用不上

我曾经也很苦恼,很多东西学习了,当时记住了,后面没用就忘记了。如果工作了,可以利用公司提供的资源进行深度学习。多写多练,勤思考。想入行而没有工作的,学的东西很多都停留在理论方面,可以找找身边有没有做测试的同学,关系好的朋友,看看他们的被测系统,软件。或者网上搜索资源进行实战,新手还是入职提升最快。

举个简单的例子,账号注册登录模块,网上都是用等价划分来测试注册登录模块功能,但在实际项目里,注册登录模块远不止于此。

1. 账号注册:注册方式,手机号,微信号,其他账号,以前别人用的手机号注册,现在手机号另一人在用怎么处理等。

2. 登录,除了验证密码之外,还有忘记密码,多次输入错误密码账号锁定等。

举的这个例子,是说明实际的工作经验还是很重要的,所以,学习理论知识,但不要停留在理论上,实践出真知。

学习建议

对于想入行学软件测试的新手来说,首先需要一个高效的学习线路图,还要有全套的学习资料,两者结合才能有最好的学习效果。

授人以鱼不如授人以渔,所以今天我也想把我的经验和经历分享给大家,史上最详细的软件测试学习路径和最全的学习资料包全部奉上,按照这个路线学习,大神指日可待!

软件测试工程师的工作要求:

文档评审,用例评审,需求评审;

测试用例设计,自动化测试脚本开发,测试架构设计、写作测试文档(测试计划、测试方案、测试用例等);

执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;

通过测试度量软件的质量;回归测试等等,工作内容是非常多的。

软件测试工程师需要掌握的知识:

计算机知识,包括编程语言,掌握至少1门开发语言,比如C、Java、C#等,

1门脚本语言,比如Python、Perl、Ruby、Shell中对于测试工程师未来更广的职业发展非常有帮助。

数据库知识,对于绝大部分项目或互联网项目,都会有数据库,所以掌握至少1门数据库,比如Oracle、SQl Server,DB② · Mysql等。

操作系统,比如Linux、Unix,Windows核心命令也非常重要。对于有些涉及到网络的,网络和通信知识,比如TCP/IP协议也非常重要。

软件测试需求分析与软件测试用例设计核心工程方法。掌握主流的软件测试工具,比如性能测试工具JMeter/LoadRunner,自动化工具典型代表Selenium/UFT/Appium,测试管理工具等,事实上光有这些工具还不够,还需要真正理解其背后的实现原理。

掌握核心的研发流程,比如RUP,测试流程,比如双V模型,或者是现在流行的敏捷测试等,也是同样重要。方法是秘笈、工具是兵器、流程是套路

学习路线图

一、测试基础知识

第一阶段 测试基础

测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?

测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
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注入
暴力破解
脱库
等等
其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。
推荐知道创宇的学习体系。
我估计你看到这里就更懵逼了。
没关系、等你把基础的东西学会就知道我在说啥了。
毕竟你现在还是一个小白嘛。
不要去纠结这种小事。

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

第四阶段 架构学习

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值