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源文件…

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部署形态:单机 独立部署是将数据库组件部署…

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

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

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

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

数据分析入门

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

vue3 + axios 中断取消接口请求

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

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

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

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

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

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

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

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

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

华为数通方向HCIP-DataCom H12-831题库(多选题:1-20)

第01题 如图所示,路由器所有的接口开启OSPF,图中标识的ip地址为设备的Loopback0接口的IP地址,R1、R2,R3的Loopback0通告在区域1,R4的Loopback0通告在区域0、R5的Lopback0通告在区域2,下列哪些IP地址之间可以相互Ping通? A、10.0.3.3和10.0.5.5 B、10.0.4.4和10.0.2.2 …

【CANoe】XML Test Module使用实例

文章目录 一、实操步骤1、增加XML Test Module节点2、配置XML Test Module节点3、XML Test Module节点增加CAPL脚本(.can文件)4、文件夹结构5、使用仿真节点开始测试6、测试结果与测试报告7、同理,在Test Setup也可如此操作 一、实操步骤 1、增加XML Test Module节…

【ubuntu】常用软件安装

【ubuntu】常用软件安装 前言安装搜狗输入法安装flameshot截图软件总结 前言 Ubuntu 是一个基于 Linux 内核的开源操作系统,它提供了简单易用的界面和丰富的功能,广受开发者和普通用户的喜爱。博主时常也需要经常切换Ubuntu系统进行开发和学习&#xff…

SEM和SD的区别和联系,以及其计算方法

http://t.csdnimg.cn/aHe99http://t.csdnimg.cn/aHe99

【vue3】传送组件、Teleport

把test里的内容传送到test2 //test1.vue <template><div>test1<Teleport v-if"flag" to".aa">test1的内容</Teleport></div></template><script setup langts>import { ref,reactive,onMounted } from vueconst…

2023前端面试题总结

给大家推荐一个实用面试题库 1、前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;web前端面试题库 Html5和CSS3 常见的水平垂直居中实现方案 最简单的方案当然是flex布局 .father {display: flex;justify-content…

在线JSON转EXCEL工具

全天下的柔情共十分&#xff0c;你占八分。你喊我名字那晚的凉风秋月算一分&#xff0c;其余所有占一分。 推荐 在线JSON转Excel工具 - WeJSON 工具简介 在线JSON转Excel工具&#xff0c;可以快速将JSON数组数据一键转换为Excel格式&#xff0c;方便数据的可视化和交流。 所…

Java中过滤器与拦截器的使用

目录 Filter过滤器 Filter作用时机 Filter的使用 过滤器链 过滤器执行顺序 测试 Filter实现简单登陆验证 Interceptor拦截器 Interceptor的使用 Interceptor的拦截路径 Interceptor执行时机 Interceptor实现登录验证 Filter与Interceptor区别 Filter过滤器 Filter…

25.1 MySQL SELECT语句

1. SQL概述 1.1 SQL背景知识 1946年, 世界上诞生了第一台电脑, 而今借由这台电脑的发展, 互联网已经成为一个独立的世界. 在过去几十年里, 许多技术和产业在互联网的舞台上兴衰交替. 然而, 有一门技术却从未消失, 甚至日益强大, 那就是SQL.SQL(Structured Query Language&…