我是如何从功能测试转成自动化测试的!

news2024/10/7 16:25:45

大家好,我是测试君。(六哥也行)

时间过得好快,不知不觉已经在这个行业摸爬滚打10年多了,也算是测试圈的一枚老兵了。

回想自己在自动化求知路上的种种,依然历历在目,看着自己一步步的走来,真的是很不容易...

如果没看过刚做测试工作一年的时候,我是怎样的?,可能在故事的衔接上有些困难,感兴趣可以看第一篇,会看哭的哦。没错这是个真实的故事:

结缘自动化测试

入职新公司后,和我一起入职的新同事(简称DJ),一起到楼下一个运营中的项目进行「业务熟悉、学习及考核

在学习业务的一个月期间,每天真的没那么多活一天最多一个bug,让你验证下,也没写过测试用例

一个bug,快的话几分钟验证完了,业务和基线文档也看了很多遍,可以说是很熟悉了

闲不住的我,就自己找点东西学学和研究。偶然被测试组长发现并和我说,接触过自动化测试吗?一会给你发个文档,有时间研究下。

对我而言,从未接触过自动化测试,但是直觉告诉我,这个东西应该很“炸”,感觉就是高大上有搞头

趁着周末休息,花了一天时间研究了文档中内容,以公司项目为例写了一个登录的Demo。周一给测试组长看了下,得到了测试组长的肯定,说我上手很快呢

没想到还不错,自己不是太笨。

图片

劝退边缘

可是好景不长,一切看似很美好,但挑战也随之而至。面试我的副总说我们在楼下的业务学习已经结束要回到自己的部门了,先让我和DJ写一个我们部门项目测试用例,一人一个模块。

当然,我是不知道测试用例该怎么写及正确的标准

结果,用例交上去后,可想而知了。

副总找我谈话,说我写的测试用例不合格,并说再给我一次机会,如果写的还是不行,给我七天找工作的时间,其实就是要被劝退了

我深深的知道问题的严重性,这是我最后一次机会了,一股强烈的生存欲望,在心里燃起来。心想一定要留下来,必须要

图片

真的留了下来

我先基于自己的理解,按照原型图,设计编写用例。整理后把原型图和用例打包,发给老宋和我同一个培训机构早一期的学员。她又帮我过了一遍并在用例里加批注和标识并指出有哪些不足

按照她的指导建议,我又把用例优化整合,再次求助、发给我楼下学习业务时的组长姐姐,查看是否有遗漏。

在她的帮助下,我再次将用例整合修改,发给副总后,一次就通过了

在这次的设计编写、测试用例过程中,我收获了设计、编写测试用例的标准及思路,真的很感谢这两个朋友,在我最危难的时候帮我度过难关…

图片

人员紧张

考核通过后,回到了自己组干活。我和DJ,共同组成了部门的测试组。也就是一共俩人。由于公司业务很忙,根本忙不过来,996基本是常态了

领导从楼下借了一个测试同学上来一起干活,是一个帅气的大男孩,长的很干净,技术和业务都很棒。

重点是开发同事总夸他细心、定位问题快,尤其在测试用例编写和业务测试方面,我很是羡慕。

用例编写强化

有时崇拜,也许将会是你进步的巨大助力。

成长一般都是从“copy”开始。

一旦在不太忙的情况下,就去禅道看他写的用例和提的bug,并在认真记录遗漏的点,业务不懂得地方就整理好去找产品经理反复确认。

很快,我的用例部分和业务短板就得到了改善。

再次得到认可

当然,这不是重点,当时的我,就是很乖巧的干活,一有时间就学习。

一次公司意外断网,大约有三个小时左右,其他同事基本都在玩手机。

而我依旧自己习惯性的打开IDE,编写、调试着脚本。愉快的在代码的世界里遨游,并不知道副总在我身后站了好一会

突然副总说,以后拿我们的系统来写,回归测试也用得上,一会让XX给你找下之前某XX写的自动化框架代码来熟悉下,以后用这个来写。

我这时才注意到副总在身后,再次得到认可,真的是无比开心

图片

跨语言的学习之路比想象中更难

拿到代码后,自己还是犹豫了下的。

为什么?

刚开始接触自动化测试那会,给我的PDF文档是基于JAVA语言的。虽然,自己可以写个登录的Demo,但并没有想象中那么顺利。

越看到后面,越发现自己存在很严重的代码知识断层,也就是说后面代码完全看不懂了

我也是第一次,遇到代码不会,被无视的情况。

也是我在楼下学习业务期间,我旁边坐的是据说是当时公司里比较厉害的,性能测试大神。

我看到他办公桌上,放着一本名叫《锋利的jquery》这本书。就斗胆向他请教了一个关于for each遍历的问题,对方看了我一眼,然后就嗯了一声,没在说话了。

我觉得好像被无视了,当然也可能对方没听清楚。

我在怀疑,咋就那么难,内心也在摇摆,是不是要继续坚持下去

图片

自学之路开启

逃避心理驱使下,偶然在一个技术群中,听说基于Python的自动化测试,特别好上手,我便开始了新的尝试。

我在群共享里找到了虫师的写的基于Python的自动化测试第二版(上手超级简单)来学习,当时的感觉,犹如拿到。武功秘籍的感觉,特别开心

图片

一个多月我就把这个文档学的差不多了,其实也就是自动化的API比较熟悉,写线性脚本一点问题没有,至于可维护性、稳定性、健壮性还是欠考虑的。

副总给我前同事框架也是基于JAVA的语言。拿到后,是完全看不懂的。再有一个更严重的问题就是,代码报错,我没人问,也不知道问谁,开发都是JAVA,根本无从下手。

后来一咬牙,心里想了想,这个框架也许可以学到更多东西,便开启了Java学习之路。

再次被警告劝退

楼上的问题很严重,日益暴露,没有测试组长。所以测试的工作及流程呈现出相对被动的状态

副总让我们部门的一个大姐来负责测试组的管理,大姐并不懂测试,经常会因为功能未开发完(预留功能)给开发提bug,和开发相处很不愉快

测试组陷入一个“怪圈”,给人乱提bug的现象。

996节奏的常态,可能会使得每个人变得烦躁。

每次测试组例会,氛围凝重,都只有大姐在说话。除非必要,我们三个基本一句话没有,每次开会都和追悼大会一样沉寂,尴尬无比。

也许我和这个大姐天生气场不和,无论我做什么大姐都要给些指导性的“建议”,重点是对我没用,而且工作效率并未得到提升,反倒时间成本会更多,后来我就不听了。

一次偶然,大姐用了同样的句式(劝退)说,说我工作态度不好,再给我一周时间观察,不行就找人事劝退我之类的话。

我当时立即就服软,怂了,连忙借口说和女朋友吵架(我哪里TM有女朋友,每天连个说话的人都没有,吵个毛线),并表态说好好调整。

理论上说,我服软了,应该会好些了吧。但是我发现了,你越是软弱,人家越欺负你,也就是老人说的话,欺负人,总拿软柿子捏

成功转型专职自动化测试

有一次分配完测试任务,我有一处没太清楚,就多问了一句。大姐说我说话层次不清晰,不知道怎么问问题,要学会提问的流程和方式,并让我画个流程图,这明显是找茬嘛!

我没有说话,回到工位上,整理了下情绪。真的就画了一个提问问题的流程图。然后,先给DJ看了下,询问是否有问题。

大姐见势,马上把我叫出去谈话了,问我什么意思,说我给他上眼药呢,说了又要劝退我之类的话,我没说什么,只是随声附和。

第二天上午,我去找了副总,询问是否可以转部门,并表示出和这个大姐相处不愉快的事,但并没有说她要劝退我的事

我意外的是副总,问的都是自动化测试的事一些情况和进度。我说可以熟练使用了,副总听完,就说以后你的工作和我对接,只做自动化测试,不做功能测试了

听完后,我愣了几秒,并连忙表示感谢,这对我而言无疑更是一种认可

图片

成长蜕变

借用王耳朵先生的一段话:

给自己设定一个强烈要实现的目标,立刻行动起来,钻研学习;

找到一个利于自己发展和精进的环境,保持自律;

重视量的积累,阶段性地记录、审视自己的成长;

刻意练习、耐心复盘;

修正错误,长久坚持;

虽以渺小启程,愿以伟大结尾。

往更好的自己奔跑,去迎接一个牛逼哄哄的人生。

作为一名毕业于一所普通大专院校的大学生,学的不是计算机专业靠着自学编程,变成了现在半个“程序员”。

非科班出生的我,当时在公司只是个菜鸟

北京很大,比我优秀的人比比皆是,我只能说是普通的不能再普通了

生活、工作的机械性会很快磨灭了内心的斗志和野心。如果不尝试改变,走出舒适区,那和求稳定,坐等领工资,混吃等死没什么区别,显然,不适合我。

内心是如此的渴望,自己变强,为什么我这么弱,为什么?

内心深处一个声音,很清晰的告诉我,一定要成为公司独当一面的自动化测试工程师,果断开干。

《一万小时天才理论》这本书里,作者丹尼尔·科伊尔走访了世界上最成功的足球运动员、小提琴手、战斗机飞行员、艺术家、作家……最后挖掘出一项真理:

多数结果都在于刻意练习。

从环境搭建、java面向对象、maven、JavaWeb等等技术开始学起开始,一个知识点一个知识点的攻克。

每天除了完成日常工作之外,就是地铁上各种看java视频,阅读源码,撸官方文档。

晚上回家接着撸代码,每天学到凌晨两三点是常态

当然,期间也加入了很多QQ技术群,和很多小白一样,问一些很low的问题。而且,每次我都是问题最多的那个 。

从QQ群问问题到硬磕框架,让我的自学能力得到了很大的提升,同时也养成了很多自律的好习惯,不知不觉形成了自己的一套自学体系

这世上最美好的事情,就是所有的一切都在你的努力之下变成了你想要的样子。

很快框架对我而言,不再神秘。而是特别亲切、熟悉。突然感觉上来就能自己写了,再到后面一点点进行重构,后来这个框架成了我自己的风格。慢慢的也从一个菜鸟成长为公司的独当一面的自动化测试人员。 

如何培养自动化测试的能力

我没有什么名气,也没有在大厂工作的经验,是个测试草根出身,一路摸爬滚打,我更懂得作为新人想过渡到自动化测试人员的心理。

在自动化测试求知的路上,我也曾无数次彷徨和迷茫:

想学习自动化测试,而不知道该怎么学?

想转型自动化测试及技术提升,却不知道该怎么做?

自学自动化测试过程中遇到问题,却无处可问,始终停滞不前?

想找个大佬(老师)带,但大佬却很忙,迟迟未出现?

请教同事碍于面子或同事有所保留,导致学习被动?

想系统地了解和学习自动化测试,却无从下手?

想系统了解Web自动化测试在企业中如何落地使用,却不清楚自动化测试流程?

没有伞的孩子,必须努力奔跑!

图片

作为一个自学党,我深深的体会到没人带,没人问的感觉,所以我决定开展《六哥门徒计划》。想把自己所学,实际工作中使用的技术自学方法、心得及踩过的一些坑,分享给更多需要的人

更希望想自学的你一样,通过本次学习可以少走一些弯路,并通过大量实战、练习可以形成一条自己的体系,应用到实际中。当然,也真心的希望你们升职加薪,或许这才是最实际的吧。

如果你也有类似的困惑,那么我将会是你的良师益友,或许可以给你带来一些实际性的帮助与突破。

   总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

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

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

Git 使用指南(附详细解释)

Git 是一个强大的版本控制系统,广泛用于软件开发中,用于跟踪文件的更改、协作工作等。无论你是新手还是有经验的开发者,掌握 Git 都是非常有益的。这篇博客将带你了解 Git 的基本使用,希望能帮助你快速入门并有效使用 Git。 1. 创…

【大数据】大数据的核心特征与挑战:Volume、Velocity、Variety、Veracity

目录 Volume:海量数据的挑战与机遇 挑战 技术挑战 机遇 Velocity:数据处理的速度与实时性 挑战 技术挑战 机遇 Variety:数据类型的多样性与复杂性 挑战 技术挑战 机遇 Veracity:数据的真实性与质量控制 挑战 技术挑…

《数字图像处理》实验报告四

一、实验任务与要求 对 Fig0403.tif 进行傅里叶变换并显示其频谱图像;fft2(x) 对 Fig0405.tif 图像进行填充和非填充的高斯滤波,并观察其不同;paddedsize,fft2(x,m,n) 由 sobel 空间滤波算子生成相应的频率…

A股3000点下方继续跳水,股民都跌懵了。

今天的A股跌懵了,让人几乎无法呼吸,盘面上出现2个重要信号,不废话,直接说重点: 1、今天两市又跳水了,但绝大多数的个股已经拒绝下跌,市场已然处于一个阶段底部,短线反弹随时可能出现…

找不到d3dcompiler_47.dll如何修复,这几种修复方法可搞定

最近,我在尝试运行一款游戏时遇到了一个问题,系统提示我丢失了d3dcompiler_47.dll文件。这让我感到非常困扰,因为这个问题导致我无法正常运行游戏。经过一番搜索和尝试,我找到了几种修复这个问题的方法,并成功解决了这…

k8s使用Endpoint将信息存储到集群外部数据库

https://mp.csdn.net/mp_blog/creation/editor/139864305 上一篇文章

01数字电子技术基础

第一节课:introduction 导论 决定了这门课的学习方法、学习内容、一个大概的把握、虽不是具体的技术,不是细节,但是这是一节思想 每门课都重要,但侧重点不同。 学习前人的思想和营养,为自己所用。 1.课程性质&#x…

贪心算法精品课 2024.6.21-24.6.25

0、贪心算法介绍 例三中的最优解为装两个2号物品,总价值为14。贪心算法鼠目寸光 解释:若某个位置的最优解为20元,那么10元的就一定不超过一张,否则两张10元就可以被一张20元代替,同理5元的最大张数为1,1元的最大张数为…

MYSQL十、MYSQL的存储过程和触发器的基本认识

存储过程 存储过程:存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff…

springboot网上商城系统的设计与实现-计算机毕业设计源码08789

摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设网上商城系统。 本设…

Selenium IED-控制已打开的Chrome浏览器

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点操作步骤总结提升 背景介绍 在我们进行自动化测试的过程中有时候会遇见一个很棘手的问题那就是登录的过程中需要图片验证码,图片验证码设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意…

蒙特卡洛算法简介及应用

文章目录 基础简介蒙特卡洛方法示例其他应用 基础简介 蒙特卡洛算法(Monte Carlo Algorithm)是一种基于随机抽样或统计试验的数值计算方法,用于求解各种数学问题,尤其是那些解析解难以获得或者是高维度的积分问题。这种方法的核心…

浏览器断点调试(用图说话)

浏览器断点调试(用图说话) 1、开发者工具2、添加断点3、查看变量值 浏览器断点调试 有时候我们需要在浏览器中查看 html页面的js中的变量值。1、开发者工具 打开浏览器的开发者工具 按F12 ,没反应的话按FnF12 2、添加断点 3、查看变量值

手慢无!限量奶茶免费领,千元大奖组队赢!

🚀 AI 卡片大作战全新启动!!🕒 限时两周,组队狂欢!👫 邀请好友,解锁免费奶茶福利!💰 学习卡片,赢取 1888 超级现金大奖心动不如行动,快…

搜维尔科技:「研讨会」惯性动捕技术在工效学领域应用研讨会

Movella将于7月2日(周二)下午2点举行主题为惯性动捕技术在工效学领域应用的研讨会。来自Movella的伙伴赋能经理Jeffrey Muller作为嘉宾出席,届时主讲人将为大家带来Xsens惯性动捕技术在工效学领域的应用分享。同时,研讨会还邀请多…

C++编程(二)引用

文章目录 一、C中的引用(一)引用1. 语法格式2. 作用3. 注意事项 (二)常引用2. 其他场景 (三)引用和函数结合使用1. 引用可以作为函数的参数2. 引用可以作为函数的返回值 (四)引用和指…

用final和loombok来实现依赖注入

在Java中,RequiredArgsConstructor 是一个由 Lombok 库提供的注解,它能够自动为类生成一个构造函数,该构造函数包含所有被标记为 final 或者非 final 但在类中没有默认值的字段。这个注解特别适用于当你需要一个构造函数来初始化所有字段&…

Android 14 权限等级剖析

Android 14 权限等级剖析 Android 14 引入了新的权限等级,为应用程序访问敏感信息和功能提供了更细粒度的控制。了解这些新的权限等级及其应用场景对于开发人员至关重要。 1. 概述 Android 一直以来都使用权限机制来控制应用程序对系统资源和用户数据的访问。随着…

第三十篇——等价性:如何从等价信息里找答案?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 知道了等价性的逻辑,通过等价性去衡量事物,像是给…

如何验证Rust中的字符串变量在超出作用域时自动释放内存?

讲动人的故事,写懂人的代码 在公司内部的Rust培训课上,讲师贾克强比较了 Rust、Java 和 C++ 三种编程语言在变量越过作用域时自动释放堆内存的不同特性。 Rust 通过所有权系统和借用检查,实现了内存安全和自动管理,从而避免了大部分内存泄漏。Rust 自动管理标准库中数据类…