当前位置:网站首页>字节测试工程师十年经验直击UI 自动化测试痛点
字节测试工程师十年经验直击UI 自动化测试痛点
2022-07-04 19:06:00 【小梧敲代码】
当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的,然后在慢慢的接触 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 自动化测试。
写在最后:
没有一个寒冬不会过去,没有一个春天不会到来,过去的2022年对于全世界人民来说是不平凡的一年,每个人都在坚强勇敢的和疫情抗战,在这里我们一起为自己鼓个掌吧,2023年已经如约而至,制定好目标继续向上生长吧。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:25天从零基础转行到入职软件测试岗,今天学完,明天就业。【包括功能/接口/自动化/python自动化测试/性能/测试开发】
边栏推荐
- Aiming at the "amnesia" of deep learning, scientists proposed that based on similarity weighted interleaved learning, they can board PNAS
- YOLOv5s-ShuffleNetV2
- Offset function and windowing function
- Redis分布式锁的实现
- Selected review | machine learning technology for Cataract Classification / classification
- Employment prospects and current situation of Internet of things application technology
- Anhui Zhong'an online culture and tourism channel launched a series of financial media products of "follow the small editor to visit Anhui"
- 奏响青春的乐章
- Informatics Olympiad 1336: [example 3-1] find roots and children
- What if win11u disk refuses access? An effective solution to win11u disk access denial
猜你喜欢
剑指 Offer II 80-100(持续更新)
电脑共享打印机拒绝访问要怎么办
Decryption function calculates "task state and lifecycle management" of asynchronous task capability
Win11无法将值写入注册表项如何解决?
实践示例理解js强缓存协商缓存
[Beijing Xunwei] i.mx6ull development board porting Debian file system
电脑页面不能全屏怎么办?Win11页面不能全屏的解决方法
原来这才是 BGP 协议
实操自动生成接口自动化测试用例
Pointnext: review pointnet through improved model training and scaling strategies++
随机推荐
Length of the longest integrable subarray
[in-depth learning] review pytoch's 19 loss functions
How is the entered query SQL statement executed?
Optimize if code with policy mode [policy mode]
Lingyun going to sea | Wenhua online & Huawei cloud: creating a new solution for smart teaching in Africa
Cdga | six principles that data governance has to adhere to
浏览器渲染页面过程
Understand the reading, writing and creation of files in go language
【深度学习】一文看尽Pytorch之十九种损失函数
记录线上bug解决list(未完待续7/4)
软件客户端数字签名一定要申请代码签名证书吗?
LeetCode 871. 最低加油次数
Win11共享文件打不开怎么办?Win11共享文件打不开的解决方法
奏响青春的乐章
电脑怎么保存网页到桌面上使用
NLP、视觉、芯片...AI重点方向发展几何?青源会展望报告发布[附下载]
Qt五子棋人机对战画棋子之QPainter的使用误区总结
Write it down once Net analysis of thread burst height of an industrial control data acquisition platform
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
NetCore3.1 Json web token 中间件