背景
从计算机科学诞生开始,其主要目标一是计算(用计算机对大量数据进行处理),二是自动化(用计算机代替机械重复的人工劳动)。在半个多世纪后的今天,我们惊讶地发现,引导计算机科学发展的仍然是这两个范畴:大数据和人工智能(AI)。
而自动化测试,是人工智能领域下的一个应用方向,和无人驾驶、机器人等一样,都是 AI 技术的应用场景。从技术的发展角度看,自动化测试一共经历了四代发展变化。从最早提出自动化测试思想,到如今将 AI 引入自动化测试,贯穿其发展的核心诉求就是希望能有效的解决自动化测试中的时间与人力成本问题。
在过去很长一段时间内,自动化测试都局限于传统的测试脚本驱动。无论是游戏开发人员使用的 Lua 接口,还是类似 Xcode 的 UI Test,抑或是通过 ADB/minicap 对 Android 设备进行简单操控的 Python Script,其本质都是人为定义规则的自动化操作模拟。传统方式尽管工作量大,但实现门槛较低,容易上手,容易调试,也容易修改,在很长一段时间里都是自动化测试的主流方案。相关主流方案的差异通常也只限于自动化脚本接口或规则定义形式的不同。
然而,这种人工定义规则的方案都存在一些很明显的问题:版本迭代频繁。每次版本变化往往需要重新修改、调整脚本。对于较为复杂或具有一定随机性(例如游戏对局)的场景,难以通过简单的脚本调整对其提供支持。实际上,对于随机性极强的游戏产品,通常不会对游戏对局过程进行太多测试。
部分测试脚本需要产品本身提供对应的操作接口,用于获取游戏内部数据。而这种专用测试接口通常不会在正式发布版本中提供,因此对于真正上线的产品,难以用自动化脚本进行测试,只能靠人工测试。这一点可以说是导致自动化测试工具至今无法大规模商业化、产品化的核心原因。
AI 与自动化测试
从 20 世纪 50 年代到 20 世纪 70 年代初,人工智能的研究处于 “推理期”。1981 年,Werbos 提出了多层感知器,引入了反向传播(BP)算法,此后,神经网络得到了快速发展;1986 年,决策树的机器学习算法被 J.R.Quinlan 提出,也就是 ID3 算法;1995 年,Vapnik 和 Cortes 提出了支持向量机(SVM),其被作为一种能使机器学习取得重大进展的方法而得到推广;2005 年,三层的 NN 模型强势崛起,诸多专家在理论和实践上彻底激活了深度学习。2012 年,Hinton 课题组首次参加 ImageNet 图像识别比赛,通过 CNN 网络——AlexNet 夺得冠军,CNN 网络吸引了众多研究者关注;2015 年,深度残差网络(ResNet)被提出,在众多比赛中表现突出;2016 年,由谷歌旗下的 DeepMind 公司研发的阿尔法围棋(AIphaGo)战胜了当时的围棋世界冠军李世石,成为第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能机器人,引起世界舆论的哗然。越来越多的技术领域开始尝试结合 AI 技术进行开发。至今,AI 技术已经在图像处理、语音识别、艺术创作、自动驾驶等许多方面有了成熟的技术与稳定的应用。
在 2015 年和 2016 年 Google DeepMind 发表多篇游戏自动控制的论文,以及 AlphaGo 在棋类游戏上有了战胜人类的先例之后,腾讯互动娱乐事业群的 TuringLab 团队开始思考如何利用最新的 AI 技术解决上述问题,并将其融入自动化测试工具中。从 2017 年到今天,通过多个产品的实验和腾讯内部多个部门的协作,TuringLab 团队成功地开发出一套基于深度学习的自动化 AI 测试框架,并应用在多款世界知名游戏产品的日常测试上。
AI 技术的核心思想是利用已有的历史数据,训练出一个较好的 AI 网络,通过已经训练好的 AI 网络来处理当下的输入数据。与传统的编程方法不用,通过 AI 算法训练出来的网络模型通常会有更好的泛化性。而在传统的自动化测试中,项目测试的维护成本很高,只要版本更新或功能发生变动,就有可能产生大量的维护工作。引入 AI 技术后,其带来的泛化性可以有效地减少自动化测试的维护成本,在 AI 模型中编程可以不做改动,或者直接增加训练数据就可以很好的完成测试需求。
2020 年,TuringLab 团队基于深度学习的自动化 AI 测试框架基础,将其开发与应用经验详细整理成了《AI 自动化测试:技术原理、平台搭建与工程实践》一书,与读者分享腾讯游戏是如何将 AI 技术与自动化测试相结合完成测试需求的。
主创团队
腾讯互动娱乐事业群 TuringLab 团队
由美国归国技术专家领头组建,成员包括多位图像识别处理和机器学习领域的博士,以及多位专注于工程技术的专家。目前,实验室开发的 AI SDK 自动化测试平台已经成功接入腾讯公司的几十款在正式运营的商业游戏,并同时服务于 WeTest 产品、即通手 Q 产品,以及各游戏工作室的多个产品。
[主编]
张力柯
腾讯 TuringLab 实验室负责人,资深 AI 系统设计专家;美国德克萨斯大学圣安东尼奥分校计算机科学博士,曾先后在美国微软、BCG、Uber 及硅谷其他创业公司担任研发工程师及项目负责人等;
[联合作者]
周大军:腾讯 TuringLab 实验室 AI 工程组负责人,有 10 年以上工程技术开发经验,负责开发的 GAPS(压测大师)获腾讯公司首届最佳工具奖,申请及参与提交工程、无人机、AI 相关专利 70 余项;
黄超:资深 AI 算法研究员,先后在国内外重要的期刊和会议上发表 20 余篇论文,并提交 AI 相关专利 25 项;
李旭冬:资深 AI 算法研究员,在国内外重要会议和期刊上发表学术论文 15 篇,申请 AI 相关专利 10 项;
申俊峰:资深软件工程师,有 10 年以上工程技术开发经验,先后提交相关技术专利 10 项;
王洁梅:腾讯高级工程师,先后提交发明专利 23 项,其中国际检索 2 篇;
杨夏:腾讯高级工程师,先后提交发明专利 26 项
书籍简介
《AI 自动化测试:技术原理、平台搭建与工程实践》一书共分了三个部分。
第一部分是原理篇,重点介绍图像识别算法、基于值函数和策略梯度的强化学习、模仿学习的研究现状与在自动化测试中的运用等相关的 AI 算法原理,还详细讲解了 Android 设备调试相关问题,为后续学习具体工具的落地应用打下基础。
第二部分是平台篇,将用长达 117 页的详细介绍为工程师们讲解腾讯游戏 AI 自动化开发工具的设计与实现,包括和 Android 设备的对接、数据标注流程、AI 算法在游戏自动化中的具体实现、AI SDK 平台二次开发等。
第三部分是最佳实践篇,将通过不同需求场景下的实践案例,为工程师们展示在实际游戏产品的测试如何使用本书介绍的测试平台完成各类不同的需求,并可尝试在此基础上实现定制化功能。
结语
AI 作为近些年的技术热门话题词,有不少企业行业打出 “人工智能” 的标签制造噱头,吸引大众的眼球。在自动化测试技术多种多样的背景下,与 AI 技术结合的自动化测试方法却已经在诸多适当的场景达到了提高生产效率,节省企业的人力成本的效果。
从目前腾讯公司的 AI 自动化测试实践来看,多分辨率手机的相关测试如兼容性、性能、回归等节省的成本是最明显且有效的。现在,TuringLab 团队将 AI 测试平台免费开源开放,如果用户觉得已有的算法或者功能不能满足测试需求,可以自己开发一些更适合自己业务的功能与算法。《AI 自动化测试:技术原理、平台搭建与工程实践》一书也将更好的为你指引 AI+ 自动化测试的开发方向。现在点击购买,还可享受限时 8 折特惠!