软件测试工程师如何从功能测试转成自动化测试?

PS:本文转载自黑马测试知乎
链接:https://www.zhihu.com/question/27986014/answer/3054662174

功能测试转成自动化测试,答案就三个字:“靠学习”。
学习自动化的方法无非是三种:
一、靠培训(下方有如何选择培训机构)
在相对有氛围的学习环境中来学习自动化测试,这是一个较快学习的方法。
二、靠自学自动化教程(下方有视频资源推荐)
如果在职,不能全职学习,可以找一些自动化学习的视频,选择看视频学习,这也是一个不错的方法。
三、靠阅读自动化相关书籍(下方有书籍推荐)
不喜欢看视频,喜欢看书的可以选择此种
但无论哪种学习方法,学习都不是轻松的,为了让大家获得动力,本文结构梳理如下:
1)什么是自动化测试?明确学习内容
2)为什么要学习自动化测试?明确学习动力
3)学习自动化,需要掌握那些知识呢?明确学习路径
4)分享学习自动化测试的学习类资源
5)如何在工作中实战自动化测试知识呢?明确内化方法
一、什么是自动化测试,明确学习内容
谈到自动化测试,前面就要给大家普及下什么是功能测试。
功能测试,功能测试主要以手工测试为主,也就是所谓的点点点。
主要目的是验证软件的功能是否按照《产品需求文档》中所定义的预期行为运作。
测试人员了解需求的基础上,通过编写测试用例,手动执行用例,发现功能bug,保障软件满足用户的需求。
自动化测试,通俗来讲,就是通过工具或代码,代替人工来做功能测试。

所以自动化测试,是以工具(如Selenium、Appium、JMeter、LoadRunner)或代码为主、通过编写测试的脚本,替代人工执行测试用例,快速的完成回归测试任务。
因此自动化测试可以提高测试效率、减少测试成本、提高测试覆盖率和减少测试周期。
自动化测试可以应用于各种软件测试领域,包括功能测试、性能测试、安全测试、兼容性测试等。
二、为什么要学习自动化测试?明确学习动力
为什么要学习自动化测试?最现实的原因,是现在高薪的测试岗位,都对自动化测试有要求。请看下方截图:

为什么高薪的测试岗位都需要自动化测试技术呢?因为自动化测试可以实现:
1、提高测试效率:
自动化测试可以快速地执行测试用例,减少手动测试的时间和成本,提高测试效率;
2、提高测试覆盖率:
自动化测试可以执行大量的测试用例,覆盖更多的功能和场景,提高测试覆盖率;
3、提高测试质量:
自动化测试可以减少人为因素的干扰,提高测试的准确性和可靠性,从而提高测试质量;
4、降低测试成本:
自动化测试可以减少人力资源的投入,降低测试成本;
5、支持持续集成和持续交付:
自动化测试可以与持续集成和持续交付相结合,实现快速反馈和快速迭代,提高软件交付的效率和质量。
总之:
对企业而言,自动化测试可以极大提升回归测试的效率,提高人效。
对测试人员而言,自动化测试可以将个人主要精力放在复杂业务的测试,保障测试快速的迭代,保质保量提早完成测试任务。
所以, 如果你懂自动化测试,不管是代码能力还是测试工具的使用,都会提升个人在团队中的地位也算自己在测试职业生涯中就有了核心的竞争力。
反之,如果你干了几年测试,还是无法做到自动化测试的全面和效率,技能还停留在只会点点点的手工测试(纯功能测试)阶段,即使现在还有低薪的工作,但也终究会被市场淘汰。
三、学习自动化,需要掌握那些知识呢?明确学习路径
1、明确学习路径
简单来讲,自动化简单划分:接口自动化、UI自动化
对于由功能测试转过来的初学者,咱们可以考虑从先接口自动化入手。目前企业中接口自动化使用较多,便于学习后推广和使用;
然后再学习UI自动化,包含Web和APP的UI自动化,作为进阶;
2、要学习自动化,需要掌握那些知识呢?
1)首先必须学会功能测试
自动化测试是以工具或代码替代人工执行测试,执行的测试用例和手工测试是一样的,所以自动化测试也需要我们掌握一些手工测试的基础知识,比如用例编写、bug提交、数据库SQL语句等,这些对于手工转行的人来说应该是没有问题
2)必须要学会一门编程语言
虽然使用工具也可以做自动化测试,但是未来趋势测试还是需要会代码比较吃香;编程语言常见的比较适合来做自动化的如java、python等,初学者推荐python,相对比较简单,适合初学者;如果是有过开发经历,转行到测试的可以考虑Java。
对于编程语言的选择,如果想深入了解,可以狠狠点击下面这2篇文章:
自动化测试语言到底选择Java还是Python?二者有何区别?
http://bbs.itheima.com/forum.php?mod=viewthread&tid=505905
《Python 和Java 哪个更适合做自动化测试?181 赞同 · 32 评论回答》
https://www.zhihu.com/question/264353399/answer/2453360401
3)学习接口自动化测试
可以直接使用一些开源的框架执行测试即可,比如Postman工具.
4)学习UI自动化测试
可学习一些UI自动化的框架:web浏览器自动化推荐Selenium、移动端推荐Appium、其他还有Robot Framework等;
5)学习持续集成
完成自动化测试后,最终实现自动化都会配合持续集成完成,所以还需要掌握一些测试工具,如Jenkins、Git等。

四、分享学习自动化测试的学习类资源
1、若靠培训
培训机构鱼龙混杂,所有的测试培训机构都号称自己是主打自动化测试。
如果若选择培训机构呢?告诉你一个竞品绝不敢告诉你的方法,绝对有用。请狠狠点击下方文章:
《这么多的软件测试培训机构,哪个好?2214 赞同 · 358 评论回答》
https://www.zhihu.com/question/21471129/answer/1501002082
2、自学自动化测试教程
如果在职,不能全职学习,可以找一些自动化学习的视频,推荐下方的b站学习路线图,太多人好评,且完美符合上方展示的的自动化测试学习路径:


有关自动化测试学习视频,在这里也整理了一些,也已经分门别类列好:
《如何学习自动化测试?2182 赞同 · 305 评论回答》
https://www.zhihu.com/question/22211535/answer/1579948115
3、阅读自动化测试相关书籍
不喜欢看视频,喜欢看书,若想学习自动化测试,推荐书籍如下
推荐1:《python编程从入门到实战》

此书豆瓣评分9.1分。
本书籍免费版PDF下载地址:http://bbs.itheima.com/thread-514245-1-1.html
推荐2:《Web接口开发与自动化测试》

附:本电子书免费下载地址:http://bbs.itheima.com/thread-514629-1-1.html
推荐3:《python自动化测试实战》

推荐4:《Python实现Web UI自动化测试实战》

此书主要介绍如何基于Python使用Selenium、unittest、Pytest、GitLab、Jenkins等工具实现Web UI自动化测试,以帮助提升测试水平。
五、如何在工作中实战自动化测试知识呢?明确内化方法
实俗话说,实践出真理,学习的所有知识,都是为了解决实际工作的业务问题,只有解决问题的技术才是好技术,能解决技术的知识才能说明你真的学会了。

所以不管是通过哪种方式来学习,一定要把学习的知识应用于实践当中。
1)选择项目中某一个小模块进行试验
如果自己没有项目,可看下面的文章,找一个项目即可:
《软件测试简历项目经验怎么写,没有项目经验?810 赞同 · 120 评论回答》
https://www.zhihu.com/question/297929745/answer/2367785915
2)如果是公司项目,首先和领导沟通好自动化测试的时间投入,确定要达到的目标。接下来开始搭建环境。不知道如何搭建,也可看下面这篇文章:
《如何从零开始搭建公司自动化测试框架?410 赞同 · 70 评论回答》
https://www.zhihu.com/question/56625870/answer/2429570734
3)搭建好环境后,起步首选接口自动化测试,先进行单接口的功能脚本调试,完成后再进行接口的自动化测试调试。如果时间比较紧张,可以先选中postman或jmeter等工具,上手快,出成果快。
接口自动化测试如何做,可以看下面这篇文章
《接口自动化测试要做什么?48 赞同 · 1 评论回答》
https://www.zhihu.com/question/384727359/answer/3051556678
接口自动化工具到底是选postman和jmeter,可以看下面这篇文章:
《求推荐几款http接口自动化测试工具?168 赞同 · 17 评论回答》
https://www.zhihu.com/question/32223087/answer/1974065215
4)如果想要达到较好的效果,可以选择使用编程语言比如python进行接口自动化测试的测试,可以找一个开源的框架,直接套用,不知道有哪些自动化测试框架,可以看下面这篇文章:
《有什么好的开源自动化测试框架可以推荐?226 赞同 · 18 评论回答》
https://www.zhihu.com/question/19923336/answer/2585952461
5)当这个模块的脚本调试完成后,可以在项目测试中执行回归测试,验证测试的效果,然后根据实际的使用效果进行框架的修改和调整,在实践中优化你的脚本和框架。

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

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