浅谈自动化测试的价值和常见误区

简介: 浅谈自动化测试的价值和常见误区

简介


如下图是大部分质量工程师都知道的分层测试体系,其中UI自动化所占的比例虽然看起来很小,但是其能发挥的价值还是很大的。

image.png

目前整个业内在自动化测试框架选型方面:大厂因为业务足够复杂,人力资源足够丰富,所以一般采用自研框架,中小厂由于人力资源有限,所以一般采用开源框架,比如Appium、Airtest、uiautomator2等。


另外在测试平台建设方面:头部大厂一般既有对外的公有云测服务又有对内的私有云测服务,比如阿里云测MQC、腾讯云测WeTest以及百度云测MTC等,中大规模的企业比如美团、B站、爱奇艺、携程虽然没有对外的公有云测服务,但是一般也都是有自己的私有化云测服务的,小厂的话一般都是本地执行,或者基于Jenkins搭建一条简单的流水线外加几十台设备来跑,基本也可以满足一定程度的自动化测试需求。


应用场景


  • 冒烟测试自动化:通过跟精准测试平台打通,在RD提测前对MR的改动进行精准自动化回归,为QA提供准入参考
  • 功能回归测试自动化:在每次版本回归阶段替代QA自动回归功能测试用例
  • 专项性能测试自动化:兼容性、稳定性、性能等底层都依赖UI自动化作为驱动


价值


主要从主观和客观来看

主观

可以帮助测试团队转型,从传统的手工测试团队转为测试开发团队


客观

首先是提高效率也就是更快的发现问题,比如:通过与CI/CD/DevOps结合来融入企业的迭代流水线为回归测试、功能测试等提速。


再有就是提高质量,也就是发现一些更深入的Bug,比如通过兼容性测试发现一些跟机型和操作系统有关的适配问题,通过专项测试,可以采用一些极限操作来测试那些人工很难覆盖到的场景,比如Fuzz、Monkey、智能遍历等等。


常见误区


在做自动化测试的这些年里,听到过很多不同的声音,其中不乏一些质疑和误区,今天就给大家分享一些我对这些误区的理解。


手工测试无用论

我们强调自动化并不代表说手工测试就没有用,相反手工测试是非常有必要的,只不过仅仅有手工测试是不够的,手工+自动化才是企业产品快速迭代的基石,但具体到两者的占比是没有一个所谓的行业标准的,具体跟企业的业务类型、发展阶段、团队规模、以及技术储备有关。


手工测试并不代表落后,只不过人更应该把精力投入到设计更好的用例、更好的测试策略以及探索性测试上面,让机器去做那些他们擅长的事情。


UI自动化测试无用论

这个是做自动化测试的时候经常听到的一种声音,但其实讲这种话的人大多数是自己经验能力达不到、搞不定,无非是从两个方面吐槽:


一是人力技术成本高,首先是觉得优秀的测试开发工程师难招,但其实说白还是钱给的不到位,我觉得对于一些中大型企业来说,花高价钱来招一个优秀的测试开发工程师其实收益是远大于成本的。


我最近几年前后应该面了有100多位做自动化测试的工程师,不乏有些简历上写着精通各种自动化测试的候选人,但说实话80%的候选人在自动化测试能力上都不及格,要么是对框架理解不够深入浮于表面,要么是自动化测试的落地能力以及工程能力都没有达到要求。


二是维护成本高,首先是用例的复用率不高,生命周期太短,这块主要是因为UI和业务流程的频繁变更,导致元素定位失败等,再有就是稳定性不足,导致误报率居高不下,从而使团队丧失耐心和信心,但这些问题都是可以解决的,具体的方法我之前有出过一系列的文章,可以翻回去看看,比如《移动端UI自动化过程中的难点及应对策略》、《提高Android自动化测试稳定性的方法(一)》、《提高Android自动化测试稳定性的方法(二)》、《提高Android自动化测试稳定性的方法(三)》、《提高iOS云真机稳定性的方法(一)》、《提高iOS云真机稳定性的方法(二)》等。


UI自动化测试只能模拟人工

我们都知道现在智能化测试是未来的一种趋势,UI自动化跟机器学习、计算机视觉算法等结合可以覆盖很多人工无法覆盖到的场景,比如在海量真机上的UI兼容性回归测试、线上UI异常智能巡检、视频卡顿检测、体感耗时评测等等。


合理地使用UI自动化


建议使用分层测试的策略来控制UI自动化测试的规模,比如:只将少数核心用例交给UI自动化测试,大部分的基础回归测试交给智能遍历,剩余的新功能测试交给人工测试。


自动化测试的演进


UI自动化测试作为“业务先赢”的一种重要手段一直在不断的演进,从泛终端与多端UI自动化的视角来看,行业内主要有以下或类似的解决方案:

image.png

相关文章
|
6月前
|
监控 测试技术 API
价值驱动测试尝试
价值驱动测试尝试
41 0
|
2月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
76 1
|
3月前
|
敏捷开发 测试技术 持续交付
探索软件测试的多维价值
【8月更文挑战第8天】本文将深入探讨软件测试在软件开发周期中扮演的角色,揭示其在确保产品质量、优化开发流程、降低维护成本以及提升用户满意度方面的重要性。通过分析测试的不同阶段和策略,我们旨在为读者提供对软件测试全面价值的新见解,并鼓励采取更系统的测试方法以实现软件项目的成功。
|
4月前
|
数据采集 开发框架 监控
增加软件投入的重要性:提升自动化程度与用户界面设计的价值
增加软件投入的重要性:提升自动化程度与用户界面设计的价值
49 4
|
4月前
|
监控 测试技术 持续交付
自动化测试在软件生命周期中的价值与挑战
本文通过深入分析自动化测试在软件开发过程中的应用,揭示其在提升效率、确保质量和减少成本方面的显著优势。同时,探讨了实施自动化测试时面临的技术复杂性、维护成本和技能缺乏等挑战,并提出了相应的解决方案。文章旨在为软件测试专业人士提供一个关于自动化测试实践的全面视角,帮助他们更好地规划和执行测试策略。
|
5月前
|
前端开发 测试技术
接口测试:Mock 的价值与意义
Mock测试用于替代复杂或不可用的对象,常见于前后端交互、第三方系统及硬件解耦。它不依赖真实数据,节省工作量和联调时间。核心包括匹配规则(决定修改哪个接口)和模拟响应(设计篡改内容以符合测试用例)。
|
6月前
|
测试技术 API Apache
5个关键问题让单元测试的价值最大化
本文讨论的单元测试策略来自于实践中遇到的真实问题,作者总结出了5个关键策略问题并给出了解决之道。
|
6月前
|
算法 测试技术 项目管理
阿里十年总结之软件测试的价值
本文是作者十几年工作经验的总结,也对“软件测试的价值”做个探讨,希望有机会跟团队一起走出当前的周期。
|
6月前
|
存储 SQL 测试技术
通过降本增效,提升测试价值
通过降本增效,提升测试价值
101 0
|
6月前
|
缓存 运维 测试技术
如何让测试用例更有价值
如何让测试用例更有价值
60 0
下一篇
无影云桌面