产业频道

GAD名人堂丨方李志对话 :于Python的UI自动化测试探索者

时间:17-06-24 作者:砍间 | 浏览:0次|

个人简介

方李志,UI自动化测试资深专家,腾讯游戏研发部品质管理深圳团队负责人,十五年来一直从事UI自动化测试研究与实施。开发过UI自动化测试框架、分布式自动化测试平台等,曾获得卓越研发质量铜奖、EVP优秀团队奖、研发部业务突破金奖,在自动化测试、终端专项测试领域有很高的造诣。生活中是标准的全能奶爸,热爱读书和运动,始终引领着专业和生活。

专业到卓越

GAD:可以跟我们谈谈您的工作经历吗?怎么进入到这个领域,并一步步成为专家的?

方李志:来腾讯之前一直在电信行业,负责传统电信产品测试。07年加入腾讯,负责过PC QQ、手机QQ等亿级用户产品的测试,目前重点负责穿越火线、热血传奇、传奇世界、捕鱼来了等游戏以及QQ Game游戏平台的测试。

测试工具方面从使用开源、商业工具到自研工具,逐步建立起一套符合腾讯产品要求的分布式自动化测试平台。自主研发的UI自动化测试框架支持基于控件(windows标准控件、自定义控件、各类浏览器控件、android标准控件、ios标准控件、unity引擎控件、cocos引擎控件)、基于图像、基于协议的多种驱动方式。

随着机器学习的兴起,目前的研究重点是基于图像识别和行为学习的UI自动化,在手游适配测试项目中取得一个没有代码能力的普通员工一天完成一款游戏在300台设备上的适配测试的效果。

方李志

2016年拍摄于大鹏

GAD:您曾经只用不到一个月的时间,开发了自动化测试集成开发环境,为自动化快速发展奠定了强大的基础,您当时是出于怎样的考虑?

方李志:当初为了推广自动化测试,在短短一个月时间内开发了这个自动化测试集成开发环境。我们想通过这个IDE,测试人员可以自动抓取UI控件、管理对象库、管理函数库、录制脚本、回放脚本、调试脚本、远程调试脚本、管理测试数据等。实践证明,这个IDE大大降低了自动化的学习成本,快速提升了测试人员代码能力,保障了自动化的大规模实施。

自动化测试

自动化测试变迁与发展

GAD:自动化测试技术近年来有哪些变化?从您的角度来看,有哪些是我们可以进一步研究和应用的?

方李志:UI自动化测试从早期的基于坐标位置的MonkeyTest慢慢发展到现在的各种基于控件的自动化测试框架,基于控件的自动化测试框架都需要在被测系统中注入测试桩,这些测试桩需要根据不同OS、不同引擎进行定制。那么有没有一种跨OS、跨引擎的UI自动化测试框架呢?Sikuli是MIT研发团队开发的一款基于图像匹配的自动化测试框架。

我们团队很早就注意到这个项目,并在这个思路下重新优化算法(匹配算法从单纯的模版匹配到支持特征匹配、从整图匹配到分割子图匹配、从不支持缩放到支持大比例等比和非等比缩放、颜色范围从指定灰阶到可变彩色等等),开发出更丰富API(比如拖拽、滑动、轨迹等),利用这个框架在手游适配测试中取得很不错的效果。

我们团队的研究重点慢慢从基于控件转向到基于图像的UI自动化测试框架。随着图像识别技术的发展,目前业界其他公司也在转向基于图像的自动化测试框架研究。前面说到的Sikuli使用的技术是传统的图像匹配算法,后面的研究重点将是利用图像识别、用户行为学习,未来的UI自动化测试将是更接近真人的自动测试。

2017年部门年会时与团队的合影

2017年部门年会时与团队的合影

节奏要快,眼光要新,保持开放的技术心态

GAD:开发测试工具,您认为最重要的工作思路是什么?

方李志:一方面小步快跑、不断迭代,互联网行业不像传统行业,是一个快速发展,不断变化的行业。我们在开发测试工具的时候不要想一开始就把工具做得十全十美,所有功能都有。而是要先快速实现技术原型,只有核心功能,尽快投入项目中验证、使用,在跟用户一起使用的过程中收集新需求,再把这些需求按优先级通过多个迭代逐步实现。

另一方面不要闭门造车,在这个知识爆炸的时代,各种新技术层出不穷。我们要通过各种渠道了解业界最新动态,博采众家之长为我所用。

GAD:在自动化测试平台建设上,有哪些可以进一步完善?怎样做到技术的前瞻性?

方李志:目前的分布式自动化平台已经实现了测试资源管理、测试设备管理、任务管理、报告管理、权限管理等一些通用功能,这些功能基本满足一般的通用自动化测试需求。目前在做的是一些专项自动化测试功能开发,比如手游适配自动化、自动深度遍历探索测试等。

自动化测试平台后续会在虚拟化技术、多机协作方面进一步完善,当然这些新功能也是要看具体的业务需求,不会一味的追求技术的先进性而忽略实用性。在技术研究的道路上始终保持开放的心态,时刻了解业界最新技术动态。

技术预览

技术预览2

GAD:您负责过的众多项目中,最有感触经历是什么?

方李志:在PC QQ自动化项目早期发生过这样一个争论:提供给用户(测试人员)的接口是面向对象的还是面向过程的?当时我们普通测试人员基本没有编程经验,如果提供面向对象的接口,大家的学习成本是很高的,为此我们花了很大精力开发了一套自动化测试脚本集成开发环境ATIDE。IDE提供了强大的录制回放功能,测试人员只需要动动鼠标就能录制好脚本,录制出来的脚本是面向过程的一步一步操作,录制脚本比较简单,但是脚本的稳定性很差,很难维护。

好在随着我们早期的一批测试开发的带动下,我们系统测试岗的测试人员也在努力学习,随着大家代码能力的提升,脚本风格逐步从面向过程转向面向对象,极大的提升了脚本的稳定性。大家写脚本也从依赖IDE转到普通的文本编辑器,看到花了很大心血的ATIDE逐渐被大家遗忘还是很有感触的。随着大家整体技术的提升,早期的很多辅助工具慢慢就退出了历史舞台。

随着大家整体技术能力的提升,对我们技术骨干的要求也越来越高,我们必须保持对新技术的好奇心,不断学习,使得我们能够有能力保持在UI自动化测试领域的持续领先!

攻克困难

攻坚克难,缔造最牛自动化测试

GAD:请您谈谈您攻克过的技术难题?从中积累的最多的经验是什么?

方李志:在很早期的PC QQ自动化测试中使用的是商业工具QTP,那时候也是QTP一统天下的时候,大家对QTP的工作原理都不了解,对它能够获取并操作别人软件上的控件感到很神奇。更不要说要开发一UI自动化测试工具了。我们在使用QTP的过程中慢慢发现QTP客户端太重,使用的是不便于代码复用的VBScript,脚本的风格是面向过程,不便于维护,于是我们果断放弃QTP,从零开始自研了一套应该算是腾讯最早的UI自动化测试框架,为后面PC QQ能做到BAT最牛自动化测试打下了基础。随着业务的发展,测试框架逐步实现支持浏览器、终端等多个系统和平台。这个项目很好的锻炼了我们的团队,敢于挑战权威,不畏艰难,全面掌握了基于控件的UI自动化测试框架原理,并开发出更适合大规模分布式执行的自动化测试框架。转入游戏行业后,我们又提出了第一套基于游戏引擎的UI自动化测试方案,并开发出支持Unity和Cocos的UI自动化框架。

做自动化测试这么多年,最重要的经验应该是:UI自动化是所有自动化测试中难度最大,不仅仅要有很好的技术,更重要的是如何在项目中落地实施。自动化实施是一个需要产品、开发、测试、运维等多个团队相互协作的一个过程:在产品需求设计阶段我们要加入可测试性需求,在开发阶段我们需要开发实现很多可测试性接口,执行阶段还需要接入持续集成系统,任何一个环节出问题都没办法做好自动化实施。

玉龙雪山

2017年拍摄于玉龙雪山

让未来触手可及

GAD:对于自动化测试,未来您的研究重点会放在哪里?

方李志:未来的工作重点会放在基于图像识别和行为学习的UI自动化测试,期望中的完美的UI自动化测试是可以像人一样的自动化测试,不需要集成SDK,不需要注入代码,不影响被测对象,不需要写测试代码,能够应对各种实时性、随机性、策略性的测试场景。这样的UI自动化需要在图像识别、行为学习上深入研究并取得突破性进展。

GAD:基于图像识别和行为学习的UI自动化,您有怎样的规划?未来还有怎样更大的价值?

方李志:目前我们基于图像的UI自动化测试框架更多的是使用传统的图像匹配的算法,目前的研究重点是利用图像识别算法替代图像匹配算法。图像识别技术目前取得了一定进展,但是应用范围还是局限在一些比较窄的领域,比如:人脸识别、车牌识别、身份证识别、银行卡识别等。而在UI自动化测试中我们要识别的是非特定图像,现有的识别算法都不适合。

所以我们现在的重点是非特定图像的识别技术研究,至于游戏行为学习会放在更后面。如果在非特定图像识别技术上取得技术突破,后续的测试脚本就不需要一款游戏一款游戏分别截图匹配了,只需要在一款游戏中截图就可以在不同游戏中识别使用了。

另外可以利用这些技术自动识别出当前屏幕中可操作的UI对象结合深度遍历、行为树或者更高级的行为学习实现自动操作游戏。

对新人的建议

GAD:初入职场的新人,您有怎样的成长建议?

方李志:作为职场新人,首先要持续学习,努力学习!我的第一份工作是做手机软件开发,那还是黑白屏的时代,经常在办公室熬通宵,看文档、写代码、改Bug。等结婚有小孩后,这方面的精力会受到很大限制,所以要趁年轻多学习。

另一方面要保持健康的身体,所谓身体是革命的本钱。作为未来家庭的顶梁柱,一定要坚持锻炼。一副好的身材也会给人健康、阳光的感觉,也是个人良好意志力的体现。

是技术专家,也是“人生赢家”

同事眼中的方李志:良师益友、健体达人、超级奶爸

“记得他今年某天从广州招聘回来,立即亲自到外包同事座位那里了解使用细节,当他了解到需要费力一个个提bug后,他立刻解决并很快实现了批量提bug功能。平日里他都是这样,每当大家遇到的问题,都会快速帮大家解决,非常负责和用心。今年3月份主动给我以及整个小组做职业发展沟通时,详细分析了当前部门和中心的新发展方向和任务,提出我今后应学习和强化的能力,并为我实现任务找相应的支撑资源,例如新招一个人力,调整任务分配,以及提供相应的技术资料等等各种他能想到的支持,非常尽心。”

GAD:作为已经被很多人崇拜的技术专家,您崇拜的偶像大神是谁?

方李志:我对技术大牛有一种天然的崇拜。所有的技术牛人都是我的偶像。如果非要说一个,那就是伊隆•马斯克。各种跨界!各种挑战不可能!一个人成功不容易,能够在这么多前沿!

伊隆•马斯克

GAD:我们知道,您不光是测试专家,也是健身专家,除了健身以外,生活中您还有什么爱好?

方李志:先来谈谈健身,运动贵在坚持,其实运动过程中都是咬牙坚持,不断挑战自己的极限。运动后总会感觉神清气爽、一身轻松、充满能力,我非常享受这样的感觉,希望自己在这个容易发福的年龄能够保持住身材!

另外我比较喜欢阅读,当今社会,微信、今日头条占据了很多人的大部分休闲时间,但是从这些App上获取的知识都比较碎片化,很多时候还是需要静下心来完整的读些书,系统的学习。正好两个女儿也在需要培养阅读兴趣的阶段,作为父母也要以身作则,跟孩子们一起快乐阅读,帮助她们从小养成爱读书的好习惯。

健身锻炼

阳台上的健身器材

阳台上有很多健身器材

看精彩攻略秘籍,玩海量精品手游
  • 关注4399手游微信
  • 收藏本文