6年测试经验之谈,为什么要做自动化测试?

news2024/12/25 9:06:22

一、自动化测试

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

个人认为,只要能服务于测试工作,能够帮助我们提升工作效率的,不管是所谓的自动化工具,还是简单的SQL 脚本、批处理脚本,还是自己编写的小工具等等,都属于自动化范畴。

自动化是一个思想,而不是仅仅是某个工具的使用。

自动化并非万能,人工测试还是不可或缺的。自动化的目的在于验证问题,手工测试的目的在于发现问题。

很多朋友在做一段手工测试后,就厌了、烦了、倦了,信誓旦旦的说,自己的手工测试已经足够优秀,我要做自动化,再也不要也不想做纯手工的测试了。这种想法是存在误区的,重复也是一种极致,当你在重复里面找到灵感了,找到快乐了,你就比别人高一个境界。下面的内容供大家了解,也让大家在自己的内心建立起自动化的好与坏、利与弊。

二、为什么引入自动测试

直接一点的:就是为了节省人力、时间或硬件资源,提高测试效率,满足版本需求的快速迭代,提升产品测试质量。

三、自动化测试前提

1. 软件需求变动不频繁,相对稳定的功能模块或接口
2. 项目周期足够长
3. 自动化脚本可重复使用
4. 手工测试无法完成的,或者需要投入较大时间人力的

四、自动化测试的适用性

切入时机

以基本完成软件的程序界面开发、页面控件相对稳定为宜。

适用场景

  1. 测试时间相对长,且存在大量重复性、机械性手工测试的项目

  2. 产品型软件,每发布一个新的版本或打补丁都需要对其他模块执行相同的测试

  3. 项目型软件,需求变更频繁,每变更一次,需要对原有的无争议的功能做测试

  4. 经常需要更换应用程序部署站点的软件,每更换一次需要对所有功能做验证测试

  5. 测试时间相对长,且存在大量需要执行回归测试的软件项目

  6. 系统界面稳定,需要对业务流程进行验证测试的软件

  7. 采用增量开发持续集成的项目,需要对频繁更新的程序执行验证测试

  8. 软件项目采用主流开发平台技术,且不存在物理交互的测试

不适用场景

  • 项目工期紧、测试周期短的项目不应采取自动化测试

  • 界面的美观、产品易用性测试不应采取自动化测试

五、自动化测试过程

自动化测试需求分析》自动化测试框架选型、搭建》自动化测试用例、脚本编写》自动化测试结果分析(总执行用例数、成功用例数、失败用例数等)》版本更新迭代维护、持续集成

六、自动化分类

UI自动化

维护成本高,受益最小。当然不是说UI自动化没有价值,适当的界面自动化还是有用的。

目前应用较多的场景是在版本发布、回归测试,可对功能稳定、基本无改动的模块开展UI自动化,从而缩短版本发布周期。

间接的,也让人工测试把重心放在产品的核心业务场景以及改动较大的功能模块上。

接口自动化

维护成本适中,受益适中,可以考虑覆盖大部分业务流程。

现在很多系统前后端架构是分离,后端接口服务开发是先行的,尽早介入可以从接口层发现更多的问题,预防和减少模块调用时才暴露问题。

单元测试

维护成本低,受益最大,价值最大。但是目前基本是开发在做,测试人员参与较少,而且对测试人员要求较高。

《Coogle软件测试之道》中提到单元测试、接口自动化、UI自动化的比例大概是70%、20%、10%,间接的也反应出不同阶段自动化能够给我们带来的价值。

大部分公司,日常工作中,手工测试的占比在百分之八十左右,能够实现并应用自动化的业务还是偏少的。自动化测试人员与功能测试人员的占比在1:10-20之间。做自动化要之前要做好调研,避免盲目的:我就是要做,要实现自动化。

当然,衡量自动化价值不能片面认识,需要综合各种因子一起考虑,只有适合自己的才是最好的


END绵薄之力

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

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

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

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

相关文章

智能优化算法:指数分布优化算法-附代码

智能优化算法:指数分布优化算法 文章目录 智能优化算法:指数分布优化算法1.指数分布优化算法1.1种群初始化1.2EDO开发1.3EDO探索 2.实验结果3.参考文献4.Matlab5.python 摘要:指数分布优化算法(Exponential distribution optimize…

全新好用的窗口置顶工具WindowTop

打开WindowTop软件,所有已打开的窗口都会在左上角出现一个置顶栏,点击置顶栏的置顶复选框即可置顶窗口或取消窗口。   在WindowTop软件的置顶栏一项里可以自由调整置顶栏的元素(包含增删位置)。   可改变置顶栏的外观&#x…

剖析ffmpeg视频解码播放:时间戳的处理

一、视频播放基础理论 1.1 视频编码和解码基础 视频编码和解码是视频播放的基础,理解它们的工作原理对于深入理解视频播放至关重要。在这一部分,我们将详细介绍视频编码和解码的基础知识。 视频编码(Video Encoding)是将原始视…

离散数学_十章-图 ( 5 ):连通性 - 上

📷10.5 图的连通性 1. 通路1.1 通路1.2 回路1.3 其他术语 2. 无向图的连通性2.1 无向图的连通与不连通2.2 定理2.3 连通分支 3. 图是如何连通的3.1 割点( 关节点)3.2 割边( 桥)3.3 不可分割图3.4 𝑘(&#…

Linux内核模块开发 第 5 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客(WaterCutter) 5 预备知识(Preliminaries) 5.1 模块的入口函数和出口函数 C 程序通常从 ma…

建筑与建材行业相关深度学习数据集大合集

近期又整理了一批建筑与建材行业相关深度学习数据集,分享给大家。废话不多说,直接上干货!! 1、埃及的地标数据集 自从历史开始以来,埃及一直是许多文明、文化和非常著名的地标的家园,现在你(和你的ML模型…

守护进程【Linux】

文章目录 前导知识shell、terminal、console进程组作业会话测试 会话控制jobfgbgps 守护进程作用查看守护进程创建守护进程 前导知识 shell、terminal、console terminal(终端)是一种可以和计算机交互的设备,通常有键盘和显示器&#xff0c…

RocketMq 的基本知识1

一RocketMq的基本知识 1.1 RocketMq的基本知识 MQ , Message Queue ,是一种提供 消息队列服务 的中间件,也称为消息中间件。 1.2 作用 1.流量消峰 2.异步传输 3.日志收集 1.3 核心概念 1消息: 消息是指,消息系统所…

基于内存操作的Redis数据库--详解

目录 基本概念 基本操作 redis的五个基本类型 Redis-key(不区分大小写) 字符串 string Redis的特殊类型 geospatial地理空间 事务 Redis的持久化 RDB(.rdb) 触发机制 优点 缺点 AOF(.aof) 优点…

冈萨雷斯DIP第8章知识点

8.1 基础 图像中的冗余 编码冗余:用于表示灰度的8比特编码所包含的比特数,要比表示该灰度所需要的比特数多。可通过变长编码来解决。 空间和时间冗余:与相邻像素相似(图像);时间:相邻帧中的像素(视频)。可以使用行程…

缺陷管理利器推荐:介绍几款好用的缺陷管理工具

缺陷管理是项目管理工作中的重要环节。Excel表格是国内团队常用的缺陷管理工具,具备上手容易,免费的优点,不过也存在协同不便,不易管理,效率低的不足之处。 一套缺陷管理工具可以帮助我们进行规范化自动化的缺陷管理&a…

LearnOpenGL-高级OpenGL-8.高级GLSL

本人初学者,文中定有代码、术语等错误,欢迎指正 文章目录 高级GLSLGLSL的内建变量在顶点着色器的内建变量gl_PointSizegl_VertexID 在片段着色器的内建变量gl_FragCoordgl_FrontFacinggl_FragDepth 接口块Uniform缓冲对象Uniform块布局使用Uniform缓冲简…

关于惠普M277打印机手动双面打印和自动双面打印设置

一.手动双面打印设置​​​​​​​ 1.键盘WINR,在运行框输入“control”,回车或者点击确定。 ​​​​​​​ 2.在控制面板找到设备和打印机,点击进去。 3.找到HP M277字样的打印机,右键选择打印机属性。 4.点击设…

有关部门信息表与员工信息表的常用SQL应用语句实现汇总

背景条件 已知有员工信息表(emp)和部门信息表(dept),具体表的信息如下: 员工信息表emp: 列名类型其他备注empnoDECIMAL(4)主键员工编号enameVARCHAR2(10)员工姓名jobVARCHAR2(9)工种mgrDECIM…

实现第一个内核程序的Hello World

背景 在内核的开发中,总要先入个门。那么就要来编写第一个内核程序 入门 一个 module_init 程序是Linux内核模块的一部分,通过module_init 方法就能将程序载入内核。 module_init 方法需要以下步骤 编写module_init 的代码,并将其保存为…

异常值检验、方差分析

异常值检验 T-test 参考:1.ttest和ttest2 区别 2. ttest在 matlab 3.T test分布表 方差分析(ANOVA) Def: 方差分析(analysis of variance, ANOVA)是一种统计检验,用于检验两组或更多组样本的均值是否相…

Allegro如何关闭出线自动拐弯功能操作指导

Allegro如何关闭出线自动拐弯功能操作指导 在用Allegro进行PCB设计的时候,对单个pin进行出线的时候,会遇到走线一出pin就会自动拐弯,并不会按照鼠标轨迹来设计,如下图 期望的效果如下图 如何关闭走线自动拐弯功能,具体操作如下 点击Route

django-vue-admin使用

一、源码地址 注意,一定要使用这个地址。(使用其他地址下载下来的感觉代码缺失,踩了大坑) django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 djangodjango-rest-frame…

QT实现 WebsocketServer端与WebsocketClient 端通信

概 述 WebSockets 是一种通过单个 TCP 连接提供全双工通信信道的 web 技术。2011年,IETF 将 WebSocket 协议标准化为 RFC 6455 。Qt 提供的 QWebSocket 既可以用于客户端应用程序,也可以用于服务端应用程序,接口大部分和 QTcpSocket 一致。 …