开发转测试:从零开始的6年自动化之路,太迷茫...

news2024/10/7 8:20:15

自动化初识

作为一个测试人,我们或多或少都听过或用过自动化,我们都曾在初入测试行业时,满怀期待的以为测试的尽头是不用测试员点点了,项目一提测,小手点下自动化的开关,瞬间测试的工作就完成了。

这就是我一开始从开发转向测试时最好奇的地方,带着这个好奇心,我激情满满地加入了公司刚成立的自动化组,一探测试到底是如何摆脱手工劳动而完成测试的,一干就是6年。

接下来,把我们的自动化在公司的使用进程一一介绍给大家,希望它能对你有所启发,有所帮助。

自动化启动

我相信每一个搭建起自动化团队的公司,无疑不是想通过自动化来提高工作效率、节省时间、节省人力。

但有一个致命的地方,很多初次起草做自动化的人,他可能根本不了解自动化的本质和特点,仅仅知道“做了自动化就可以像其他公司一样提高效率”,这是我们做了3年自动化之后觉悟出来的道理。

这不是在批评、埋怨谁,我很感谢感激走过那3年,人生每一段路都没有虚度,它让我深刻认识到什么样的做法是可以的什么样是行不通的。

我在这里说出来,只是想后来者可以不用花这么长时间来明白,希望你们在做出决策之前对自动化有更全面的认识。

2016年,领导决定测试部要做自动化,当时我才从开发转到测试没多久,还在做功能测试(体验功能测试阶段),做了一段时间便感觉挺繁琐的,加上自己平常也在查阅相关自动化领域的资料。

所以,当领导说要成立自动化组时,我特别兴奋,决定要加入自动化组,心想终于有真正的机会来尝试自动化这个新玩意了。

虽然我有一些蹩脚的开发功底,但毕竟没有实战过自动化,于是我们从外面招来了一个自动化方向的大牛。

技术大牛就是不一样,仅用2周就搭建起了我们的自动化项目架构,并进行了相关封装抽取。那个时候我真正知道了Selenium、Webdriver、TestNg、Jenkins集成起来的一套自动化系统的工作流程及用法。

写到这里,你大概已经知道,我们实现的是一套UI自动化方案。框架搭建完了,剩下的就开始收集用例、转化脚本了,也是在写脚本的过程中,我慢慢知道了所谓的自动化测试是如何实现自动的。

自动化初期,我们并没有什么经验,我们只知道至少要把公共主流程性的用例给自动化了。

于是,便以我功能测试几个月对业务的了解开始抽取了某一模块这种类型的用例,技术大牛和我分工把这些用例都给转化出来了,这个过程,对于我来说学到了很多,知道了PO模式、数据驱动、元素定位以及里面的一些坑等。

写脚本对于我来说上手很容易,很快我俩就完成了一期自动化用例,然后又把这些用例集成到Jenkins上,至此,自动化就算初步运作起来了。

探索自动化的意义

完成一期脚本转化以后,马不停蹄地开始做二期的脚本开发规划。有很长一段时间,我觉得我们做自动化好像失去了做它的意义,我们完成了脚本开发,为啥不用呢?怎么才能把它用到工作中去呢?

当自己做的东西没有在工作中发挥它的价值的时候,做的人就会逐渐丧失对这份工作的热情,因为他没有得到反馈,他不知道接下来奋斗的目标在哪里。当然,也依然会持续做着一些可有可无的工作。

次年,也就是2017年,领导开始跟我们一起想办法,一开始的办法是跟功能测试人员说,我们哪些模块一些什么样的用例已经实现自动化了,让他们在测试的过程中,如果需要执行那种类型的用例的时候,就去Jenkins上执行。

试运行了一段时间证明,靠自由自愿的方式就别想把工作干好。

大部分人都不选择用自动化,即使他的项目可以用。还有一部分有心用的同学,由于不懂开发相关技术,不会分析出错时的问题,常常需要找自动化开发者去帮忙看,加之,前期UI自动化脚本确实没那么稳定,运行错误的概率又更高了。

那不用自动化的原因就出来了:

1、不感兴趣,觉得手工测测挺好的;
2、想用,奈何自己技术有欠缺,不会分析脚本问题,加大使用难度;
3、想用,但脚本稳定性太差,丧失对自动化的信任度。

相比其他同事,自认为算是一个自动化的狂热者,不太相信自动化不能在工作中发挥作用。心想,一定是你们自己不会用才这样。于是,我申请了做一段时间适合自动化应用模块的测试。

我是怎么做的呢?以下,是一个正常项目测试中自动化应用流程图,直到今天我也依然使用的这个思路。

按照这样的流程,磕磕绊绊地应用了几个项目。真实的效果是:

1、使用了自动化以后确实发现了一些问题,但分析定位出那是一个bug确实不是肉眼一下就能看出的;

2、效率上看,若考虑投入成本/产出,这谈不上提高了我多少测试效率,但若是一份脚本开发维护,多人使用,那又是不一样的;

3、Jenkins上执行用例并没有那么方便,常常看得头昏眼花。

也只有在我真正参与使用了我们的自动化以后才认识到,咱们这个自动化确实有很多不完美的地方,那我也总算清楚了,下一步也知道调整的方向在哪。

关于如何学习软件测试进阶知识,金九银十冲刺一波拿到高薪offer,大家可以参考这份由腾讯大佬总结对标T7的《软件测试工程师发展方向知识架构体系图》,今天在这里免费分享给大家。希望能给做软件测试的朋友带来便利,少走弯路,可以形成一套自己的方法,并应用到实际中。

一、pathon编程与测试开发技术

二、web自动化测试基础

三、APP自动化测试基础

四、Postman测试工具专题

五、接口自动化测试基础

六、Jmeter性能测试

七、抓包工具的使用

八、TCP/IP协议详解

九、计算机操作系统

十、Linux系统操作

十一、MySQL数据库

十二、RF自动化测试框架

十三、跨平台的自动化测试框架

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

4-Arm PEG-Biotin,4-Arm peg-Biotin,四臂-聚乙二醇-生物素科研试剂供应

一:产品描述 1、名称 英文:4-Arm PEG-Biotin,4-Arm peg-Biotin 中文:四臂-聚乙二醇-生物素 2、CAS编号:N/A 3、所属分类:Biotin PEG Multi-arm PEGs 4、分子量:可定制,四臂-PE…

BundleTrack自用配置笔记

0、下载代码 git clone https://github.com/wenbowen123/BundleTrack.git 或者选择Download ZIP 1、按照Ubuntu版本安装docker 查看docker版本 $ docker version 在1080显卡上测试时出现bug,找到一个解决的文章,本人适用 docker: Error response…

微信小程序模板与配置

文章目录1. 数据绑定2. 事件绑定3. 事件传参4. 网络请求1. 数据绑定 在data中定义数据:在页面对应的js文件中,把数据定义到data对象中即可 // index.js Page({// string 类型info:init data,// 数组 类型msgList:[{msg:hello},{msg:world}] })在WXML中使…

测试人员面试需要掌握的内容,软件测试面试题答案

1、在公司的测试流程是什么? 产品经理确认本次版本的需求,召开需求评审会,进行估时排期,需求和时间都确定之后,UI出设计图,开发人员进行开发,测试人员编写测试用例,召开用例评审会议…

12.13

AJAX 视频 1-11 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 AJAX 不是新的编程语言,而是一种将现有…

909. 蛇梯棋-广度优先遍历

909. 蛇梯棋-广度优先遍历 给你一个大小为 n x n 的整数矩阵 board ,方格按从 1 到 n2 编号,编号遵循 转行交替方式 ,从左下角开始 (即,从 board[n - 1][0] 开始)每一行交替方向。 玩家从棋盘上的方格 1 …

高压开关电源3D PCB绘制教程:SOLIDWORKS绘制瓷片电容教程

本教程配有配套视频教程,读者可以配合配套的视频教程学习,下载本课的对应课件和源文件,更多课程及材料,敬请关注凡亿教育:《高压开关电源3D PCB绘制教程》。绘制指导:家介绍瓷片电容的绘制方法,…

ICML2018 | PixelSNAIL+:An Improved Autoregressive Generative Model

论文链接:PixelSNAIL: An Improved Autoregressive Generative Model 论文标题:PixelSNAIL: An Improved Autoregressive Generative Model 代码:GitHub - neocxi/pixelsnail-public GitHub - neocxi/pixelsnail-public 一、问题提出 高…

程序人生:25岁我从零基础转到软件测试,我看到了前途...目前28K

推荐好文: [内部资源] 想拿年薪30W的软件测试人员,这份资料必须领取~ Python自动化测试全栈性能测试全栈,挑战年薪40W 没有一个人的人生,能够按照自己写好的脚本去走。从一而终是幸运的,但也是不幸的,因…

1568_AURIX_TC275_电源管理_唤醒配置与状态

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 如果有待机RAM保持的功能激活了,那么唤醒以及复位都不会进行RAM的重新初始化。 PORST相关的滤波开了之后,可以抵抗500ns的尖峰脉冲干扰。 CPU不仅可以请求自我进入i…

代码随想录刷题记录 day43 股票买卖的最佳时机1 2

代码随想录刷题记录 day43 股票买卖的最佳时机1 2 参考:代码随想录 121. 买卖股票的最佳时机 思想 dp数组定义 dp[i][0]表示 第i天 持有股票 手头的最大的现金数为dp[i][0] dp[i][1]表示 第i天 不持有股票 手头的最大的现金数为dp[i][1] 递推公式 dp[i][0] dp[i-…

2004-2020年全国31省环境规制强度

2004-2020年全国各省环境规制强度 1、时间区间为2004-2020年 2、范围:包括全国31个省份 3、缺失情况:西藏存在部分年份缺失,其他省份无缺失 4、指标包括: 工业污染治理完成投资(万元)、第二产业增加值(亿元)、环境规制强度 …

vue父子组件之间的传值,及互相调用父子组件之间的方法

场景:记录下父子组件之间的传值方法,以及调用他们的内部的方法 *** 父组件给子组件传值是通过属性绑定的方法 *** 子组件给父组件传值是通过绑定对应的方法将自身的值传递给父组件 当然,我这只是说了一种传参方式,也包含通过vuex的…

Spring Boot基于FreeMarker发送模板邮件(带附件)

目录一、背景二、maven依赖三、编码实现3.1、邮件对象3.2、服务层3.2.1、抄送人3.2.2、嵌入式资源3.2.3、附件3.3、邮件模板3.3.1、模板引擎3.4、配置文件四、测试4.1、发送简单邮件4.2、发送复杂邮件4.3、效果图一、背景 邮件在工作中中经常被用到,场景非常的广泛&…

高分子PEG:8Arm PEG-DBCO,八臂聚乙二醇环辛炔 MV1K 2K 3.4K 5K

【中文名称】八臂聚乙二醇环辛炔 【英文名称】 8Arm PEG-DBCO,DBCO PEG 8Arm 【结 构 式】 【CAS号】N/A 【分子量】1000,2000,3400,5000,10000,20000 【基团部分】DBCO 【纯度标准】95% 【包装规格】1g&…

【Lilishop商城】No3-8.模块详细设计,订单模块-2(订单)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代…

ssm+Vue计算机毕业设计校园社团管理系统(程序+LW文档)

ssmVue计算机毕业设计校园社团管理系统(程序LW文档) 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技…

Android入门第46天-使用BroadCast来模拟异地登录事件发生后的主动退出另一个设备重登录

简介 随着对BroadCast的越来越深入,我们今天要实现一个稍微复杂一点的BroadCast。即我们常用来有时APP打开时如果多个设备同时登录一个帐号,而我们只允许一个设备登录一个帐号时,此时我们的APP会弹一个对话框如:您的账号在别处登…

结合面试详细分析 HashMap 源码

个人文档站点:小熊学Java 1、底层结构 相信大家都已经听过很多了,这里就不多阐述了,至于什么时候是数组,什么时候会变成链表,后续会讲解,别急! JDK版本数据结构JDK1.7数组链表JDK1.8数组 &…

腾讯云数据万象:智能+存储双驱动,数倍提升内容生产效能

伴随数字经济市场稳步扩张, AI和富媒体融合的场景式体验、营销模式、分享渠道已经成为数字商业中不可或缺的部分。12月1日,在2022腾讯全球数字生态大会存储专场,腾讯云数据万象发布产品更新,与腾讯云对象存储COS共同打造智能存储生…