UI自动化测试如何走出困境?价值又如何体现?

现在很多公司都在做UI自动化测试,也有很多正在做UI自动化测试的路上,招聘的时候习惯性的会问会不会性能测试,会不会自动化测试(一般指UI自动化测试),也有很多小伙伴一直憧憬着要做技术专家,那么性能测试暂且不表,UI自动化测试到底有没有用呢,或者有什么用呢,本节就重点阐述说明UI自动化测试的应用场景和存在价值。

在这里插入图片描述

正文

首先需要正确的认识UI自动化测试,测试按照类型可分为功能测试和非功能测试,功能测试按照实施方法可分为脚本(Unit)测试、接口自动化测试、UI自动化测试、人工测试,非功能就包含了性能、安全、易用性、可靠性等等。

当前有一半以上的企业在做且只在做着手工测试,手工测试在整个测试界占比还是相当大的,这有它的必然性,因为当前国内的IT公司大部分还处于无序到有序的发展阶段,手工测试依然是主流的测试手段。业界也有些团队或个人在探索和研究着其他的测试方法,除了以上所说的之外还有一些精准测试、日志回溯测试、深度遍历测试、AI测试等。

互联网的发展规律和万事万物都是一样的,都是从出生到成长,从不断地试错然后慢慢到成熟,再然后到稳定固化,然后再改进。在当前这个试错或者从无序到有序的阶段中,好多事情还没有形成固化的体系。

再次回到UI自动化测试这部分,首先说,UI自动化测试是什么呢,它是自动执行或运行预定义的操作步骤的一种测试手段,基于UI(界面)层面,完全模拟人工测试的一种测试行动。

在这里插入图片描述

在理想情况下,UI自动化能够几乎完全完美的模拟人的手工操作,但其实它也是有一些限制的,比如一些需要外设、需要传感器的操作,机器很难模拟,需要大量的代码去破解或者模拟类似行为,如人脸、指纹、二维码扫码、图片识别、花式验证码,这里并不是说不可以模拟,而是如果模拟的话需要付出比较大的代价,暂时还没有发现很方便或简单解决这些难题的方法。

UI自动化是什么讲完了,然后谈谈UI自动化的应用场景。

UI自动化可以应用的场景包括对客系统的功能测试(一般用于回归阶段),覆盖PCweb、安卓、IOS等端;也可用于自动化造数,这部分效率上不如接口自动化,但是造数准确性上要优于接口,因为黑盒情况下无法了解系统内部构造,并且即是了解了系统交互设计,接口自动化人员可以完全模拟该设计,但无法确保实际开发这就是按照这个逻辑去实施的;还可以应用于自动化办公,解决固定流程下系统中的人力重复劳动;还可应用于智能客服、远程控制、黑客、点赞刷票、抢红包等等。更多应用场景需要大家集思广益的去开发。

在这里插入图片描述

再说说UI自动化测试的价值,一切不以拦截缺陷为目的的测试手段都是耍流氓,说这句话可能会得罪一部分人,但是事实就是如此。无论是何种的测试手段,都应该以拦截缺陷作为首要目标,自动化测试也是如此。

很多人会说,自动化测试一年就发现了三五个,或者十几个缺陷,还有做下去的必要么?投入那么多收入这么少,性价比是不是太低了?这个就真的是需要看价值了,如果有这个疑问,那么需要看这样几件事:

1、自动化拦截的缺陷如果没有被拦截到,会造成多大的损失?拿“估计损失去”减“投入”就是自动化测试指向,如果为正,则需要保持自动化测试当前的投入状态,如果为负则需要分析后适当调整自动化测试的覆盖程度(如果还未拦截到高价值的缺陷,则需要分析覆盖率,是否增加覆盖,还有一种可能是覆盖率过高,投入过大,远超缺陷的价值)。

2、自动化在什么阶段拦截的缺陷?距离上线时间越近,被拦截下来的缺陷价值就越大
3、自动化测试拦截的缺陷是否应当被手工人员发现?如果应当,说明手工测试需要加强管控
4、自动化测试拦截的缺陷隐藏深度如何?如果发现了隐藏较深的缺陷,应当继续加强自动化测试的投入和覆盖程度。
5、依据自动化测试拦截的缺陷情况分析开发过程的规范性。

如果以上价值都不需要考虑,则不建议做自动化测试。另可以根据系统类型不同选择不同的自动化测试技术,比如迭代较慢,业务重要程度高,对客业务少,这类系统可以考虑做单元测试,或接口自动化;提供服务类的系统,接口数量大,对接前端系统较多的可以做接口自动化;业务迭代速度快,注重用户体验,版本管理不够稳定,新功能较多的系统,可以考虑UI自动化测试(有些人觉得页面变动频繁不应该做UI自动化,这个是对的,但是如果实在原有框架内实施,新增功能,迭代较快,并且对客系统,其实很适合做UI自动化测试,前提是也需要好用的工具)。

在这里插入图片描述

最后谈谈UI自动化测试的定位吧,前边已经讲的差不多了,UI自动化的定位其实就是回归测试工具、自动化造数工具、测试体系的补充。抛开自动化造数不提,在有些企业中,UI自动化测试也属于测试体系的一个补充,为了完善团队的测试方法,同时在一些评级或者对外宣传方面也会起到名誉作用。完全属于小公司不建议做,有钱往大了做的一种测试方法。

结尾

UI自动化测试容易做,但是想要做好很难(获得自我认同就很难了、获得他人的认同更难),除了以上讲到的价值和定位,也希望在未来可以走出不一样的道路

你可能感兴趣的:(软件测试,软件测试,测试工程师,自动化测试,ui,程序员)