余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

7年从测试废物到测试主管,如何从纯功能测试内卷中破局?

xiyangw 2023-05-14 11:59 12 浏览 0 评论

我大学学的计算机专业,有一点编程基础。我的软件测试职业开始和大多数测试人员一样,一开始在一家电商公司做软件功能测试。


7年从测试废物到测试主管,如何从纯功能测试内卷中破局?

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


有人留言问到我,在一线城市做功能测试,如果定个小目标,想拿到年薪20W,需要具备哪些技能?


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


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


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


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


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


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




放弃年薪20W的offer,挑战自动化测试


我当时在公司得到了领导的信任,待遇方面工资加上年终奖,年薪能达到二十万。


但是在由于当时公司规模和产品的局限性,导致自动化测试始终未能应用到公司实战项目中。我觉得外面的世界很大,自动化已经流行而且越来越普及,我想要突破自己的测试技术瓶颈,我毅然决然的跳槽一家公司专职做自动化测试工作,于是我顶住压力,不断的系统学习自动化测试技能,而且学以致用。


我将公司产品前后端的自动化测试全部落地实现。


那些自动化脚本真正成为公司资产,在每次上线回归带来的收益远超出我的预期。


并且定时在公司的技术分享会展示效果,那种从0到1的成就感非常难忘。


后面负责自动化测试团队工作,核心框架搭建学习用到的技术栈包括Python语言、Selenium、RF、Requests、Jenkins、以及见识到先进主流的Docker容器技术,持续集成等


让我见识到技术的魅力,技术功底的提升能让整个人非常自信。


所以自动测试给我带来的收益不仅仅是待遇的提高,包括中间做自动化测试遇到的坑,解决问题的思路,以及技术的扩展,增长了见识。


最终形成了一套知识框架体系,得到一套有效落地的自动化测试方案。




自动化测试的心得


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


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


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


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


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


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


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


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


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


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






关于测试开发


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


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


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


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


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


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




测试行业的现状


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


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


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


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




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


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


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


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


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


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


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




那么如何来全面的学习自动化测试呢?


作为一名软件测试工程师,该怎样努力才能快速成为一名优秀的测试开发大佬,这不仅是一个刚刚踏入职场的软件测试工程师,也是工作三五年之后开始迷茫的工程师,都必须要面对和想明白的问题。




一、测试基础


了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维





?




二、Linux必备知识


Linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有Linux能力。





?




三、Shell脚本


掌握Shell脚本:包括Shell基础与运用、Shell逻辑控制、Shell逻辑函数





?




四、互联网程序原理


自动化必经之路:前端开发基础知识以及互联网网络必备知识四、互联网程序原理





?




五、MySQL数据库


软件测试工程师必备MySQL数据库知识,不仅仅停留在基本的“增删改查”。





?




六、抓包工具


Fiddler,Wireshark,Sniffer,Tcpdump各种抓包工具适用于各种项目,总有一款适合你的





?




七、接口测试工具


接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman





?




八、Web自动化测试Java&Python


了解自动化的目的,熟练掌握TestNG&unittest自动化框架,以及断言与日志处理





?




九、接口与移动端自动化


专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用





?




十、敏捷测试&TestOps构建


揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心





?




十一、性能测试&安全测试


软件测试的彼岸:性能测试和安全测试,选个方向努力爬坑吧!





?


相信你根据这个学习架构路线,不断地去摸索与提升,突破技术的瓶颈,可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。我也是走过这样一段路,才能获得更多高薪职位的机会,付出终有回报,也算是对我能力的一种认可吧,真正的证明了自己的价值。


这里给大家分享一下,我是一名摸爬滚打七年的测试人,自己根据这些年从事测试的经验,整理一套系统的自动化进阶教程(课件+笔记+案例源码+测试工具使用文档),跟大家分享下我的成果,定期更新教程和学习方法、学习资源、分享自研自动化测试平台,感兴趣的小伙伴可以关注我


这份资料也已经帮助了很多的软件测试的学习者,希望也能帮助到你。点赞收藏文章后可以私信我关键词“资料”即可免费领取!最重要是免费的!免费的!免费的!





?


这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!




最后


凡事要趁早,特别是技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。


如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

?

相关推荐

辞旧迎新,新手使用Containerd时的几点须知

相信大家在2020年岁末都被Kubernetes即将抛弃Docker的消息刷屏了。事实上作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使...

分布式日志系统ELK+skywalking分布式链路完整搭建流程

开头在分布式系统中,日志跟踪是一件很令程序员头疼的问题,在遇到生产问题时,如果是多节点需要打开多节点服务器去跟踪问题,如果下游也是多节点且调用多个服务,那就更麻烦,再者,如果没有分布式链路,在生产日志...

Linux用户和用户组管理

1、用户账户概述-AAA介绍AAA指的是Authentication、Authorization、Accounting,即认证、授权和审计。?认证:验证用户是否可以获得权限,是3A的第一步,即验证身份...

linux查看最后N条日志

其实很简单,只需要用到tail这个命令tail-100catalina.out输入以上命令,就能列出catalina.out的最后100行。...

解决linux系统日志时间错误的问题

今天发现一台虚拟机下的系统日志:/var/log/messages,文件时间戳不对,跟正常时间差了12个小时。按网上说的执行了servicersyslogrestart重启syslog服务,还是不...

全程软件测试(六十二):软件测试工作如何运用Linux—读书笔记

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你对Linux...

Linux运维之为Nginx添加错误日志(error_log)配置

Nginx错误日志信息介绍配置记录Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(nginx_core_module)的参数,该参数名字为error_log,可以放在不同的虚机主...

Linux使用swatchdog实时监控日志文件的变化

1.前言本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化。swatchdog(SimpleWATCHDOG)是一个简单的Perl脚本,用于监视类Unix系统(比如...

syslog服务详解

背景:需求来自于一个客户想将服务器的日志转发到自己的日志服务器上,所以希望我们能提供这个转发的功能,同时还要满足syslog协议。1什么是syslog服务1.1syslog标准协议如下图这里的fa...

linux日志文件的管理、备份及日志服务器的搭建

日志文件存放目录:/var/log[root@xinglog]#cd/var/log[root@xinglog]#lsmessages:系统日志secure:登录日志———————————...

运维之日志管理简介

日志简介在运维过程中,日志是必不可少的东西,通过日志可以快速发现问题所在。日志分类日志分类,对不同的日志进行不同维度的分析。操作系统日志操作系统是基础,应用都是在其之上;操作系统日志的分析,可以反馈出...

Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过

这两天沸沸扬扬的Log4j2漏洞门事件炒得热火朝天:突发!ApacheLog4j2报核弹级漏洞。。赶紧修复!!|Java技术栈|Java|SpringBoot|Spring...

Linux服务器存在大量log日志,如何快速定位错误?

来源:blog.csdn.net/nan1996jiang/articlep/details/109550303针对大量log日志快速定位错误地方tail/head简单命令使用:附加针对大量log日志...

Linux中查看日志文件的正确姿势,求你别tail走天下了!

作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于我这种小菜鸡来说,第一反应就是cat,tail,vi(或...

分享几款常用的付费日志系统,献给迷茫的你!

概述在前一篇文章中,我们分享了几款免费的日志服务器。他们各有各的特点,但是大家有不同的需求,有时免费的服务器不能满足大家的需要,下面推荐几款付费的日志服务器。1.Nagios日志服务器Nagio...

取消回复欢迎 发表评论: