腾讯自动化测试的AI智能
- 2021-01-12 10:00:00
- 林奕
- 转贴:
- 腾讯云
- 8432
一、UI自动化测试的问题
从业务角度看自动化测试,看到的东西仅仅是冰山浮在水面上的一小部分,而在自动化测试深入的过程中,会发现有很多看不见的坑在冰山下面。1.自动化测试的复杂度障碍
举一个例子来说明, UI自动化测试工具首要要解决的是识别UI中的各个元素,因为安卓、iOS、Windows这样的操作系统有非常不同的表现逻辑,导致测试工具要针对不同的平台区分不同版本的工具,QTA测试工具也是按照这种结构去划分的。这是在冰山之上很显而易见的部分。
(冰山之上)
但是随着新技术的发展,越来越多的研发框架引入,如网页渲染、UI引擎甚至3D渲染引擎接连出现。这些数量繁多的开发框架,因为实现原理不同,在自动化测试过程中都会出现很多问题。
(冰山之下)
因为技术繁多,会让负责自动化测试工具的同学很受挫折,每一项技术都需要针对性的方案去解决,又面对非常多的场景要考虑兼容通用。如下面的例子,一个软件界面,在人眼中看到的是完整的样子,但在UI自动化工具眼中,就要拆分成多个不同的模块使用不同技术来识别。

2.自动化测试同质元素识别障碍
第二个例子是一个闹钟应用的界面,但是在控件树上看起来,却因为区分不出内容,而只能把每一个时间元素同等对待。工具没有好办法来识别哪一个条目是北京的闹钟。
3.自动化测试成效问题
在谈到自动化测试时,很多同学提到投入产出比。成效是推行自动化测试很重要的问题。
另外一种场景,业务选择了脚本式自动化测试方案。但是投入并不彻底,导致随着功能开发迭代,自动化测试脚本的维护工作量并不收敛。这代表这次自动化测试的实施是失败的。如下图:

这其中的原因,最可能是没有做好自动化测试的变更管理——变化是影响UI自动化测试成效的关键因素。
4.控件识别和定位技术是自动化测试技术的关键难题
把以上三个问题做一下归纳,会发现自动化测试一个核心需要攻破的难点,那就是控件识别和定位。它是影响自动化测试成效的关键因素之一。二、AI带来的曙光
1.QTA所做的AI尝试
QTA是在SNG跑了很多年的自动化测试平台,已经接入了170个活跃的公司产品和项目。仅2018年Q1,就自动化执行了一百四十万个测试任务、五千万个用例,按成时间平均每秒就有3个用例被执行。这些数据基础,为QTA引入AI技术提供了可靠的数据来源。QTAMetis就是为了解决控件识别和定位技术这一关键难题,而引入AI优化能力。

(传统自动化测试识别和定位)

(Metis AI自动化测试识别和定位)
应用成熟的目标检测技术,可以看到Metis已经成功的把对象定位出来。而后通过分类器,把每一个元素分类和识别出来,例如哪些是可以点击的按钮,哪些是一个图片区域。然后通过OCR技术,把原件中对应的文本提取出来;如果是Logo,则通过图片的分类器把对应的Logo类型分类出来,而映射为特定的文本。可以看到,这一实现结果和人看到的是一样的,与人类的认知相仿。已经基本脱离了APP本身的代码实现,也不需要再关注应用后面的UI实现技术,可以解决文章前面所述的几个问题。
同时还有另一个好处,比如某一个控件在新版本换了位置,对自动化测试没有任何影响。在成效方面,也减少了变更时增加的维护量。
在这种技术下,自动化测试脚本变得简单化:

(更接近自然语言的自动化测试脚本)
脚本所实现的自动化测试效果,视频速度减慢15倍。实际测试的速度会比视频快很多,虽然过程中出现一些误报,但80%的情况下已经能够满足自动化的要求。
(传统UI自动化测试与Metis的区别)
可以看到,AI已经可以使自动化测试实现一个质的飞跃。
比如下图的界面,联系人有两个,容易导致AI混淆而进行误操作。

第二个问题,并不是全部的Logo都能识别出来,特别对于业务自定义的Logo和图案,识别的成本非常高。例如下图中用户自定义的厘米秀按钮:


第二种方式是把AI和算法混合,例如厘米秀,通过维护一系列相近的图片,使用模式匹配技术进行图片识别和认定,还是有一定的工作量会影响到自动化测试脚本编写者的使用体验。
2.小结一下QTA Metis所应用的主要技术
- 第一是由海量脚本UI逻辑数据进行的大数据;
- 第二是AI对象识别技术,包含OCR以及图像的分类;
- 第三是AI目标检测技术,实时的检测每一个对象,并对每个对象进行分类。
经过如上技术,让UI自动化测试“看得见”。
发表评论
联系我们
- 联系人:阿道
- 联系方式: 17762006160
- 地址:青岛市黄岛区长江西路118号青铁广场18楼
