2024年软件测试工程师如何从功能测试转成自动化测试?

前言

接触了太多测试同行,由于多数同行之前一直做手工测试,现在很迫切希望做[<u>自动化测试</u>](javascript:;),其中不乏工作5年以上的同行。

从事软件自动化测试已经近十年,接触过底层服务端、API 、Web、APP、H5 等等,对自动化算是比较了解。在此分享一下个人经验。

想做自动化,首先得了解一下自动化测试的一些常见问题。

也是面试时,必问的一些问题(这么简单的面试问题,你却答的一塌糊涂),如果对自动化完全不了解,每天在那嚷嚷要做自动化,都是空喊。

自动化测试一些问题

1. 什么是自动化测试?
  自动化测试,顾名思义,自动完成测试工作。
  通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。
  自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。
  因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。
2. 为什么要进行自动化测试
  为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
1)自动化测试节约成本(根据项目)
  毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.
2)有些测试项目手工很难实现(手工成本较高)
  比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
3)项目质量流程需要
  比如版本管理需要build verify,以保证check in的code不会影响版本库。
  类似于smoke test

自动化测试的优缺点

优点
  避免测试人员因重复劳动产生厌倦
  提高测试效率
  保证每次测试地一致性和可重复性
  更好的利用无人值守时间
  进行一些手工无法进行的测试

缺点
  维护成本相对比较高
  系统开发时间不一定能缩短
  还是得依赖手工测试,很多问题无法发现
  什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)

有以下几个特点的项目比较适合自动化测试:

1. 项目变动少
2. 周期长
3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)

举例说明:

  • 互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。
  • 比如某宝双12活动相关项目,一周之内就下线了。
  • 适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化.


什么样的人适合做自动化测试?

这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储
你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。
  扯了这么多,究竟什么什么样的人能做自动化测试?
  我的理解分一下几点:
1)拥有代码能力
  掌握一门开发语言,java、Python、ruby、c#
2)熟悉被测系统
  比如你是web测试,你就得懂js、css、html、xpath
  你是移动端测试,你就得具备Android 开发基础和iOS开发基础,会debug app
  你是 C/S测试你就要很熟悉[<u>TCP</u>](javascript:;)、IP协议
3)掌握一套自动化测试框架(工具)
  比如
  selenium/appium
  nunit/testng
  robot framework/cucumber
4)善于学习,达到知其然知其所以然
IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。

  • 曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存.
  • 曾经qtp很火,曾经selenium也很火,现在appium也很火
  • 软件行业从桌面软件到web端,又从web端迁移到移动端,谁也不知道下一个是什么。而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核心的能力就是学习能力。
    如果你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移,
    selenium的原理你掌握了,学习appium简直小菜一碟,因为appium使用的是
    selenium WebDriver protocol 。
  • 如果你能做到知其然知其所以然,你也可以造轮子,改造appium,毕竟现在很多功能需要完善。
  • 如果你没有达到以上的几点,建议你还是做手工测试吧。
  • 如果你有代码基础,想要从事自动化测试怎么去学习?

1、很多初学者很纠结,学qtp还是学selenium
  我的建议是学selenium,开源的,免费的,你可以下载源码研究,去了解其原理,再者现在selenium的资料不要太多,随便搜搜一大堆,学起来比较轻松。
  不建议学selenium IDE录制,当然你可以通过录制一些然后转换为相应的脚本去学习,等你学好了selenium, 再去学appium你会有一种天然的似曾相识。
2、为什么不建议学QTP/UFT?
  因为收费/臃肿/现在做桌面软件测试的工作已经不太多了。
3、关于买书
  自动化工具类的书,不建议买,很多书已经过时了,并且质量渣渣,你买了那些书中的code已经不能用了,如果你真的想学,就去官网找example,去相应的社区和群交流,或者直接看API/源码.
当然,测试基础类的书籍,至少得看过一本,有系统性的知识。

总结:

新人学习自动化测试要:
  · 掌握一门开发语言
  · 掌握一些基础的知识
  · 自动化方面,少买书,多看测试框架的Document,多去技术社区交流
  · 不断学习,提升自己发现问题,解决问题的能力
  · 不做伸手党,多动手
 总而言之
  · 学习一门开发语言,Java/Python,学习一个测试工具selenium/appium,掌握一个测试框架,testng,cucumber 等
  · 平时多沉淀,然后抓住机遇,即可轻而易举的转型自动化测试。

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

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

  总结:

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ethercat 读从站状态报文分析

涉及的从站寄存器&#xff1a;Register AL Status 0x0130:0x0131 。 1&#xff0c;发送报文 1&#xff09;IgH dmesg看到的报文 [18773.590655] geshifei ec_master_send_datagrams 1059: Adding datagram datagram->index0 [18773.590656] EtherCAT DEBUG 0: frame siz…

机器学习---推荐系统案例(二)

四、推荐系统---模型训练 1、模型训练代码 模型训练代码参照scala文件&#xff1a;Recommonder.scala 1.Logger.getLogger("org.apache.spark").setLevel(Level.ERROR) 2.val conf new SparkConf().setAppName("recommonder").setMaster("local[*…

《成才》期刊投稿方式发表要求

《成才》杂志是国家新闻出版总署批准&#xff0c;面向国内外公开发行的教育期刊&#xff0c;以“大教育视野、新理念成才”为办刊宗旨&#xff0c;全面贯彻党的教育方针&#xff0c;理论联系实际&#xff0c;开展教育科学研究和人才培养研究&#xff0c;交流科技成果&#xff0…

TrustZone之示例用例——加密文件系统

移动设备如智能手机包含大量个人数据。如果设备丢失或被盗&#xff0c;用户会关心这些数据的机密性。这就是为什么大多数最新的设备支持文件系统加密的原因。TrustZone 可以作为保护这些数据的解决方案的一部分。 存储在外部闪存中的数据是加密的。在启动时&#xff0c;设备对用…

React学习计划-React16--React基础(二)组件与组件的3大核心属性state、props、ref和事件处理

1. 组件 函数式组件&#xff08;适用于【简单组件】的定义&#xff09; 示例&#xff1a; 执行了ReactDOM.render(<MyComponent/>, ...)之后执行了什么&#xff1f; React解析组件标签&#xff0c;找到了MyComponent组件发现组件是使用函数定义的&#xff0c;随后调用该…

Hive文件存储与压缩

压缩和存储 1、 Hadoop压缩配置 1) MR支持的压缩编码 压缩格式工具算法文件扩展名是否可切分DEFAULT无DEFAULT.deflate否GzipgzipDEFAULT.gz否bzip2bzip2bzip2.bz2是LZOlzopLZO.lzo否LZ4无LZ4.lz4否Snappy无Snappy.snappy否 为了支持多种压缩/解压缩算法&#xff0c;Hadoop…

数据结构 | 查漏补缺

目录 数据的基本单位 冒泡排序 DFS和BFS中文 Prim 比较 中序线索二叉树 顺序栈 链栈 时间复杂度 循环队列 求第K个结点的值 数据的基本单位 数据元素 循环队列sq中&#xff0c;用数组elem[0‥25]存放数据元素&#xff0c;设当前sq->front为20&#xff0c;sq-&g…

【C++11特性篇】模板的新一力将:可变参数模板 [全解析]

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》专…

循环神经网络中的梯度消失或梯度爆炸问题产生原因分析(二)

上一篇中讨论了一般性的原则&#xff0c;这里我们具体讨论通过时间反向传播&#xff08;backpropagation through time&#xff0c;BPTT&#xff09;的细节。我们将展示目标函数对于所有模型参数的梯度计算方法。 出于简单的目的&#xff0c;我们以一个没有偏置参数的循环神经…

华为鸿蒙开发应用工程师:连接未来,创造无限可能

1. 引言 随着智能设备的不断普及和发展&#xff0c;华为鸿蒙作为下一代全场景分布式操作系统&#xff0c;为开发者提供了全新的应用开发平台。作为一名鸿蒙开发应用工程师&#xff0c;您将扮演连接未来的重要角色&#xff0c;为智能生活创造无限可能。 2. 深度参与全场景应用…

modbus异常错误码说明

异常错误码说明 其中物理离散量输入和输入寄存器只能有I/O系统提供的数据类型&#xff0c;即只能是由I/O系统改变离散量输入和输入寄存器的数值&#xff0c;而上位机程序不能改变的数据类型&#xff0c;在数据读写上表现为只读&#xff0c;而内部比特或者物理线圈和内部寄存器或…

Profinet转485modbus网关解决传输距离及数据丢失问题

Profinet转485modbus网关&#xff08;XD-MDPN100/2000&#xff09;是一款能够解决传输距离及数据丢失问题的设备。在现场应用中&#xff0c;数据的传输距离和数据丢失最为常见的问题。 在现场添加Profinet转485modbus网关&#xff08;XD-MDPN100/2000&#xff09;即可解决传输距…

BDD - Python Behave 入门

BDD - Python Behave 入门 Behave 是什么Behave 的主要特点和组成部分Behave 实践安装 BehaveBehave 项目目录结构创建项目创建 Feature 文件创建步骤定义文件 执行用例执行全部用例执行部分用例 生成报告生成 Json report生成 HTML 报告生成 Junit report生成 Cucumber report…

Modbus-TCP数据帧

Modbus-TCP基于4种报文类型 MODBUS 请求是客户机在网络上发送用来启动事务处理的报文MODBUS 指示是服务端接收的请求报文MODBUS 响应是服务器发送的响应信息MODBUS 证实是在客户端接收的响应信息 Modbus-TCP报文: 报文头MBAP MBAP为报文头&#xff0c;长度为7字节&#xff0c…

postman和Jmeter的区别

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

非隔离恒压ACDC稳压智能电源模块芯片推荐:SM7015

非隔离恒压ACDC稳压智能电源模块芯片是一种用于将交流&#xff08;AC&#xff09;电源转换为直流&#xff08;DC&#xff09;电源的集成电路。这种芯片具有恒压输出功能&#xff0c;能够保持输出电压的稳定&#xff0c;适用于各种需要直流电源的应用场景。 非隔离电源模块通常…

【华为数据之道学习笔记】6-5数据地图的核心价值

数据供应者与消费者之间往往存在一种矛盾&#xff1a;供应者做了大量的数据治理工作、提供了大量的数据&#xff0c;但数据消费者却仍然不满意&#xff0c;他们始终认为在使用数据之前存在两个重大困难。 1&#xff09;找数难 企业的数据分散存储在上千个数据库、上百万张物理表…

2024年,消费品零售企业如何规划大模型和数据技术落地?

导读&#xff1a;品牌商和零售商目前都在做2024年的规划&#xff0c;本次分享基于爱分析过往的研究&#xff0c;带来消费品零售行业2024年宏观趋势和方向&#xff0c;以及如何落地大模型和数据技术。 分享嘉宾&#xff5c;张扬 爱分析联合创始人兼首席分析师 内容来源于爱分析…

【算法刷题】Day22

文章目录 1. 按摩师题干&#xff1a;算法原理&#xff1a;&#xff08;dp&#xff09;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. 寻找数组的中心下标题干&#xff1a;算法原理&#xff1a;&#xff08;前缀和&#xff09;代码…

大数据处理与分析

掌握分布式并行编程框架MapReduce掌握基于内存的分布式计算框架Spark理解MapReduce的工作流程、Spark运行原理熟悉机器学习概念 一.MapReduce Hadoop MapReduce是一个软件框架&#xff0c;基于该框架能够容易地编写应用程序&#xff0c;这些应用程序能够运行在由上千个商用机器…