UI自动化测试的痛点

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

大部分测试初学者入门自动化测试接触最多的也许就是 UI 自动化了,也都使用过移动端的 Uiautomator、Appium  UI自动化框架、PC 互联网界面相关的 Selenium、Robot 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 自动化测试。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

idea设置自定义快捷键定义代码块

文章目录 idea设置自定义快捷键定义代码块1、首先打开setting然后找到editor中的live templates2、点击加号先新建一个Mygroup3、然后就可以按下图添加自己的group进行代码块快捷键的设置了 idea设置自定义快捷键定义代码块 1、首先打开setting然后找到editor中的live templat…

RK3568驱动指南|第八篇 设备树插件-第84章设备树插件参考资料介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

基于合宙Air700E的4G环境监测节点(温湿度、气压等数据),通过MQTT上传阿里云物联网平台

基于合宙Air700E的4G环境监测节点(温度、湿度、气压等数据),通过MQTT上传阿里云物联网平台。 介绍 合宙Air700E 4G模块读取传感器(温湿度、气压等)数据并通过MQTT协议上传阿里云物联网平台,数据也会同时显…

最新9.9付费进群saas系统源码已修复定位及已知bug

距上版,优化一下功能,修复了已知问题及定位功能 1.九块九加群微信裂变人脉吃瓜宝妈同城相亲交友取图表情包 2.支持创建各种付费群,表情,吃瓜,创业,资源等等 3.支付对接第三方易支付,随便一家…

探索 WebRTC:数字世界的实时通信魔法

前言 在当今日常生活中,我们期望能够随时随地与朋友、同事或家人进行实时沟通。WebRTC(Web实时通信)技术就像一种魔法,让这些交流变得无比便捷,而且完全在浏览器中实现,无需下载任何额外应用或插件。 Web…

《Vue2.X 进阶知识点》- 防 ElementUI Divider 分割线

前言 使用 el-divider 背景为白色是没问题的。 但当背景换成其它颜色,问题就出现了!! 仔细看原来是两层,默认背景色是白色。 想着把背景色改为透明应该能用,结果发现背面是一条实线,难怪要用白色遮挡…不符…

python实现文件下载上传

一、文件下载到本地 import requests if __name__ __main__:response requests.get("https://dfcv-shop.oss-cn-hangzhou.aliyuncs.com/dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg")local_filename "./dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg&…

基于SpringBoot留守儿童爱心成长守护平台

1 引言 互联网技术的大面积普及使得网络平台成为人们获取信息的主要途径。网络时代的留守儿童们的生活自然与互联网息息相关,因此必然需要符合网络时代特征的新方式来对留守儿童提供帮助[1]。留守儿童平台作为向大众传递信息的一种方式,使得更多人能看到…

Codeforces Pinely Round 3 (Div. 1 + Div. 2)

A.Distinct Buttons(思维) 题意: 你在开始时站在点 ( 0 , 0 ) (0,0) (0,0),同时,手上有一个遥控器,上面有四个按钮: U:移动到 ( x , y 1 ) (x, y 1) (x,y1)的位置 R:移动到 ( x 1 , y ) (x 1, y) (x1,y)的位置 …

关于“Python”的核心知识点整理大全43

目录 ​编辑 15.2.3 使2散点图并设置其样式 scatter_squares.py 15.2.4 使用 scatter()绘制一系列点 scatter_squares.py 15.2.5 自动计算数据 scatter_squares.py 15.2.6 删除数据点的轮廓 15.2.7 自定义颜色 15.2.8 使用颜色映射 scatter_squares.py 注意 15.2.9…

【ubuntu22.04安装mysql8并配置远程连接】

1.安装mysql 使用管理员权限以下命令安装mysql 1.更新仓库 sudo apt-get update sudo apt-get upgrade2.安装mysql sudo apt install mysql-server3.安装完成之后就可以使用命令 //查看mysql运行状态 sudo systemctl status mysql //登录mysql mysql -uroot -p 然后随便输入一个…

【NI-RIO入门】记录和监控数据

1.内部存储器 可以使用常规文件 I/O VI 在嵌入式程序中以编程方式访问实时控制器的内部存储。文件路径结构根据控制器运行的实时操作系统 (RTOS) 的不同而有所不同。 该文件路径语法记录在教程:使用实时目标上的文件路径 中。 可以通过在Measurement & Automati…

重定向和转发(sendRedirect()和getRequestDispatcher())

重定向 是什么 用户通过浏览器发送一个请求,Tomcat服务器接收这个请求,会给浏览器发送一个状态码302,并设置一个重定向的路径,浏览器如果接收到了这个302的状态码以后,就会去自动加载服务器设置的路径 一个页面跳转…

在小公司 “混” 了2年,我只认真做了5件事,如今顺利拿到字节 Offer

说下我的情况 是的,我一家小公司工作了整整两年时间,在入职这家公司前,也就是两年前,我就开始规划了我自己的人生,所以在两年时间里,我并未懈怠。 现如今,我已经跳槽到了字节,顺利…

Typora使用PicGo+Gitee上传图片

Typora使用PicGoGitee上传图片 1.下载PicGo(国内镜像) https://mirrors.sdu.edu.cn/github-release/Molunerfinn_PicGo/ 点击PicGo-Setup-2.3.0-x64.exe (64位安装) 然后打开gitee(没注册先注册) 2.下载node.js插件 https:/…

mysql原理--连接查询的成本

1.准备工作 连接查询至少是要有两个表的,只有一个 single_table 表是不够的,所以为了故事的顺利发展,我们直接构造一个和 single_table 表一模一样的 single_table2 表。为了简便起见,我们把 single_table 表称为 s1 表&#xff0…

USB启动盘是什么?要如何制作USB启动盘?本文都告诉你

如何制作USB启动盘 USB启动盘怎么制作?下面我们一起来看一看。注意:在执行以下步骤之前,请确保您备份了重要数据,因为这个过程会格式化USB驱动器,清除其上的所有数据。1. 选择操作系统镜像 首先,您需要…

MYSQL数据库的备份与恢复-数据库实验七

一、实验目的 1. 了解备份和恢复的基本概念。 2. 掌握使用MySQL命令进行数据库备份的操作方法。 3. 掌握使用MySQL命令进行数据库恢复的操作方法。 二、实验内容 1. 使用mysqldump命令备份数据库studentsdb的所有表,存于D:\下,文件名为all_tables.s…

Unity 旋转跟随

Unity 使用任意一个局部轴指向目标 效果: 主要用于在编辑器中可视化对象的朝向,同时提供了选择不同轴向的功能。在运行时,物体将根据所选择的轴向朝向目标,并在 Scene 视图中绘制一个带箭头的圆环。 定义轴向枚举:…

Node.js版本对比

目录 1. node版本与Npm版本对照表 2. node版本与node-sass版本对照表 3. node-sass与sass-loader版本对照表 1. node版本与Npm版本对照表 以往的版本 | Node.js 下面显示最新的对应内容,如果需要查找历史版本,可以进入上面的页面查询 VersionLTSDateV8np…