从事软件测试行业的你是“摆烂”还是“内卷”?

news2024/10/6 12:22:27

工作几年后,你还在持续地学习吗?

很多人可能在工作本身上已经耗掉了所有的精力,尤其是在软件行业,加班是常态,空余时间再想集中精力学习某方面的知识会很吃力。

如果像我一样,开始几年做的是基本的功能测试,软件开发相关的东西涉及的少,也不深入,停留在基本的使用上。长时间没机会应用和练习,慢慢地就生疏了,甚至有些概念会遗忘。

等到自己想有所改变,想突破的时候,就会发现心有余而力不足。每天的工作任务要完成,下班后就想放松下,朋友之间聚一下,打打游戏就过去了。工作久了就会对重复的工作产生厌烦的情绪,排斥当下的工作内容,想做点不一样的,用编程语言实现一个网站、做一个小游戏、做测试自动化之类的。

软件的发展在不断推进,各种框架不断的出现,网上宣传的或者同学、同事经常提到的也是最新的流行的框架,自己当时也是走了不少弯路。越是无知想法越单纯,哈哈,有段时间还在研究怎么开发手机游戏,也许当时刚流行手游,又有些爆款游戏被报道多么多么赚钱,就想自己也可以做一款出来,于是网上搜怎么开发游戏,用什么语言、什么框架、作图要什么软件、怎么切图、贴图、建模、2d引擎、3d引擎、哪些开发者平台、发布平台等等。

也确实做了一段时间,不过效果可想而知,首先就是语言,C++看基础的部分都没有坚持下去,unity也跟着教程做了几个有些demo出来,用C#语言相对简单些,但是怎么设计,怎么创造自己想要的图片、模型、音效,都需要很大的学习成本,没人指导,自己也没有对应的基础,从0开始一个个的学,当时想,没有个几年的时间怎么做能出来,有点开始要自我劝退了。

既然前端这种表现层的东西,没有什么基础直接能转过来做,那么游戏的后端支撑是怎么做到的呢?是否可以做后端开发?

当时比较火的就是nodejs,前后端统一语言,我去,这一看还不学那等啥呢?搜了下真有后端框架pomelo,学搭建环境,本地跑demo,socket编程,学了一段时间,逛论坛发现还有可以用js进行开发的游戏引擎cocos creator,又是一顿乱学,三消游戏、卡牌游戏都想做。

实际做起来都是走走停停的,加上空余时间才做一点点,遇到一些问题,得百度很多,找论坛发帖子,加群问问题,感觉每一步都是在加深自我劝退。做一个游戏的想法逐渐开始放弃,不过在自我怀疑和迷茫中,也在网上发现了牛人,就是A大,AliveGameStudio,B站上可以搜索,关注了解后,个人独立游戏的路果断还是放弃了,各种差距不是一点半点。以后当一个兴趣吧,能做个小游戏就不错了,重点还是回归到了本职工作,软件测试上。

也做了很久的功能测试了,最近有在学习自动化测试,分享一下我的学习之路希望可以帮助到大家。

抛开疑问,只做学术探讨

这次我们抛开所有的疑惑,比如自动化测试到底有什么用?自动化真的能提升效率么?学了自动化能涨多少工资等等,以上的话题,我这次将不再论述,这几个问题也是平时讨论的比较多的问题。

针对以上的问题,我做一个总结,能涨工资,能多赚钱的技术,就值得我们去学!既然自动化现如今发展的这么火,自然有它存在的价值。

小白在想什么?

想必每一个大神,都是从小白一步步走上来的。当然呢,我很能理解小白的想法,因为平时经常和一些刚入门自动化测试的同行交流,也很深入的了解到他们的一些困惑。

大部分小白想的无非是以下几点问题:

1.自动化测试好学吗?
2.不学/不写代码能做自动化测试吗?
3.怎样学习自动化测试?
4.学自动化测试要先学习哪个方向?学ui自动化?还是接口自动化?好像App自动化也比较火?要么再来个小程序自动化?
5.我没有代码基础,工作都是点点点,要不要报培训班?
6.我需要学习什么语言?java 还是 python?
...等等

我来针对以上的问题,说一些自己的看法:

首先,自动化测试,很好学!但是要记住,一定要明确学习的方向,不要剑走偏锋,白花力气。

第一,不写代码当然可以做自动化测试,但是个人建议还是学习一门语言,至于学习什么语言的话,很简单,不用纠结,第一看你是否有编程基础,没有选py,有的话选java py都可

第二需要看你们的开发用的什么语言,和开发用同一门语言能在学习自动化测试的同时,降低你和开发之间沟通的门槛,提升你在公司的话语权。

第三,学习哪个方向?我建议:web ui自动化=》接口自动化=》App自动化/小程序自动化,当然,着重学习接口自动化,ui自动化要学,但是没太大必要深究。

第四,要不要报名培训班?这个看你个人,如果你觉得自己学习理解能力很强,本身自己又很自律,同时学习的方向又很明确,那么你当然可以不报名培训,多省点钱不香么?

假如你对自动化测试或者一些编程语言毫无理解,身边又没有能带你学习的人,那么报名培训绝对是一个快速提升的途径。

盖楼之前先打好地基,首先需要学习一门语言

在上面我们也提到了,自动化要想做得好,必须要学习至少一门语言。当然至于学习语言要到什么程度了?我不可能一直学下去吧?答案是,会用就行!

掌握大部分的语法基础,已经能够满足你的自动化的日常需求了,因为我们写脚本并没有像开发那么难!

语言你需要学习,for循环,if判断,数据类型,运算符,面向对象编程等等,不管是java还是python,这些都是需要的,其实也差不多,会一门语言,其他的都类似。

语言入门后,正式踏上开始自动化成神之路,入门篇Selenium

selenium作为自动化的老祖宗,已经被玩烂了,基本上只要是做自动化的,无人不知无人不晓。为什么要先学习selenium?

它能帮助你快速理解,自动化到底是个什么东西,并且能直观的在页面上面反馈给你。咱当初也是,看着selenium的api,一点一点啃下来的,几乎每个方法都去尝试了一下。

selenium有1.0 2.0 3.0,建议你学习之前,先去了解以下它的历史,u以及它的运行原理,这样可以勾起你的学习兴趣。你学习selenium,需要去安装浏览器,强烈建议使用Chrome而不是FireFox,前者兼容的更好。

安装好Chrome,你需要去安装驱动,恭喜你,这时候你就会踩到自动化的第一个坑了!大部分原因还是因为你的驱动版本和浏览器版本对不上。等能访问百度后,这里印象很深的su和kw(具体是什么等你学了就知道了)

你会再去尝试各种selenium的方法,去操作浏览器,这时候仿佛打开了新世界的大门,奥!原来自动化测试是这么个东西!真神奇!

玩腻了Selenium

等你玩了几天,或者几个星期之后,你好像对Selenium提不起什么兴趣了,脚本也写的越来越6,能写出一些线性的自动化脚本了,这个时候,有点骄傲自满,自动化不过如此,就这?

我想说的是,不要高兴的太早,你仅仅只是刚跨入自动化测试的大门,走了一小步而已。此时,你可以开始尝试,把项目中一些重复的操作,写成脚本去跑,满满的成就感有木有!自动化的成效初步形成,仿佛你开始懂得如何用自动化提升效率了。

开始接触自动化框架unittest/testNG

等你学会单元测试框架unittest/testNG,当你学会了selenium后,你会发现大部分的线性脚本,很难去管理,并且每个脚本需要去一个个run,而且还无法统计测试结果,这个时候,就需要单元测试框架登场了!

你会开始学习,单元测试框架的用法,如何创建一个测试类,如何写测试方法,如何把你的脚本写成测试用例,如何校验测试是否通过,用例的执行顺序怎么去控制,断言怎么去写,这些都是你要去探究学习的。

不满足于单元测试框架的功能

等你脚本写的很6,用例也会组织了,然后每次领导告诉你,跑一下测试,然后把测试结果发给他,要总结成测试报告的形式。

你这时候,屡次打开你的编辑器,run test,然后刷刷刷的跑完测试,一条一条的统计测试结果,累得半死,发给了领导。

第二天领导又说,下班前你再跑一下测试,给我份报告,想死的心都有了。那么你开始去逛百度,逛论坛,想要得到解决方法,那么“框架”一次就会映入眼帘。

学习自动化框架

此时,你已经开始琢磨如何写一个自动化框架出来了,那么说明你的自动化已经开始入门了,并且往着中级的方向发展,你开始研究框架的结构,发现有用例管理,日志,测试报告,邮件,基础封装类等等,还有一种框架的设计模式(经典PO模式)

你开始对你的用例进行整理,封装基类,编写页面类,封装日志,邮件模块等等,经过了几个星期的打磨,你的第一个自动化框架诞生了!

此时你可以去各个技术群去炫耀了,自动写出了一个自动化框架,很多小白也开始吹捧你,叫你大神了。

初始接口测试

以上结束了UI自动化的学习,那么下面到接口这边。一般公司用的都是http接口,那么你就从http协议开始学习了,了解它的结构,请求头,请求参数,请求地址,请求方式等等等,尝试学习一些抓包工具

如fiddler,chales,wireshark或者浏览器的开发者工具等等,去抓包获取一些接口,慢慢的观察它的请求构造,但是这时候还是云里雾里,对接口一知半解。于是下载了一个接口测试工具,尝试把参数录入到工具中,手动发起调用。

当工具返回200 code时,奥,原来是这么回事。好像就是和服务端来传递和接受数据的,然后前端页面会把数据展示到前台!

尝试学习Request/HttpClient库发起请求

在用完postman后,就会想到,那么我怎么用代码去发起一个请求呢?这时候就需要去学习这两个东西。pip install & import requests后,就开始了你的接口自动化之旅。

你尝试也是把之前ui自动化的增删改查,用接口来实现,你把抓包的请求参数拿过来,一个一个方法的调用,然后一键运行!一绿三红!为什么?然后发现接口返回了401,无权限!奥!我没有登入啊,那么怎么才能登入呢??

抱着很多的疑惑开始研究,这时候你需要去了解cookie和token的工作机制,再配合你的代码,去缓存cookie,达到登入。等解决了这个问题,但是接口还是报错了啊,删除接口提示我没有这条数据!

查来查去,原来是我那条数据已经用掉了,那么怎么可以保证我每次录入的参数都是新的呢?这时候就需要去了解接口关联,如何把参数从上个接口的响应提取出来,给下个接口用。

request/HttpClient结合unittest/testNG+allure

一样的,等你学会了 request/HttpClient,自然也会想到用单元测试框架把他们集成起来,然后又发现了一个高大上的allure测试报告,再结合一些日志模块打印参数,轻车熟路的这么一个接口框架就出来了,和之前的差不多!小意思。

尝试用yaml/Excel管理测试用例

等你拿自己的框架,重复枯燥的写着测试用例,这时候你想了,我为啥每次都要request.post,方法都是一样的,只是数据不一样,为什么我要一直写代码呢,很累啊!为什么不用一些文件来读取测试数据,做参数化呢?

这时候你开始研究读写excel/yaml了,你想把所有的测试用例都放在文件里管理,就不用每次去写代码了,然而事情并没有那么简单!那么我在文件里如何去处理关联数据呢?如何去缓存cookie呢?如何做断言呢?如果做一些动态的输入呢?

以上问题就留给你们自己去想了。

高级货?git?jenkins?docker容器?分布式?

走到这一步,你已经写过好几个框架了,并且基于自己的框架做了优化,那么你此时发现一个很严重的问题,我的代码居然只能在我本地运行,如果要给别人用,还需要去别人电脑上配置环境,copy代码给他。

那么为什么不用一些代码管理工具去管理我的脚本呢?那么就会需要去学习git,了解如何add commit push推送我的代码到公司的gitlab,这样别人也可以使用,那么有了gitlab,我想做一些定时任务,让它自动执行呢?

学jenkins。再更多,要是我想多个用例一起跑呢?学习selenium grid,docker等等。。

自动化顶端之测试平台/工具开发

等你搭建好公司的自动化生态,你还是不满足,我为什么不把这些东西可视化管理呢?做个平台?管理用例,管理任务,管理测试报告?我还可以把公司的一些部署任务也集成过来?

想法很好!此时的你已经不仅仅是一名优秀的自动化工程师了,已经迈向了测试开发的道路!开始学习,了解了测试框架httprunner,开发框架django/flask/springboot,懂得了接口开发的流程,了解了mybatis,shiro,quartz等等,开始学习前端

vue/react,懂得了什么是组件开发,父子组件传值,开始了解很多东西,甚至运维方面的知识,开始了解k8s docker,微服务。。那么你越来越往着大神的方向去了,希望你还没有秃头,此时的你可以骄傲的称自己为一名合格的测试开发,或者叫全栈开发了有木有!到此告一段落。

PS: 以上就是我个人,也相信是大部分学习和喜欢自动化测试的一个学习路线,当然本次没提到一些App端/小程序端的自动化测试,其实也都大致类似。希望各位看完本文章点个赞!祝大家少走弯路

正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API自动化测试:如何构建高效的测试流程

一、引言 在当前的软件开发环境中,API(Application Programming Interface)扮演了极为重要的角色,连接着应用的各个部分。对API进行自动化测试能够提高测试效率,降低错误,确保软件产品的质量。本文将通过实…

IT安全解决方案保护企业网络安全

全球每年报告数以万计的网络安全事件,云解决方案和远程工作的大规模采用意味着大多数组织的攻击面呈指数级增长。采用正确的网络安全解决方案是保护企业免受这些攻击的唯一方法。使用正确IT安全解决方案企业网络安全。 IT安全解决方案 ManageEngine IT安全解决方案…

5 月 Web3 游戏月报:增长有迹可循,但困局仍在

作者:lesleyfootprint.network 5 月 13 日,Line 旗下 NFT 子公司计划将于 2023 年发布五款 NFT 游戏。越来越多的游戏开发者和项目开始涌现,web3 游戏不再仅仅是投机的象征,而是真正有越来越多的项目方深耕与此。然而&#xff0c…

2023-6-13-IP配置知识补充学习

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

大数据分析平台释疑专用帖第二弹

不管是想要快速了解BI大数据分析平台,还是想要了解BI和自己的需求匹配度,都可关注我们的释疑专用贴。 1、可以分析直播数据吗? 严格来说,只要能够提供数据,就可以做数据可视化分析,直播数据也同理。 如果…

活动新闻稿为什么有企业采访,权威专家表述更容易被央媒报道

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 最近有很多新闻稿想让胡老师来同步一些央媒,或者地方头部媒体,因为媒体的权重都比较高,有些稿子写的比较平,缺乏亮点和新闻性,…

接口测试工具Postman学习之常用断言

目录 什么是断言? Postman常见断言方法介绍: 总结: 什么是断言? 断言——就是结果中的特定属性或值与预期做对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。…

Java实训日志02

文章目录 八、项目开发实现步骤(二)创建项目1、创建Java项目2、创建目录,添加素材(1)创建help目录添加帮助文档(2)创建images目录添加图像素材(3)创建lib目录添加数据库驱…

直播预告 | 博睿学院:AIOps利器-混沌工程实践

混沌工程是通过应用一些经验探索的原则,来学习观察系统是如何反应的。应用混沌工程可以对系统抵抗扰动并保持正常运作的能力(稳定性)进行校验和评估,提前识别未知隐患并进行修复,进而保障系统更好地抵御生产环境中的失…

window Cmake开发环境搭建

背景 最近的项目需要从linux转战至Windows。因为之前的项目都是在linux环境下开发的,代码也是通过CMAKE编译。攻欲善其事,必先利其器。首先要考虑的是如何在Windows环境下使用cmake编译代码。 另外一个就是IDE的选择了,相比于动辄 好几个G的…

小程序中半屏打开其他小程序,开发者工具调试半屏

前言: 有需要是在当前小程序中,点击操作时,如果他没有注册会员,则强制去另一个小程序去注册会员,注册成功在返回,在这期间,打开另一个小程序是半屏来展示的。 实现效果: 在a小程序中…

Python七彩花朵

目录 前言 小海龟 花朵类 移动函数 画花朵 尾声 前言 来啦来啦来啦,小伙伴们快快来领取七彩花瓣雨吧!! 小海龟 老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧! 小海龟(Turtle)是P…

19c ASM命令

发现19c和11g有些asm命令参数不完全一致,这里记录下,持续更新 ###kfod命令 查看asm磁盘 #kfod disksall 查看asm磁盘组 #kfod opgroups 特定diskgroup情况 #kfod statustrue gdata 查看磁盘与磁盘组的对应关系# kfod disksall groupdiskgroup ds…

JAVA开发(分布式部署微服务注册到Eureka出现registration status: 204错误)

问题背景: 将服务注册到多个Eureka出现有点的服务只注册到一个Eureka有点的服务可以注册到多个Eureka的问题,有的注册不上,报错:registration status: 204 Eureka界面: Eureka1: Eureka2: 从…

是德DSOX3014T MSOX3014T数字逻辑示波器

概述: keysight是德DSOX3014T MSOX3014T数字逻辑示波器8.5 英寸电容触摸屏让操作和归档变得更加简单,可以加速您的测试,独有的区域触控触发技术支持您在几秒钟内轻松隔离信号,独有的区域触控触发技术支持您在几秒钟内轻松隔…

Java Swing界面 示例代码+效果

1.Swing 轻量级组件,由java编写 2.常用窗口 2.1 JFrame JFrame是一个容器,是一个顶层窗口 常用方法: setSize(int width, int height); setLocation(int x, int y);//窗口距离屏幕左上角位置,默认(0,0…

进行兼容性测试需要注意什么?

兼容性测试是一项非常重要的软件测试过程,它确保软件能够在各种不同的操作系统、浏览器和设备上正常运行,那进行兼容性测试需要注意什么? 1、确定测试范围 在进行兼容性测试之前,首先需要确定测试的范围。这包括要测试的操作系统、…

我收集的一些与学习相关的自用网站

目录 前言 一、学习教程网站 廖雪峰的官方网站 菜鸟教程网站 W3school网站 BEJSON校验网站 C语言中文网站 码农教程网站 JavaScript中文网站 CSS参考网站 Htmlcheatsheet 网站 练习CSS选择器网站 练习CSS Fiex网站 css自动生成流行布局和模式的集合的网站 交互式…

单例模式(三)

过气的,终究是过气了 上一章简单介绍了 UML 类图(二), 如果没有看过,请观看上一章 一. 单例模式 所谓的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实…

Jmeter之单接口的性能测试

目录 前言: 性能指标 测试工具选择 Jmeter 获取性能指标 编辑接口信息 设置监听器 开始监控 收集监控数据 数据指标分析 总结: 前言: 服务端的整体性能测试是一个非常复杂的概念,包含生成虚拟用户,模拟并发&a…