学习软件测试需要掌握哪些知识点呢?

本篇转载自黑马测试高赞知乎文章:https://www.zhihu.com/question/55580287/answer/2126140092

题主今年才大三就开始谋划之后的职业路线,必须赞一个。
本人不才,今年35+,在行业摸爬滚打10余年,迷茫过、努力过,虽然不能说成为这个行业的翘楚,但是最起码在接近40岁的年龄,依然可以在行业中占据一份不错的岗位。回首过往,我最后悔的事情有两件:第一,入行太晚。我26岁才正式投身进入软件测试行业;第二,没有进行过专业的技能培训,都是一边工作一边学习,成长效率太低。
对于题主目前这么年轻,就有这么明确的目标投入到如此优秀前景的行业中表示羡慕;同时,我也分享一下我这10年左右的职业技能学习的经验,希望对大家有所帮助。
一、对于软件测试,需要掌握哪些专业知识呢?
软件测试属于IT行业,整个IT行业说是吃青春饭不为过。但是这个行业仅仅有学历和年龄的优势,是没有办法立足的,因为它需要非常强的专业知识。
各阶段技能需求,我们可以看下图,很好的总结作为软件测试工程师,在各个阶段需要具备的技能。

对于题主还没有进入到软件测试这个行业,前期的准备工作可以从初、中级软件测试工程师的从业技能要求开始入手。
1、初级软件测试工程师专业技能储备
1)了解计算机以及软件测试相关的基础知识
a.计算机基础知识
计算机组成部分,操作系统分类,常见的系统架构(B/S和C/S),常用的DOS命令
b.软件测试基础理论知识
软件测试的目的、定义、原则,产品质量模型,软件测试的基本流程
2)常用的Linux命令
在软件测试中,有时候需要我们自己去搭建测试环境,或者是在服务器部署自动化项目。而服务器基本都是使用Linux系统的,所有我们需要掌握一些基础的Linux命令
3)SQL语句
在软件测试中,测试结果的校验或者自动化中的测试数据准备,都会操作数据库来完成。所以对于数据库的最基本的增、删、改、查的SQL语句,需要能够独立完成编写
4) 手工测试用例的编写(最重要)
作为一个软件测试工程师,最基本的要求就是用例编写的能力。如何编写出一份高覆盖率,低重复率的测试用例,是初入软件测试行业应该去不断追求的能力。
5 ) 缺陷的管理
了解在团队中,如何管理测试人员提出的BUG,从而保证项目的BUG能够及时被修复
此阶段视频推荐:
1)《5天测试班基础视频教程2021版》

2)《2天linux视频2020完整版》

3)《4天mysql视频教完整版分享2020版》

4)《测试入门_3天黑马手工测试理论+6天实战完整分享_适合0基础》

5)《1天软件缺陷与JIRA》

掌握以上的技能,对于一个初入软件测试行业的同学而言,就肯定可以站稳脚跟了。但是作为有志青年的我们,难道就仅仅满足在行业内有一席之地就够了嘛?
五年前,如果你只会手工测试没有问题。但是互联网的发展速度超乎你的想象。在现如今你想要在这个行业混得下去,不会自动化很难长期的立足。
而是否会完成自动化测试,这也是初级与中级软件测试工程师的分界线。
二、中级软件测试工程师专业技能储备
1、接口测试相关专业技能
无论是自动化测试还是性能测试,甚至之后往测试开发方向发展,最基础的就是针对接口进行测试。所以要想做好中级软件测试工程师,第一步就是能够完成接口测试。
1)接口以及接口测试相关的理论基础知识
包括接口及接口测试的概念,接口测试的原理,接口测试的流程,http协议,Restful接口风格。这些内容都需要有所了解
2)接口工具的使用:Postman和Jmeter
接口测试,可以使用代码,也可以使用工具。通常情况下,接口测试最多还是使用工具来完成.原因无他,"高效"。
3)抓包工具:Fiddler和Charles
在测试过程中,我们为了定位前后端的问题,就会使用抓包工具,查看接口返回的结果。从而定位问题是前端的,还是后端的。
这两个工具,我们一般二选一去学习就可以了,因为他们的作用都是一样的。
干货视频分享
《小白1小时也能听懂的接口测试》

《2天带你掌握接口基础》

《4天接口视频教程2021版》

Charles抓包工具使用:
《常用抓包工具Charles测试实战》

2 . 编程语言学习
自动化测试的实现方式,主要还是依赖代码来完成的。所以要能进行自动化测试,首先需要掌握一门编程语言。目前行业主流的自动化测试的编程语言为python和java。我个人推荐python,因为对于新人而言,上手的难度比较低一些。如果可以全天学习,python也就差不多10天就能入门
干货视频分享:
《10天带你玩转python2021版》

3、自动化测试学习
Python学完以后,我们就可以开始自动化测试方面的学习。
自动化测试的目的,主要还是为了降低回归测试的时间。
软件测试中的自动化测试,分为UI自动化和接口自动化。
1)接口自动化:
《Python实现接口自动化测试视频》

《3天小程序项目2021版》

2)UI自动化:
《6天UI自动化2021版》

《Appium进行IOS真机自动化测试》

《8天web自动化入门教程》

《软件测试项目_6天黑马头条测试项目完整分享_首次公开》更新

通过以上的学习之后,我们再来看你具备哪些能力?
1.SQL语句,Linux常用命令
2.手工测试用例的编写以及缺陷的管理
3.使用抓包工具进行前后端问题定位
4.使用Postman或Jmeter进行接口测试
5.使用Python进行接口/UI自动化测试
多么华丽的技能知识储备,保证你在行业内以高起点出发。
这就结束了么?测试的初中级阶段算是结束了,但是高级测试呢?
三、最后也来仰望下高级测试工程师需要掌握的知识点
高级软件测试工程师,是一个量变到质变的过程。量变,指的是对代码的理解,以及测试的宽度。
测试开发岗,就是高级测试一个非常重要的岗位。现在可以不去学,但却要将其作为测试技术的一个奋斗目标。
什么是测试开发岗,测试开发岗为什么现在大厂疯招,请狠狠点击下方链接:
《测试开发是什么?为什么现在那么多公司都要招聘测试开发?489 赞同 · 87 评论回答》https://www.zhihu.com/question/61776013/answer/1641290287


若你是对测试不太了解的测试小萌新,有太多太多对测试的疑惑(前途、薪资、技术含量、男生是否可以干.....),强烈推荐你观看《测试小白必看:学习软件测试必问的100个问题,从此贴开始》,相信能扫除掉你心目中90%以上的常见问题
《软件测试100个常见问题》:http://bbs.itheima.com/thread-507947-1-1.html

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
《2021软件测试学习路线图,内附视频教程+自学路线+工具+面试篇》:bbs.itheima.com/thread-405757-1-1.html