如何从零开始学习软件测试

如何从零开始学习软件测试

2019年7月2日更新:
修改了第一阶段的内容。亲自录了有趣的教学视频,相对于原来看PPT资料,让测试的学习变的更加的简单了。


很多朋友想要入行软件测试,但是都不知道该怎么学。
抽个时间简单的给大家说下,对于0基础的朋友,应该怎么去学习软件测试。
学习软件测试有2条路可以选。
最省事的当然是找个靠谱的培训机构去培训啦,你就什么都不用想了,跟着培训结构认真的学习就行了。
当然,这里并不会给你推荐培训机构,所以这里我们讲的是,怎么去自学软件测试。
毕竟软件测试的门槛真的挺低的。
好了,正式开始讲了。

第一阶段 测试基础

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

测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
戴明环、5W2H等分析管理的方法
质量管理体系CMMI(了解)

以前我是给的大家一份文档来学习,很多同学反馈文档质量不是很好,很多名词看起来还是莫名其妙的不明白,所以。。。我自己录了一份软件测试的基础的课程,传到了B站。
四个视频全长6个半小时,基本上覆盖了我上面所说的那些内容。
内容风趣幽默,上课生动形象,【没错,我就是讲的很好】
我有把握大家只要认真的看完后就能掌握第一阶段的初级测试的内容。最多2天的时间!
好了,链接如下:

震惊!软件测试原来是这么回事?!

还有我之前做的一个关于怎么写测试用例的视频,建议在把视频看了后再去看。

如何写好测试用例

第二阶段 工具学习

软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。
下面我会列几个必学的工具,不用太精通,会用就行了。

  • 性能测试工具:loadrunner、jmeter。
  • 接口测试工具:postman
  • 抓包工具:fiddle
  • 数据库管理工具:Navicat
  • 项目/BUG管理工具:禅道、QC
  • 搜索工具: 百度、谷歌

以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。
loadrunner11下载地址
链接:https://pan.baidu.com/s/1eS2ciFg 密码:6ahk
jmeter下载地址
链接:https://pan.baidu.com/s/1nvzgd0d 密码:ptza
其他的工具你们直接去对应的官网下在就行了。
工具的部分教程
loadrunner入门:https://www.imooc.com/learn/714
jmeter入门:https://www.imooc.com/learn/735
fiddl和postman入门:https://www.imooc.com/learn/738

如果你还要问我Navicat怎么学,我只能问你,你会用excle吗?
如果你问我禅道怎么学,我只能问你,你会用QQ空间吗?

第三阶段 代码学习

好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
关于方向的选择,看我的这篇文章。
软件测试该如何提升自己

嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以通过navicat学会了基本的增删查改了。
那你在这个阶段就应该学会更复杂的SQL语句的编写了,也应该会用命令行工具了。
嗯,加油,各位先学习mysql就好,这个用的人多。
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。
比如Java,只需要学完JavaSE的部分就够你用了。
python的话也是一样的,把基础的部分学完就行了。
总之前期你两者二选一的学习就OK了。
啥?你问我学的啥。
我当然是两种都会啊。
哈哈哈哈哈哈哈,惊不惊喜!意不意外!
以下是学习教程:
mysql:

Java

python

自动化方向

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

  • 各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
  • WEB自动化测试框架:selenium(适用于java\python\javascript)
  • APP自动化测试框架:appium(适用于java\python\javascript)

以上的内容,根据你学的语言进行选择。
appiunm和selenium根据你参与的项目进行选择。
不过无所谓了,反正迟早都要学会的。
这部分的教程太多了,你学会了编程的基础后,随便百度,好多博客论坛都有教程。
而且凭你那时候的水平,你都能轻松的看懂。

性能方向

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

安全方向

  • 渗透测试
  • SQL注入
  • 暴力破解
  • 脱库
  • 等等

其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。
部分教程如下:
链接:https://pan.baidu.com/s/1hs8dG6S 密码:5dh5
推荐知道创宇的学习体系。
我估计你看到这里就更懵逼了。
没关系、等你把基础的东西学会就知道我在说啥了。
毕竟你现在还是一个小白嘛。
不要去纠结这种小事。

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

第四阶段 架构学习

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

第五阶段 XX专家

专家你好。
专家求抱大腿。
到了这个阶段的小伙伴请联系我。
到时候让我抱个大腿。

总结

以上就是从0开始入门的攻略了。

如果你还是有问题的话,可以加我的微信,我们一起讨论学习。

微信:LangJinTest

推荐阅读更多精彩内容