知乎上有个很热门的问题,也关系到很多想自学的朋友到底该怎么去学习软件测试,不知道从哪里去下手,我对于这个问题还是很有经验心得的!!!
这里详细的给大家说下,对于0基础的朋友自学软件测试,要学到什么程度才找到工作实例、应用技巧、基本知识点总结和需要注意事项,不知道该从哪里去下手朋友可以参考一下。
其实初级测试学的东西并不多,如果脱产学习的话2~3个月差不多就能简单入门。
主要是你下班只能抽出2小时左右,这样战线就显得比较长了。只要能坚持下去基本上半年也能学完的。
另外不要担心,初级测试对于Python/Java编程,自动化测试、性能测试都是初步的了解和学习,这些属于面试时加分项,决定了薪水你能谈多高,如果说要深度掌握,那确实是还需要很多时间。
好了,现在开始正题。
自学软件测试,学到什么程度可以出去找工作?
首先祭出我原创的法宝——测试成长技能图谱
乍一看好像很多,但是其实可以主要分为三大部分:
第一部分:测试基础
1)软件测试的基础理论:软件测试的定义、分类、目的,生命周期,以及黑盒测试和白盒测试。
2)测试的工作流程:需求评审与分析,测试计划与排期,测试用例编写,测试用例评审,构造测试数据,测试环境部署,执行测试,Bug提交与跟踪,测试报告编写,测试文档编写。
了解了这些知识,你才算一只脚踏进了测试的大门。至少知道测试每天日常的基础工作都是做什么的,心里有个数。
第二部分:测试实战技能
1)熟悉操作环境:Windows、Linux、MacOS、Android、iOS。
这里重点是要掌握Linux系统的使用。
2)Web测试:浏览器开发者模式(F12),浏览器清除缓存数据,浏览器查看网络请求,浏览器查看 Console,浏览器查看 DOM Tree,浏览器插件安装。
如果要测前端H5页面(比如618大促活动页),小程序,后台管理页面,都需要用到以上知识。
3)App测试:APP安装与卸载,网络请求抓包,手机Wifi设置,APP UI、文案测试,APP 交互测试。
4)网络抓包:手机端抓包Fiddler、Charles、Stream;Web端抓包:浏览器F12;HTTP协议抓包:Fiddler、Charles;TCP抓包:Wireshark。
简单来说,就是要了解这些工具到底是怎么用的,等你入职之后,安排给你一个测试任务,你要能自己抓包,看客户端和服务端之间的网络传输数据状况。
第三部分:计算机基础知识
如果你之前是计算机相关专业的,这部分就很简单了,基本上不用学,复习一下就可以。
1)操作系统基础:计算机的组成部分,计算机是怎么跑起来的,CPU是什么,内存是什么,硬盘是什么,IO是什么,进程和线程,进制换算。
2)Linux基础:终端工具使用:SecureCRT、Xshell、iterm2;Linux 常用命令;目录操作:cd、pwd、ls;文件操作:cat、more、less、tail、vim、mv、cp、rm;权限管理:chmod、chown、sudo、su;进程管理:kill、ps。
Linux相关的命令和操作非常多,不需要全部记住,初学者记住我列出的这些最常用的,基本上工作中就够用了。
这里有一份Linux常用的操作命令查询表,可以保存起来看看。
软件测试人员常用的linux操作命令https://blog.csdn.net/weixin_56502375/article/details/120317917?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165408724216781818799360%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165408724216781818799360&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-120317917-null-null.nonecase&utm_term=Linux&spm=1018.2226.3001.4450
3)数据库基础:数据库连接,创建数据库,创建数据表,数据库的增删改查,数据库可视化工具:Navicat、SQLyog、Workbench。
4)前端基础:HTML,CSS,JS,XPATH。
5)计算机网络基础:HTTP协议,HTTP请求和响应,HTTP常见请求方法,GET 和 POST 的区别,HTTP响应状态码,HTTP 和 HTTPS 的区别,Cookie 和 Session 的区别,URL 和 URI 的区别,OSI 七层网络模型,TCP / IP 五层网络模型,TCP 和 UDP 的区别,TCP 三次握手和四次挥手,网络 Socket。
不要小瞧这个计算机网络基础,至少30%的面试题都是从里边出的。而且工作以后你会发现,基础扎实对于你后边做接口测试和性能测试,有非常大的帮助。
关于面试
想要找到工作的话,其实面试官还是会更在意你的项目经验(土咅讠川班一般会提供商业项目让你去实测,但是这类项目和大型商业项目还是有一些区别)。
如果没有项目经验的,至少要让招聘方看到你扎实的基础,如果问到上边说的这些基础知识,一定要回答的出来。
成功入职美团,看看面霸是如何养成的,路子真野https://blog.csdn.net/weixin_56502375/article/details/124806276?spm=1001.2014.3001.5502不然的话你没有实战经验,基础又不牢固,找工作困难就不是那么顺利。
大家想要增加个人竞争力,需要学会编程语言和自动化测试知识。编程语言推荐python,自动化推荐用所学python知识做接口自动化更适用实际场景。
如果你是零基础入行,要做好2个方面的准备
第一个准备:认知准备
在开始学习之前,首先要明确的是对于行业和学习的认知:
1、进入测试行业一定要学习一门语言,认为做测试不用写代码或者对于写代码比较排斥的,可以绕道了;
2、技术是你立足的根本,但是不要认为技术做到最强,就可以得到100%的尊重;
3、在不断学习的同时也要积极地参与行业内的交流,比如沙龙、讲座等,朋友内推比海投简历靠谱的多;
4、学历很重要,项目经验很致命,英语是加分项;
5、学习是长反馈、反人性的,不要期待短期速成,不要相信35岁失业的鬼话;
6、沟通能力是和技术同样重要的,放在任何行业都是如此;
第二个准备:思路准备
1、语言选择是Java还是Python?不用纠结,都是相通的,也最终都要掌握。建议先从Python上手,后面再学Java;
2、专研方向选择性能还是自动化?不要被自动化蒙蔽了双眼,也不要轻视认为性能很好搞定,性能的调优很难,自动化有语言基础也能快速上手;
3、大公司还是小公司?能去大公司,就去大公司,尤其是在刚进入这个行业,大公司的流程和项目以及背书都会对职业发展有很大帮助;
4、自学还是培训?能有捷径,为什么不走呢,更何况已经25了,试错的机会已经很少了
5、将来做管理还是技术专家?即使是做管理,也必须建立在懂技术,能搞定问题的基础上。技术是根本,其余的都是锦上添花;
最后,我想说成年人的世界没有容易二字,高薪靠的是自己的努力!
如果你觉得自己学习效率低,缺乏正确的指导,可以关注资源丰富,学习氛围浓厚的🌸🌸公🀄️号⬇️⬇️⬇️⬇️⬇️程序员一凡🌸🌸和测试媛/猿一起做一个有温度的软件测试工程师,不让测试人孤寂的成长!