零基础入门测试该学什么?最全整理,照着学就对了
于很多小白而言,想要转行软件测试岗位,却又怕自己从来没有接触过计算机,底子很薄弱,从而还没开始就打起了退堂鼓。也有许多初学者,在入门的过程中,苦于不知道该学什么,又该从何学起,常常搞得一团乱麻。
随着时代的发展,测试行业也从最初的功能测试,演变成现在的自动化测试、接口测试、性能测试、安全测试、测试开发等岗位。企业软件质量的要求已经越来越高,所以测试也越来越受到重视,相应的,想要转行测试,如果没有一份完整的规划,学习的效率也会大打折扣。
本期,笔者就给大家盘点一下,零基础转行测试需要学习哪些内容呢?
什么是测试工程师?
软件测试工程师主要是负责理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。
简单来说,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
同时,由于测试行业的综合性和全面性,测试需要和很多人员打交道,其中包括开发人员、产品经理等等和软件项目相关的岗位,相对的,一个好的测试人员可以去转行许多岗位。
如产品岗位,因为在做项目时,他们就会接触到一些设计常识,如运维工程师,因为测试也需要代建环境,甚至有的测试员可以去做软件的部署等等。由此可见,学好测试其实未来可以选择发展的方向有很多。
再回归到测试本身,测试的发展之路很长,需要不断的学习进步,提升自己的硬技能和软技能,硬技能指的是技术方面,软技能就是我们上述提到的和其他部门人员的沟通,处理矛盾等等各方面的问题。
所以,想要成为一名好的测试工程师并不简单。
测试学习成长路线
下面给大家一个技术学习成长路线,小伙伴可以根据此参考,开始学习:
上述是比较偏技术层面的职业发展路线,对于职业发展路线有疑问的小伙伴可以看本栏目上期的文章《最全「软件测试工程师」职业生涯路线盘点(内含薪资统计)》来决定自己的发展方向。
技术路线会更加偏重代码技术方向,测试领域有,服务器端测试,客户端测试,安全测试,性能测试,接口测试,自动化测试,渗透测试,测试开发。当你已经达到了测试开发的水平,也就说明你离这个行业的金字塔顶端不远了。
下面针对这条路线中比较关键的几点拎出来和大家说一下:
1)软件测试基础知识
这一阶段,我们需要了解软件测试的概念,掌握软件测试是干什么的,熟悉软件测试的基础理论和测试方法,了解测试的生命周期,测试流程,测试用例的编写方法,在项目中的日常工作主要做什么等等。需要掌握以下两点:
软件测试相关文档的学习和BUG提交规范的学习
1、了解测试计划、测试方案、测试策略、需求文档、需求评审、测试用例设计方法等
2、了解bug的定义、分类、bug的生命周期,bug提交规范,bug管理工具和项目管理工具的基本使用(禅道,jira,tapd,readmind,testlink等)。
需要学习哪些测试工具
1、xmind/mindmanage思维导图、svn/git源代码和文档管理工具、抓包工具(fiddler、charles:掌握基本抓包用法,弱网请求、接口请求拦截、响应结果篡改)
2、学习linux基本操作,掌握常用命令,学会环境部署的大致操作
3、学习数据库的基本知识,掌握增删改查的常见操作
4、了解一些简单的html、css、javascript相关的内容,有个概念就行
5、结合以上工具,再运用到项目中,回过头来重新再去测试一遍(不要觉得枯燥,测试经常干一些反复琐碎的事情,需要耐心和细心)
2)语言基础
这一阶段建议大家选择Python 或者Java入门,首推Python,学完再学Java,语言的很多思想和语法都是相通的,学完第一门,第二门就很容易上手了。
3)手动转自动
在我们学习了一个语言后,我们需要不断熟悉精通这门语言,可以结合Selenium学习Web自动化测试,通过脚本,会快速提高语言基础知识的理解和运用。
4)自动化脚本开发
这个阶段我们需要会自己写出测试用例了,如果Selenium自动化脚本开发,你起码要完成100个自动化测试用例,才能做到熟练运用。
5)了解和接触框架
这里的框架指的是测试的框架,这一阶段我们需要继续深入研究Selenium和一些自动化测试框架的知识,其中包括,单元测试框架,Java中Junit或者testNG,Python中unittest
6)设计简单测试框架
一个测试框架大概包括测试对象,测试组件,基础类和函数,工具类,测试数据,异常处理,测试日志,断言和测试报告等这些模块。
在设计测试框架的时候,我们要尽可能的将这些模块有机的结合起来,将脚本能够有效的组织、连贯应用起来,提高测试脚本的可维护性和可读性。
7)常见设计框架
由于应用系统技术五花八门,几乎没有测试框架能应用在多个项目上并体现出应有的价值,所以一般情况都需要根据项目自身情况来定制化我们的测试框架,常用的有数据驱动,关键字驱动和两种方式的混合。
8)Linux和数据库
当自动化测试到一定深度,就需要用代码连接数据库去测试,所以常见的linux和shell脚本是有必要学习的。
9)版本控制和持续集成
持续集成指的是,频繁地(一天多次)将代码集成到主干。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。同时,集成可以帮助我们每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
10)Web前端(可选)
我们可以学一些前端的知识,来帮助我们之后更好的完成工作。
11)写一些小程序
通过一些小程序来帮助我们更快的确定自己的技术能力在哪个层面。
12)完全掌握一门语言
可以将这一阶段看作一个学习的目标,帮助我们稳定代码基础。
写在最后
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取