什么是自动化测试?自动化测试现状怎么样?

news/2024/10/23 5:43:31/

什么是自动化测试:其实自动化测试,就是让我们写一段程序去测试另一段程序是否正常的过程,自动化测试可以更加省力的替代一部分的手动操作。

现在自动化测试的现状,也是所有学习者关心的,但现在国内公司主要是以功能测试也就是手动测试为主,公司会根据项目和业务判断需求多少自动化工程师人才,当然自动化工程师在公司还是少数,公司会根据需求来招功能测试和自动化测试人才占比,功能测试和自动化测试现在公司中谁也代替不了谁,功能测试工作会繁琐、很多都是机械点、对于0基础刚入门测试门槛低、0基础学习者建议从功能测试开始,成功入职1年后,学习进阶自动化测试,自动化测试主要在工作中是批量、高效、加快业务上线时间,在未来发展自动化测试也是必然的趋势。

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。

随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要求越来越高,打开招聘网站,90%的招聘都会有如下这一条。

至少熟悉一门编程语音,自动化测试XX年经验。所以越来越多的测试工程师,开始迷茫,不管是被动的还是主动的,这个时代需要我们不断学习去保持自己的竞争力,因为互联网红利越来越少,你的水平高低,决定了你在公司的价值,也决定了你未来职业选择的优势,学习自动化是你不得不选择的一条路。

本篇文章将由以下3个部分来展开:

一、在学习自动化之前,我们需要明确自动化测试是什么?
二、自动化测试方向该如何走(学习路径)?
三、自动化配套学习资源

一、在学习自动化之前,我们需要明确自动化测试是什么?

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。

自动化测试的主要目标是提高测试效率,降低项目成本,而不是完全取消手工测试。

自动化测试的意义?

提升效率,减少重复工作:勿容置疑,最大的意义就是提高测试效率,手工测试的最大问题在于,面对快速迭代,无法快速完整的执行冒烟用例。节省人力成本:执行测试脚本可以实现无人值守,不限时间的测试。从而让测试人员可以做更多有意义事情,比如探索性测试等。保证每次测试的完整性和一致性。发现更多隐藏问题:手工测试无法验证系统的稳定性、可靠性等,需要通过工具等自动化手段,对系统进行压力测试、稳定性测试等。如何选择自动化测试的方向?

测试金字塔

测试金字塔自上而下依次是UI测试、接口测试、单元测试。越到高层影响的范围越大,需要的成本越高。

在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。

越底层的自动化测试效率越高,价值越高。

测试金字塔中我们可以了解到,从下到上每个阶段对应的测试内容:

单元测试,就是代码测试阶段。接口测试:可以进行的测试工作有接口测试、接口性能测试等。UI阶段:业务功能测试、界面显示等测试。对应上面的测试内容,自动化测试的学习方向或者切入点一般有以下几类:

UI自动化测试接口自动化测试代码测试(单元测试)性能测试其它专项测试综合以上能力进阶为测试开发工程师。

所以如何从功能测试到自动化测试,达到技术提升的目的,是很多初级软件测试人必经的一个阶段。作为一个有过这样经历的人,对自学过程中的困难深有体会。所以我热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、自学方法、心得及踩过的一些坑,记录下来

并且希望想自学的你一样,通过我的分享可以少走一些弯路,可以形成一条自己的体系,并应用到实际中。当然,也真心的希望你们升职加薪,或许这才是最实际的吧。

二、自动化测试方向该如何走(学习路径)?

再讲自动化测试学习路径之前,先看常见自动化测试有哪些常见分类?

软件测试领域的自动化测试的概念往往很宽泛,在实际的应用中,自动化可以根据项目的进度及项目类型要求往往可以划分的更加细致一些,并且每种类型的自动化测试侧重点也不一致,如下截图:

接口测试做什么?

接口自动化测试,是当前自动化测试中的首选,任何一个被测软件系统一般都是前后端分离的,前后端通讯都需要接口,测试接口主要目的就是测试后台提供服务是否正常,故而接口的测试自动化测试中最基本的;如果要学习自动化测试,建议从接口测试开始学习。

web测试做什么?

web自动化测试,也是自动化测试领域的重点。对于有页面类的项目,几乎都可以进行web自动化的测试。主要通过模拟人操作对应系统,验证功能等方面是否正常,能大大提升测试效率,主要应用在一些重复操作的测试中。

移动自动化测试做什么?

移动自动化主要是针对于移动的系统的测试。该测试需要验证功能、性能、兼容性、易用性等方面,主要通过工具或者代码命令的方式模拟人工操作,验证整个软件系统的过程。目前对于移动端的测试主要在功能方面的测试外,还需要覆盖到非功能方面的测试。

-----------------------------------------

看完自动化测试分类后,若想得到一个完整的自动化测试完整路径。我们还需要了解学习自动化测试的前置(支撑)知识和技能。现在我也寻找了很多从事测试的朋友,创建了一个技术分享的交流群,共享了很多我们收集的学习视频教程和技术文档。

自动化测试,简而言之,就是把以人为驱动的测试行为转化为机器执行的一种过程。所以自动化需要具备一定的代码能力,故而至少学习一门编程语言,主流的有Java和Python,对于初学者来说,Python容易上手学习。

这个过程实现除了语言外,还需要学习Linux和数据库相关知识,因为项目环境的搭建和数据的管理维护都需要具备这方面的技能。

任何一种自动化的应用不外乎两种方式,要么借助于工具实现,要么通过代码实现,不管通过哪种方式实现,都需要学习并会使用一些基本工具的技能。

所以自动化前置(支撑)知识和技能如下所示:


所以,我们的到的学习自动化测试的路径是:linux -> mysql -> python | java -> 基本工具(JIRA/禅道) ->接口自动化测试-> web自动化测试-->移动自动化测试

三、自动化配套学习资源

  • 接口自动化测试

接口测试一般有两种方式实现测试,一种通过工具实现;另一种通过代码实现,工具更多的做调试,大多数互联网企业做接口测试都是通过代码实现。

工具的测试,一般容易上手,对于“0”基础的人来说,不失为入门的首选,代码量有限,只要熟悉测试流程,会熟练使用工具就能够完成基本的接口测试,但是灵活性差,自动化程度没有代码高,市面上常见可以接口测试工具有postman、Jmeter等。代码的实现,主要是通过python。

  • web自动化测试

web自动化测试主要通过代码实现。比如常见的应用有:Python/Java+selenium。

首先,还是需要熟练使用一门语言,非常熟练的运用至少一门编程语言。

其次,需要学习web测试的流程步骤,因为是基于页面默认人工操作,故而需要对于页面构成需要有一定的基础,比如:HTML+JavaScript+CSS,懂得页面元素的定位,以及常见的定位方式的使用等。如果有接口自动化的基础,那么学习web自动化相对会容易一些。

再者,通过一些相对完整的项目去实战训练,才能够较好的学习并把握web自动化的技能,通过反复的项目训练才能逐步的达到理想的效果。

  • 移动自动化测试

移动自动化测试主要也是通过工具和代码的方式实现。比如常见的有:Python/Java+appium。

移动自动化除了哟啊掌握一门编程语言外,还需要学习移动测试的流程步骤,移动基本功能的和web端的基本类型。但是更多的需要测试一些非功能层面的应用,需要学习并使用一些手机模拟器(如:mumu)、第三方工具(如:GT工具)、adb命令、monkey等的使用,学习使用的工具较多,并且需要结合代码一起使用,这就要求学习的知识范围更加广泛,先从工具使用入手。另外:移动端的应用还需要进行异常测试,对于使用过程中出现网络、信息中断等异常场景的设计,对于手机本身使用过程中的场景结合实际项目训练学习。

  今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

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

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我们的测试交流群大家一起讨论交流学习。


http://www.ppmy.cn/news/29144.html

相关文章

不同序列模型的输入和输出总结

不同序列模型的输入和输出总结 文章目录不同序列模型的输入和输出总结RNNLSTMGRURNN RNN 是迭代输出: 输入第一个 -> 输出第二个, 输入第二个 -> 输出第三个, 输出倒数第二个 -> 输出最后一个。 LSTM LSTM 也是迭代输出&#xff…

js中?.、??的具体用法

1、?. (可选链运算符) 在javascript中如果一个值为null、undefined,直接访问下面的属性, 会报 Uncaught TypeError: Cannot read properties of undefined 异常错误。 而在真实的项目中是会出现这种情况,有这个值就…

变分推断 (Variational Inference) 解析

前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 变分推断 在贝叶斯方法中,针对含有隐变量的学习和推理,通常有两类方式,其一是马尔可…

杂谈:created中两次数据修改,会触发几次页面更新?

面试题&#xff1a;created生命周期中两次修改数据&#xff0c;会触发几次页面更新&#xff1f; 一、同步的 先举个简单的同步的例子&#xff1a; new Vue({el: "#app",template: <div><div>{{count}}</div></div>,data() {return {count…

伯恩光学再成被执行人:多次因劳动纠纷被起诉,曾冲刺港交所上市

近日&#xff0c;贝多财经从天眼查APP了解到&#xff0c;伯恩光学&#xff08;深圳&#xff09;有限公司&#xff08;下称“伯恩光学”&#xff09;因《伯恩光学&#xff08;深圳&#xff09;有限公司与温*燕劳动合同纠纷的案件》一事&#xff0c;被广东省深圳市龙岗区人民法院…

KY146 魔咒词典 KY188 哈夫曼树

描述 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒&#xff0c;哈利很难全部记住&#xff0c;但是为了对抗强敌&#xff0c;他必须在危急时刻能够调用任何一个需要的魔咒&#xff0c;所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个…

【算法经典题集】递推(持续更新~~~)

&#x1f63d;PREFACE&#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐ 评论&#x1f4dd;&#x1f4e2;系列专栏&#xff1a;算法经典题集&#x1f50a;本专栏涉及到的知识点或者题目是算法专栏的补充与应用&#x1f4aa;种一棵树最好是十年前其次是现在递推简单的斐波那契…

嵌入式之ubuntu终端操作与shell常用命令详解

目录 文件和目录列表 基本列表功能 显示列表长度 过滤输出列表 浏览文件系统 Linux 文件系统 遍历目录 处理文件 创建文件 复制文件 制表键自动补全 重命名文件 删除文件 处理目录 创建目录 删除目录 ​编辑其他常用命令与操作 Uname命令 clear命令 返回上一级命令 显…