功能测试如何转自动化测试?我的年薪40W成长之路
Posted 不是Z君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了功能测试如何转自动化测试?我的年薪40W成长之路相关的知识,希望对你有一定的参考价值。
接触了太多测试同行,由于多数同行之前一直做手工测试,现在很迫切希望做 自动化测试,其中不乏工作5年以上的同行,更有面临中年职场危机的前辈,在转行or转自动化测试上茫然不知所措。
我从事软件自动化测试已经近8年,接触过底层服务端、API 、Web、APP、H5 等等,对自动化算是比较了解。在此分享一下个人经验。
想做自动化,首先得了解一下自动化测试的一些常见问题。
也是面试时,必问的一些问题(这么简单的面试问题,你却答的一塌糊涂),如果对自动化完全不了解,每天在那嚷嚷要做自动化,都是空喊。
自动化测试一些问题
1. 什么是自动化测试?
自动化测试,顾名思义,自动完成测试工作。
通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。
自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。
因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。
2. 为什么要进行自动化测试
为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
1)自动化测试节约成本(根据项目)
毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.
2)有些测试项目手工很难实现(手工成本较高)
比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
3)项目质量流程需要
比如版本管理需要build verify,以保证check in的code不会影响版本库。
类似于smoke test
自动化测试的优缺点
优点
避免测试人员因重复劳动产生厌倦
提高测试效率
保证每次测试地一致性和可重复性
更好的利用无人值守时间
进行一些手工无法进行的测试
缺点
维护成本相对比较高
系统开发时间不一定能缩短
还是得依赖手工测试,很多问题无法发现
什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)
有以下几个特点的项目比较适合自动化测试:
- 项目变动少
- 周期长
- 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)
举例说明:
互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。
比如某宝双12活动相关项目,一周之内就下线了。
适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化.
什么样的人适合做自动化测试?
这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储
你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。
扯了这么多,究竟什么什么样的人能做自动化测试?
我的理解分一下几点:
1)拥有代码能力
掌握一门开发语言,java、Python、ruby、c#
2)熟悉被测系统
比如你是web测试,你就得懂js、css、html、xpath
你是移动端测试,你就得具备android 开发基础和ios开发基础,会debug app
你是 C/S测试你就要很熟悉[TCP](javascript:😉、IP协议
3)掌握一套自动化测试框架(工具)
比如
selenium/appium
nunit/testng
robot framework/cucumber
4)善于学习,达到知其然知其所以然
IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。
曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存.
曾经qtp很火,曾经selenium也很火,现在appium也很火
软件行业从桌面软件到web端,又从web端迁移到移动端,谁也不知道下一个是什么。而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核心的能力就是学习能力。
如果你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移,
selenium的原理你掌握了,学习appium简直小菜一碟,因为appium使用的是:selenium WebDriver protocol 。
如果你能做到知其然知其所以然,你也可以造轮子,改造appium,毕竟现在很多功能需要完善。
如果你没有达到以上的几点,还想要转自动化测试。应该怎么去学?
个人认为,如果之前零基础,想入行测试,报个培训班是快速入行的一种方式,但如果有一定测试理论基础,学习能力不是特别差,自动化相关的内容建议边自学边拿公司项目实践,培训机构也无非就是教你如何使用工具、框架,然而每个公司每个项目多多少少都有区别,还需要再斟酌用什么框架什么语言如何更新维护。
如果你有代码基础,想要从事自动化测试怎么去学习?
1、很多初学者很纠结,学qtp还是学selenium
我的建议是学selenium,开源的,免费的,你可以下载源码研究,去了解其原理,再者现在selenium的资料不要太多,随便搜搜一大堆,学起来比较轻松。
不建议学selenium IDE录制,当然你可以通过录制一些然后转换为相应的脚本去学习,等你学好了selenium, 再去学appium你会有一种天然的似曾相识。
2、关于自学书籍?
自动化工具类的书,不建议买,很多书已经过时了,并且质量渣渣,你买了那些书中的code已经不能用了,如果你真的想学,就去官网找example,去相应的社区和群交流,或者直接看API/源码.
当然,测试基础类的书籍,至少得看过一本,有系统性的知识。
3、关于培训
学习从来不是时间的问题,而是效率的问题!都0202年了,互联网时代的下半场。
参加软件测试培训,主要的目的是为了找到一份合适工作,培训适应了时代的需求相对于自学更加省时,省力,能够满足快速上岗的。通过培训来转行,本来就是趁热打铁,一鼓作气,早点学完早点上班,学习周期拉的太长,反而容易学着后面的,忘记前面的,如果线上学习还好,线下面授如果学习周期过长,房租什么的都是成本啊,早点拿到offer上班,赚回培训的学费,这才是王道。
共勉:【给予你的帮助】
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。
关注我的微信公众号【程序媛木子】免费获取~
不登高山,不知天之高也,等待只会错失,奋斗才能成功。
我的学习群:644956177 群里有技术大牛一起交流分享~
总结:
新人学习自动化测试要:
· 掌握一门开发语言
· 掌握一些基础的知识
· 自动化方面,少买书,多看测试框架的Document,多去技术社区交流
· 不断学习,提升自己发现问题,解决问题的能力
· 不做伸手党,多动手
总而言之
· 学习一门开发语言,Java/Python,学习一个测试工具selenium/appium,掌握一个测试框架,testng,cucumber 等
· 平时多沉淀,然后抓住机遇,即可轻而易举的转型自动化测试。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
以上是关于功能测试如何转自动化测试?我的年薪40W成长之路的主要内容,如果未能解决你的问题,请参考以下文章