功能测试怎样才能进阶到自动化测试,前字节测试工程师告诉你几个高效的学习方法。

首先必须熟练整个产品的业务流程、业务是基础,这样保证产品在快速迭代时、不仅保证新功能的完整性,而且快速回归原有功能不受影响。

然后需要掌握一些常用测试工具来辅助测试:

  • Web端测试:浏览器开发者工具使用,network、console控制台、兼容性测试
  • 移动端app测试:(安卓/IOS/ipad端)测试全流程,兼容性测试、稳定性测试,流畅度测试、adb常用命令
  • 服务端:掌握接口测试、抓包工具使用、如何校验接口的完整性
  • Linux:常用shell命令,查看错误日志
  • 数据库测试:熟悉数据库表结构,掌握常用增删改查sql语句,便于分析测试结果。
  • 常用工具使用:SVN/git版本控制工具 、postman、jenkins应用打包和构

换句话说,如果你拿到一个新的产品测试功能,你如果能通过数据库的表结构,和分析系统日志来快速的熟悉产品业务,说明你的测试思维,功能测试能力已经非常优秀了。

当时我掌握了以上技能点,在公司将工作效率提高了,相对比较轻松,这就导致我有充足的时间,拾起编程语言,最初用的java语言,然后学习各种自动化测试技术,当时觉得自动化测试特别有意思,而且挺有成就感,激发了我让自己对测试的理解和对技术更深入一层,成为一个专业的测试人员。

后来发现Python语言越来越火,而且我觉得python来做自动化和对于编程基础比较薄弱的测试工程师来说特别的合适,python还能用来爬虫,用python还能写一些定时脚本,数据库脚本,效率非常高。

自动化测试的心得

当你成为一名自动化测试工程师并开始你的测试工作时,出现问题是很正常的。如果你还没有深入研究Selenium自动化的测试脚本,就急于进行自动化网站测试,也可能会出现这种情况。虽然从错误中学习是件好事,但通过向他人学习来预防肯定是更好的。

自动化测试是一个蓬勃发展的行业,从小型Junit测试到大型的Selenium脚本,每个人都在走向自动化。你可能会遇到添加了小补丁的相同代码,并且必须再次运行相同的测试。随着自动化的发展,重复任务的误差率会降低到零,但这一阶段只有经过一定的实践和积累才能实现。

当你第一次尝试自动化时,出现问题很正常,但也是可以避免的,毕竟出现问题就意味着损失,增加成本。所以,作为一名自动化测试新手,希望你能牢记这些注意事项,成为一名优秀的自动化测试工程师。

还有一个经验就是,自动化也需要设计,也需要规范,需要框架。

有了这些教训,后面自动化实践看起来就像样多了,也慢慢有了效果,但在运行过程中,我又发现了一个致命的问题:自动化测试脚本误判!跑出来的结果明明是pass,但实际上是失败的!omg!甚至还出了网上问题!

这段时间我也读了大量的测试书,记得之在一本当时很流行的测试书中也看到这样的问题,他们的解决方法是记录整个测试过程,但是这又引入新的问题,内容太多,分析不完。我对书中的做法表示怀疑,觉得这还算自动化么。

带着问题去思考和学习总是特别有效。公司中牛人很多,和前辈们讨论交流,发现原来这些问题,是可以通过写好自动化的检查函数来改善甚至避免的。这让我认识到自动化的难点不是让脚本模拟测试者的操作,能够运行起来,而是在check。很多人都喜欢把自动化测试比作"机器人"。自动化测试中模拟测试者的操作,是这个自动化机器人的"手",而check就是机器人的"大脑"。check没有做好,自动化就不够可靠,做也是白做。有同学认为单元测试和接口测试不用太关心对check的设计,我认为这也是不正确的。Check的设计对UI和CLI自动化会比单元测试和接口测试更为重要一些,仅此而已。

自动化不是个人行为,要让一个团队每个人都能快速写好自动化,把check做到位,是自动化管理的难点。一个经验就是,针对业务特点来总结有哪些check类型,然后对这些类型来封装函数,让大家就可以根据用例的情况来用这些函数。

记录测试过程也是需要的,对可能的测试结果分级,设计各种全局调试开关,做出分层级的测试结果报告。除了"成功"和"失败"的状态,还可以加入一个"怀疑"的状态,总结测试时的定位手段和思路,让脚步可以有针对性的抓取更多的定位信息,而不是一出现问题就只有重跑一遍脚本,这不仅提高了自动化测试的效率,还可以提升产品的可测试性水平。

把这些都做好后,自动化就变的舒服多了。后来我的实践还证明,做好check的设计还是提高UI和CLI自动化测试率的方法。自动化测试走上正轨后,我们又开始思考各种小改进,比如自动回填结果,自动生成脚本等等。

关于测试开发

后来一个机缘巧合,朋友推荐我进入字节做测试开发,负责开发公司定制化的测试质量平台。

这对于我来说也是一个挑战,新的领域,测试开发在一线城市非常吃香。当时的待遇比初、中级开发工程师要高。

到岗后顶住压力,不断的系统学习测试开发技能,而且学以致用。技术架构采用的是前后端分享,包括Python的后端开发框架Flask,前端框架,elementUI组件等

坚持做了几年的测试开发,真实的体会到测试开发等于测试全周期的工作,包括产品功能业务熟悉,测试平台的需求设计,平台前后端研发,平台的自测,给到测试部门几十号人的推广、培训产品使用、运营。

所以测试开发的大前提是功能测试经验丰富,接口自动化,UI自动化非常熟练,不然很难以开展测试开发工作。

目前测试平台项目研发已经完成并且已开源,有兴趣的朋友可以联系我

测试行业的现状

现在测试行业的的趋势,你去面试任何级别的测试工程师都会问你是否会自动化测试,所以自动化测试已经是必备技能,面试时的加分项。

换句话说,会用开源的测试工具不足以在公司涨薪或者跳槽至一线互联网大厂。因为真正企业自动化测试落地肯定是一个团队在做,当你熟悉使用这些开源框架之后,你会发现有些框架之间是相通的,所以基于这些开源框架,我们打造一个属于自己的测试框架,可以根据公司实际测试需求自主封装适合项目的测试框架,落地实用。建立自己的技术体系,得到一套落地有效的自动化测试方案,从青铜变身王者。

这样让我们自动化团队将更多的精力放在测试用例设计本身上面,达到提高产品质量,提升效率的目的。

在这7年测试经验,我看到了太多想提升测试技术而没有明确方向的人,深刻的体会到测试人员的技术痛点,以及测试这个角色在互联网公司的待遇和地位远不及其他岗位,甚至还是会有很多人会认为测试在公司随时能被取代,可有可无。
 

如何在繁琐重复的手工测试工作中,慢慢扩展积累测试技术,建立自己的技术体系?

大部分进入测试行业的朋友,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测试工具,比如抓包,数据库,linux等。

但是有个比较常见的问题,由于现在企业大多数都是敏捷开发模式,容易陷入版本快速迭代中,以至于没有时间精力再去额外学习一些高级和主流的测试技术,如某种编程语言、自动化测试工具、测试框架搭建、测试平台研发。

即使挤时间强迫自己学习,也不知道从哪里开始入手,那些碎片化的东西,只能让你了解,很难很难消化,

当你要形成自己的输出,用自己的思路和技术来做项目的时候,你要回到那个知识框架里面去学习

不要碎片化信息学习,那不叫学习,要有决策性学习,系统的学习,学习解决问题的思路。

比如自动化测试,已经是测试工程师的必备技能,搭建自动化测试框架也是测试人员能力分水岭的体现。

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值