UI自动化测试的痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的,然后在慢慢的接触 UI 自动化、接口自动化、持续集成,最后搭建自动化测试框架系统。

大部分测试初学者入门自动化测试接触最多的也许就是 UI 自动化了,也都使用过移动端的 UiautomatorAppium  UI自动化框架、PC 互联网界面相关的 SeleniumRobot Framework  UI自动化框架,潜意识里认为 UI 自动化测试很简单。但是使用一段时间之后喜忧参半,特别是在工作中真正使用时就立马水土不服了,开发和维护脚本的时间远远大于手工测试的时间,得不偿失,最后由回归到了手工测试。

如果要想 UI 自动化在实际的工作中得以使用,必须要解决以下痛点,否则 UI 自动化的测试还有很远的路要走。

1、需求不稳定,频繁变更的项目

UI 自动化测试最大的挑战就是需求的变化,界面如果经常变动,脚本就需要重新编写,界面需求频繁的变更导致编写脚本的速度赶不上需求的变化,那 UI 自动化就是名存实亡,因此 UI 自动化测试特别适合需求稳定、不会频繁变更的项目。敏捷开发的项目需求不稳定,需求的变更经常会导致界面的变更,同时敏捷开发的项目周期短,因此敏捷开发的项目就不适合做 UI 自动化。

2、开发维护周期短的项目

对于一次性开发的、周期短的项目,考虑到 UI 自动化的投入产出比,不宜进行 UI 自动化测试。UI 自动化的收益主要是在多轮测试的时候才能体现出来,试想一个维护周期短的项目测试的轮次比较少,如界面测试就测试 1 到 2 轮即可,这样完全可以使用手工测试就行了。同时自动化脚本的开发和调试本身就需要一定的时间,如果项目的周期短,没有足够的时间支撑脚本的开发,那也无需自动化测试了。

3、被测系统开发不规范,可测试性需求不明确

UI 自动化测试其实就是模拟手工点击,不像人眼可以直接找到需要点击的控件,程序就不一样了,需要我们事先要找到要点击的控件,然后让程序去点击完成模拟手工的操作。这就需要在项目开发前针对自动化测试定义一些列的规范,开发工程师在开发的时候遵循规范开发,UI 自动化才可以进行下去。例如针对按钮控件没有定义唯一的 id 或者文本描述等,在自动化脚本编写的时候就无法找到该控件。如果开发在不同的版本之前经常随便变更控件的定义,那之前能执行的脚本在之后就无法正确的运行,需要实时维护,带来很高的人力成本而变得效率低下。同样的还有接口自动化测试过程中的接口参数等。

那什么样的项目适合进行 UI 自动化测试呢?如下列举的可以进行参考:需求稳定不频繁变更;需要频繁的回归验证;UI 界面稳定、界面控件定义规范可测试性强;开发维护周期长的项目;项目进度压力小;大型公司大平台;测试部门中大部分测试人员具备脚本开发能力。

当前,UI 测试是耗费测试团队人力最多的测试环节,大部分的测试人员日常的工作就是 UI 测试。因此 UI 自动化非常适合解决简单、机械、重复的任务,增加测试的覆盖率。

UI 自动化测试不仅仅编写测试脚本,也需要设计,不仅需要考虑成百上千条用例的执行效率,还需要考虑维护成本,执行结果的正确性。我们需要明白,UI 自动化测试不能替代手工测试,也很难减少测试人员,不能盲目的推崇和追求 UI 自动化测试

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

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

相关文章

深入探究音视频开源库 WebRTC 中 NetEQ 音频抗网络延时与抗丢包的实现机制

目录 1、引言 2、什么是NetEQ? 3、NetEQ技术详解 3.1、NetEQ概述 3.2、抖动消除技术 3.3、丢包补偿技术 3.4、NetEQ概要设计 3.5、NetEQ的命令机制 3.6、NetEQ的播放机制 3.7、MCU的控制机制 3.8、DSP的算法处理 3.9、DSP算法的模拟测试 4、NetEQ源文件…

软件项目管理【UML介绍】

目录 UML 一、什么是UML? 二、为什么要用UML? 三、UML图有哪些? 四、UML绘图工具 UML 一、什么是UML? UML(统一建模语言)图在处理复杂项目时,如软件开发、系统设计、业务流程分析或系统架…

dubbo-admin安装

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装no…

GaussDB for openGauss部署形态

前言 华为云数据库GaussDB是华为自主创新研发的分布式关系型数据库,具有高性能、高可用、高安全、低成本的特点,本文带你详细了解GaussDB数据库的部署形态。 1、GaussDB部署形态三种类型 GaussDB部署形态:单机 独立部署是将数据库组件部署…

1.Node.js-函数和匿名函数的用法

题记 函数和匿名函数的简单用法 定义函数 定义普通函数 function 函数名(参数) { // 函数体 } 定义参数为函数的函数 可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数 function say(word) { console.log(word); } function execut…

常见面试题-JVM(一)

什么时候会有内存泄漏,怎么排查? 答: 首先内存泄漏是堆中的一些对象不会再被使用了,但是无法被垃圾收集器回收,如果不进行处理,最终会导致抛出 java.lang.OutOfMemoryError 异常。 内存泄露: …

VS2022更换背景壁纸逐步图示教程

🦄个人主页:修修修也 ⚙️操作环境:Visual Studio 2022 目录 一.下载壁纸插件 二.更改自定义壁纸 三.调整壁纸布局 一.下载壁纸插件 因为更改自定义壁纸需要一个插件的辅助,所以我们要先下载一个小插件 首先,打开VS2022,点击"扩展"->"管理扩…

在Js中如何实现文本朗读即文字转语音功能实现

前言 平时在做项目的过程中,有遇到场景是客户要求播放语音的场景,比如:无障碍朗读,整篇文章实现朗读,文字转语音,文字转语音播放等等。 在不使用第三方API接口的情况下,这里需要js来实现文字转语音播放的功能。能想到的也就是利用html5的个API&#xff1…

数据分析入门

B站:01第一课 数据分析岗位职责和数据分析师_哔哩哔哩_bilibili 一、岗位:数据分析师 Q1 数据分析师在公司做什么工作? 数据来源于公司核心业务,通过监测业务健康度来确定业务的健康状况; 通过对用户精细化分析&am…

vue3 + axios 中断取消接口请求

前言 最近开发过程中,总是遇到想把正在请求的axios接口取消,这种情况有很多应用场景,举几个例子: 弹窗中接口请求返回图片,用于前端展示,接口还没返回数据,此时关闭弹窗,需要中断接…

StretchBlt()、Bitblt用法详解

1、CDC::StretchBlt BOOL StretchBlt( int x, int y,int nWidth,int nHeight, CDC* pSrcDC, intxSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop) 功能:函数从源矩形中 复制 一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉…

【安全体系架构】——防御深度架构

防御深度架构: 防御深度架构是一种多层次的安全模型,旨在通过在网络和系统的各个层次上部署多个安全措施,以抵御不同类型的威胁和攻击。这个模型承认单一的安全措施可能无法全面防御所有潜在威胁,因此采用了多层次的安全防御策略…

【网络】网络编程套接字(一)

网络编程套接字 一 一、网络编程中的一些基础知识1、认识端口号2、认识TCP协议和UDP协议3、网络字节序 二、socket编程1、sockaddr结构2、简单的UDP网络程序Ⅰ、服务器的创建Ⅱ、运行服务器Ⅲ、关于客户端的绑定问题Ⅳ、启动客户端Ⅴ、本地测试Ⅵ、网络测试 一、网络编程中的一…

泛微全新低代码平台e-builder在沪发布,超千名与会者共商数字化转型

10月18日下午,泛微低代码平台体验大会在上海顺利举办,大会以“智能、协同、全程数字化”为主题,吸引了上千位政府及企事单位的信息化负责人参与。 活动现场,参会者身临其境地体验了泛微低代码平台,了解了泛微低代码平…

[论文笔记]Sentence-BERT[v2]

引言 本文是SBERT(Sentence-BERT)论文1的笔记。SBERT主要用于解决BERT系列模型无法有效地得到句向量的问题。很久之前写过该篇论文的笔记,但不够详细,今天来重新回顾一下。 BERT系列模型基于交互式计算输入两个句子之间的相似度是非常低效的(但效果是很好的)。当然可以通过…

WebDAV之π-Disk派盘 + 密码键盘

密码键盘是一款密码管理器,可以存储和管理需要受保护的数据。为方便日常使用,同时也是一款安全输入法,帮您安全便捷地填写账号密码、通用内容、卡包信息。 密码键盘使用军事级的 PBKDF2 有损加密算法保护您的根密码,使用军事级的 AES 加密算法保护您的存储数据。云端再额外…

数据库主键设计中自增ID和Guid的比较

SQL GUID和自增列做主键的优缺点 公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。 主键自增为什么比随机和自定义快? 1、如果表使用自增主键&#xff0…

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiLSTM-…

【Excel单元格类型的解析校验】Java使用POI解析excel数据

一、使用的maven依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version> </dependency> <dependency><groupId>org.apache.poi</groupId&…

安装docker并在内安装mysql

如何卸载docker 1. 停止Docker服务&#xff1a; 在卸载Docker之前&#xff0c;首先需要停止Docker服务。在终端中运行以下命令停止Docker服务&#xff1a; sudo systemctl stop docker 2. 卸载Docker软件包&#xff1a; 接下来&#xff0c;你需要卸载Docker软件包。运行以下…