专栏首页腾讯大讲堂的专栏腾讯自动化测试的AI智能

腾讯自动化测试的AI智能

引子:

本文是林奕在腾讯 DevDays 2018 分享内容的脱敏整理,介绍了 CSIG 测试开发中心(前 SNG 测试开发中心)在自动化测试领域所做的智能化尝试。

大致分成下面几部分:

  • 使用AI面对和解决的问题是什么
  • AI带来的曙光
  • 使用了哪些技术,效果是怎么样的
  • 未来展望

UI自动化测试的问题

从业务角度看自动化测试,看到的东西仅仅是冰山浮在水面上的一小部分,而在自动化测试深入的过程中,会发现有很多看不见的坑在冰山下面。

1 自动化测试的复杂度障碍

举一个例子来说明, UI自动化测试工具首要要解决的是识别UI中的各个元素,因为安卓、iOS、Windows这样的操作系统有非常不同的表现逻辑,导致测试工具要针对不同的平台区分不同版本的工具,QTA测试工具也是按照这种结构去划分的。这是在冰山之上很显而易见的部分。

(冰山之上)

但是随着新技术的发展,越来越多的研发框架引入,如网页渲染、UI引擎甚至3D渲染引擎接连出现。这些数量繁多的开发框架,因为实现原理不同,在自动化测试过程中都会出现很多问题。

(冰山之下)

因为技术繁多,会让负责自动化测试工具的同学很受挫折,每一项技术都需要针对性的方案去解决,又面对非常多的场景要考虑兼容通用。

如下面的例子,一个软件界面,在人眼中看到的是完整的样子,但在UI自动化工具眼中,就要拆分成多个不同的模块使用不同技术来识别。

这是一个混合客户端的例子,但在现实中往往会发现,在一个界面中,经常会混合很多种渲染技术。每当一个新的UI渲染技术出现,自动化工具都要进行适配,这样下来不仅成本会非常高,也是一件很难做兼容的事情。这样就给自动化测试工具带来了无尽的挑战,是自动化工具开发遇到的困难点。

2 自动化测试同质元素识别障碍

第二个例子是一个闹钟应用的界面,但是在控件树上看起来,却因为区分不出内容,而只能把每一个时间元素同等对待。工具没有好办法来识别哪一个条目是北京的闹钟。

虽然通过无障碍化产品设计的方式,可以部分解决这一问题,但取决于产品的定位,并不是每一个产品都会支持到无障碍化。除了无障碍之外,出现了很多例如React之类的响应式布局,开发在写代码时,很难预料实际运行时的UI结构,更难在开发时提供给测试使用的UI数据结构。这样一来,又给自动化测试增加了难度。

3 自动化测试成效问题

在谈到自动化测试时,很多同学提到投入产出比。成效是推行自动化测试很重要的问题。

如上图,纵坐标是自动化测试的投入度,横坐标是随着产品演进过程的投入时间。自动化测试有两种投入方式,分别是脚本式和录制回放式。脚本式在项目初期投入较高,而后会随着产品的功能逐渐完善而逐渐降低维护成本。但业务往往由于脚本式自动化测试初期投入过高,而选择初期比较简单上手的录制回放式方案。而录制回放式方法由于界面变动就需要重新录制脚本,导致后续版本要投入与之前相同的工作量,而无法最终收敛。

另外一种场景,业务选择了脚本式自动化测试方案。但是投入并不彻底,导致随着功能开发迭代,自动化测试脚本的维护工作量并不收敛。这代表这次自动化测试的实施是失败的。如下图:

这其中的原因,最可能是没有做好自动化测试的变更管理——变化是影响UI自动化测试成效的关键因素。

控件识别和定位技术是自动化测试技术的关键难题

把以上三个问题做一下归纳,会发现自动化测试一个核心需要攻破的难点,那就是控件识别和定位。它是影响自动化测试成效的关键因素之一。

AI带来的曙光

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混淆而进行误操作。

我们人之所以知道用哪个联系人,是因为人类有先前的知识积累,但是AI并没有类似的经验,导致没法分辨。

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

为了解决这些问题,就像电动汽车很多车型采用混动技术一样,QTA采用了传统方式和Metis混用的方法,一定程度上补足了AI暂时性的不足。用户可以任意搭配传统和AI的方式。

第二种方式是把AI和算法混合,例如厘米秀,通过维护一系列相近的图片,使用模式匹配技术进行图片识别和认定,还是有一定的工作量会影响到自动化测试脚本编写者的使用体验。

小结一下QTA Metis所应用的主要技术:

第一是由海量脚本UI逻辑数据进行的大数据;第二是AI对象识别技术,包含OCR以及图像的分类;第三是AI目标检测技术,实时的检测每一个对象,并对每个对象进行分类。经过如上技术,让UI自动化测试“看得见”。

CSIG研发工具体系

QTA是 CSIG 的研发工具体系中的一部分,负责自动化测试,CSIG 体系中还有很多有用的工具,比如做代码扫描的CodeDog,以及致力于DevOps打通的持续集成流水线QCI等,也欢迎大家深入了解。

(CSIG 研发工具体系)

作者:林奕

腾讯 CSIG QTA 测试开发平台负责人

负责 BG 业务自动化测试落地


研发创新

分享腾讯研发理念

推广优秀中台实践

本文分享自微信公众号 - 腾讯大讲堂(TX_DJT)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯自动化测试的 AI 智能

    本文是林奕在腾讯 DevDays 2018 分享内容的脱敏整理,介绍了 CSIG 测试开发中心(前 SNG 测试开发中心)在自动化测试领域所做的智能化尝试。

    DevOps时代
  • 为测试赋能,腾讯WeTest探索手游AI自动化测试之路

    做好自动化测试从来不件容易的事情,更何况是手游的自动化测试,相比传统的APP,手游画面纯OPENGL绘制无可识别控件,且界面动画多、随机性大。举个例子,拿新手引...

    WeTest质量开放平台团队
  • 为测试赋能,腾讯 WeTest 探索手游 AI 自动化测试之路

    WeTest率先尝试将基于深度学习的人工智能应用于手游测试当中,开启AI手游自动化测试时代。

    WeTest质量开放平台团队
  • 打造云端测试梦工厂 腾讯WeTest参展TFC 2017

    2017第十四届TFC全球移动游戏大会暨智能娱乐展2月23日在北京举行,很多公司都选择在新一年伊始举办的TFC期间公布新一年公司的愿景规划,作为国内游戏测试龙头...

    WeTest质量开放平台团队
  • WeTest即将亮相鹏城QECon全球软件质量效能大会(内含赠票福利)

    导语   2021年5月28日-5月29日,QECon全球软件质量效能大会将在美丽的鹏城深圳湾万丽酒店召开。   QECon全球软件质量&效能大会旨在追寻“质...

    WeTest质量开放平台团队
  • 引领测试创新突破,腾讯WeTest携AI测试、企鹅风讯亮相ChinaJoy

    2017年7月27日,全世界玩家再次将目光齐聚上海新国际博览中心,国内游戏测试行业领军者腾讯WeTest凭借着智能AI测试、大数据服务企鹅风讯再次抢眼亮相Chi...

    WeTest质量开放平台团队
  • 「品质成就未来」腾讯WeTest助力TiD质量竞争力大会

    2018年7月15日-18日,由中关村智联软件服务业质量创新联盟主办,“2018质量竞争力大会”(简称TiD大会)于北京成功召开。来自人工智能、软件测试、金融科...

    WeTest质量开放平台团队
  • 「深度兼容测试」服务 今日重磅发布!

    原文链接:http://wetest.qq.com/lab/view/396.html

    WeTest质量开放平台团队
  • 用AI思维给成本降温,腾讯WeTest兼容性测试直击底价!

    原文链接:https://wetest.qq.com/lab/view/468.html

    WeTest质量开放平台团队
  • 用AI思维给成本降温,腾讯WeTest兼容性测试直击底价!

    WeTest 导读 当AI成为各行业提高产业效率的动能,很多人开始疑惑,这架智能化的“无人机”何时在移动应用测试中真正落地?在今年的国际数码互动娱乐博览会(Ch...

    WeTest质量开放平台团队
  • 腾讯教育携AI考官、虚拟助教、电子陪练亮相厦门教育装备展

    随着科技的高速发展,诸多教育场景以及行业生态正在被重构:试想一下,AI当考官,虚拟人做家教,还有随叫随到的电子陪练……这些只在科幻小说中才有的角色如今已变为现...

    鹅老师
  • 「深度兼容测试」服务 今日重磅发布!

    根据腾讯WeTest提供数据显示,70%的互联网用户已有3年以上的互联网经验,对应用内容的需求更加追求高效与个性化,需要产品长期稳定产出优质内容。而随着行业内容...

    WeTest质量开放平台团队
  • 腾讯开悟平台首度面向高校开放,开放生态助力AI+游戏产业升级

    8月18日,腾讯宣布首届“开悟AI+游戏高校大赛”(下称“大赛”)初赛正式启动,这也是腾讯开悟平台首次面向高校开放。该大赛由腾讯 AI Lab 携手王者荣耀、腾...

    腾讯高校合作
  • 腾讯AI大战王者荣耀!504场1v1仅输1场,5v5达电竞职业水平

    8月3日,腾讯策略协作型 AI “绝悟”再出山,对战王者荣耀职业玩家,胜率相当惊人。

    小小詹同学
  • 提升测试效率,自动化智能探索课程上线腾讯课堂啦!

    导读   移动终端种类繁多,品牌众多,操作系统也分iOS和Android两大类。仅以Android举例,排除各大厂商优化定制的版本就高达十几种。   为了能够使...

    WeTest质量开放平台团队
  • 大会活动 | AIIA2020 腾讯云王磊:连接产业和开发者,构建更完整的AI

    9月28日,在2020 AIIA人工智能开发者大会上,腾讯云AI计算机视觉产品中心总经理王磊表示:“在AI已经进入产业和生态角逐的当下,腾讯云希望连接产业和开发...

    优图实验室
  • 拯救品质之殇,WeTest 精品升级计划推动行业发展

    腾讯大讲堂
  • 重磅!腾讯教育再推两大全新解决方案!

    7月9日,在腾讯全球数字生态大会合肥峰会上,腾讯教育宣布联合腾讯会议发布三个课堂解决方案,同时联合腾讯优图实验室发布腾讯智能校警解决方案。 安徽省合肥市教育局...

    鹅老师
  • 无AI不测试:人工智能时代背景下,如何发展与应用自动化测试?

    从计算机科学诞生开始,其主要目标一是计算(用计算机对大量数据进行处理),二是自动化(用计算机代替机械重复的人工劳动)。在半个多世纪后的今天,我们惊讶地发现,引导...

    WeTest质量开放平台团队

扫码关注云+社区

领取腾讯云代金券