GAD名人堂丨方李志对话 :于Python的UI自动化测试探索者
个人简介有个叫方李志的人, 他身为 UI 自动化测试资深专家, 担任腾讯游戏研发部品质管理深圳团队的负责人, 在长达十五年里, 始终专注于 UI 自动化测试的研究以及实施工作。他开发过 UI 自动化测试框架、分布式自动化测试平台等, 还曾荣获卓越研发质量铜奖、EVP 优秀团队奖、研发部业务突破金奖, 在自动化测试、终端专项测试领域有着颇高的造诣。在生活当中, 他是个标准的全能奶爸, 热衷于读书与运动, 一直对专业还有生活起到引领作用。专业到卓越GAD: 能否跟我们聊一聊您的工作经历? 是怎样进入这一领域的? 又是如何一步步成长为专家的?方李志, 在来腾讯之前, 一直处于电信行业领域之内, 承担着针对传统电信产品的测试工作。于2007年的时候, 加入到了腾讯公司, 曾在此负责过像PC QQ、手机QQ等拥有亿级用户数量的产品的测试事务, 当下重点所负责的是穿越火线、热血传奇、传奇世界、捕鱼来了等这类游戏以及Game游戏平台的测试工作。针对测试工具, 先有用开源工具的阶段, 再有使用商业工具的阶段, 最后到自研工具阶段, 进而逐步构建起一套契合腾讯产品要求的分布式自动化测试平台。其中, 自主研发的UI自动化测试框架支持的多种驱动方式, 包括基于控件的驱动方式, 此控件涵盖标准控件、自定义控件、各类浏览器控件、标准控件、ios标准控件、unity引擎控件、cocos引擎控件基于图像的驱动方式基于协议的驱动方式。跟着机器学习开始兴起, 当下的研究关键之处在于, 是基于图像识别以及行为学习的UI自动化, 于手游适配测试项目里造出一种效果, 即一个缺乏代码能力的平常员工, 在一天当中做完一款游戏于300台设备上的适配测试。2016年拍摄于大鹏GAD, 您于过往, 仅仅只用了还不到一个月的时长, 便开发出了自动化测试集成开发环境, 此为自动化能够快速发展铺就了极为强大的基础。那么, 您当时基于怎样的考虑才如此做呢?方李志, 当初为推进自动化测试, 于短短一个月内开发出此自动化测试集成开发环境。我们期望借助这个IDE, 让测试人员能够自动抓取UI控件, 能够管理对象库, 能够管理函数库, 能够录制脚本, 能够回放脚本, 能够调试脚本, 能够远程调试脚本, 能管理测试数据等。事实表明, 这个IDE显著减低了自动化的学习费用, 快速提高了测试人员代码水平, 确保了自动化的大规模执行。自动化测试变迁与发展近年来, 自动化测试技术有哪些变化, GAD? 从您所述的角度上来做判别, 究寻探索我们针对且能够予以进一步开展研究以及施行应用的是哪些, 到底?方李志提到, UI自动化测试, 从早期基于坐标位置的, 逐渐向如今各种基于控件的自动化测试框架发展, 基于控件的自动化测试框架, 都得在被测系统里注入测试桩, 这些测试桩, 要依据不同的OS、不同的引擎去定制。那么, 是否存在一种跨OS、跨引擎的UI自动化测试框架呢? 有一款MIT研发团队所开发的, 基于图像匹配的自动化测试框架。我们的团队, 在很早的时候, 就留意到了这个项目, 并且, 在这样的一种思路之下, 对算法进行了重新优化, 匹配算法从单纯的模版匹配, 转变为支持特征匹配, 把从 整图匹配, 调整为分割子图匹配, 从不支持缩放, 变为支持大比例等比和非等比缩放, 颜色范围从指定灰阶, 改至可变彩色 等等, 开发出了更为丰富的 API, 比如支持拖拽、滑动、轨迹等, 利用这个框架, 在手游适配测试当中, 取得了很不错的效果。研究重点, 在我们团队, 正逐步从依靠控件, 转移至归于基于图像的UI自动化测试框架。伴随图像识别技术进步发展, 眼下业界另外别的公司, 同样也在朝着基于图像的自动化测试框架研究转变转换方向。上述提及所说运用采用的技术技术手段是传统古老的图像匹配算法, 后续后面面临后续的研究重点将会是借助利用图像识别、用户行为学习, 在今后未来的UI自动化测试将会转变成成为更类似于相像接近真人的自动自主测试。2017年部门年会时与团队的合影节奏要快眼光要新保持开放的技术心态GAD开发测试工具您认为最重要的工作思路是什么?方李志说一方面得小步快跑、持续迭代在里领域不同于传统行业它是个飞速发展且始终变迁的行业, 我们于开发测试工具之际别想着一开始就把工具打造得毫无瑕疵涵盖所有功能, 而是要先疾速达成技术原型仅具核心功能赶紧投入项目里验证、运用, 于跟用户一同运用的进程中收集新需求, 接着把这些需求依优先级借由多个迭代渐渐达成。另外一方面, 千万别闭门造车, 在当下这个知识呈现出爆炸态势的时代, 各种各样新兴的技术接连不断地涌现出来。我们需要借助各种各样的渠道去知晓业界最新的动态情况, 广泛地采纳众多行家的长处并使其为自己所运用。就自动化测试平台建设而言, 存在哪些能够进一步予以完善之处, 又该如何达成技术的前瞻性这一目标?对于方李志而言当下的分布式自动化平台达成了测试资源管理, 达成了测试设备管理, 达成了任务管理, 达成了报告管理, 达成了权限管理等诸多通用功能, 这些功能大体上满足了一般的通用自动化测试的需求。其当前正在开展的是一些专项自动化测试功能的开发工作, 好像手游适配自动化, 好像自动深度遍历探索测试之类的。后续, 自动化测试平台会在多机协作这一方面, 以及虚拟化技术领域, 进一步予以完善, 当然, 这些全新功能, 也是要视具体的业务需求情况而定, 并非会盲目地一味追求技术先进性进而忽略实用性, 在针对技术展开研究的这条道路上, 要始终如一地做到保持开放心态, 时刻去了解业界最新的技术动态。GAD您负责过的众多项目中最有感触经历是什么?方李志, 在PC QQ自动化项目的开局阶段, 出现了一场争执。争执的内容是: 给予用户也就是测试人员的接口, 究竟是面向对象的, 还是面向过程的呢? 当时的情况是, 我们这批普通测试人员, 基本欠缺编程方面的经验。要是提供面向对象的接口, 那大家所需付出的学习成本, 将会是非常高的。鉴于此, 我们投入了大量精力, 开发出了一套自动化测试脚本集成开发环境, 也就是ATIDE。有着强大录制回放功能的 IDE, 测试人员仅通过动动鼠标便可录制好脚本, 所录制出的脚本是呈面向过程的一步步操作, 录制脚本身为比较简单, 然而呢那脚本的稳定性是极其差的, 维护起来十分困难。幸好, 在我们早期的一群进行测试开发的带动之下, 我们系统测试岗位的从事测试工作的人员也在奋力学习, 跟随大家代码能力的提高, 脚本风格渐渐由面向过程转变为面向对象, 十分显著地提升了脚本的稳定性, 大家撰写脚本也从依赖IDE转变至普通的文本编辑器, 目睹花费了诸多心血的ATIDE逐渐被大家忘却, 还是颇有感触的, 伴随大家整体技术的提升, 早期的许多辅助工具缓缓都消失在了历史舞台上。伴着众人整体技术能力的提高, 针对我们技术骨干的要求越发甚, 我们务必维持对新技术的好奇心理, 持续去学习, 从而令我们具备能力保持于UI自动化测试领域的持续领先地位攻坚克难缔造最牛自动化测试您好, 请问您能说说您曾经成功攻克的那些技术方面的难题吗, 请讲清楚 从中积累的最多的是哪些经验呢。方李志称, 在极为早期的PC QQ自动化测试里, 所运用的是商业工具QTP , 彼时乃是QTP占据主导的阶段, 众人对于QTP的工作原理全然不知, 对于它能够获取并操控他人软件上的控件深感神奇, 更别提要去开发一款UI自动化测试工具了。慢慢地, 我们于使用QTP之际觉察到, QTP客户端过于沉重, 所采用的是有碍于代码复用的那种, 脚本风格乃是面向过程的, 其不利于维护, 所以我们毅然决然地舍弃了QTP, 自零起步自主研发了一套理应算是腾讯极早期的UI自动化测试框架, 为后续PC QQ达成BAT最为厉害的自动化测试奠定了根基。伴随业务的拓展, 测试框架逐渐达成对浏览器、终端等诸多系统与平台的支持。该项目对我们团队有着很好的锻炼效果, 我们敢于去挑战权威, 面对艰难险阻也毫不畏惧, 经由这项锻炼达成的成果是全方位掌握了基于控件的UI自动化测试框架原理, 然后更进一步开发出了更适配大规模分布式执行要求的自动化测试框架, 并且当转入游戏行业之后, 我们还提出了第一套基于游戏引擎的UI自动化测试方案, 之后又开发出能对Unity和Cocos提供支持的UI自动化框架。有着多年自动化测试经历, 尤为关键的经验当属: 存在于所有自动化测试以内, UI自动化的施展有着极高难度级别, 这不唯拥有出色技术才行, 更为重要的是怎样于项目里面达成落地实效展开布署。自动化投入施行是个涵盖、涉及产品、开发、测试, 及其运维等多种团队彼此协同合作的进程, 在此进程里: 于产品需求谋划构想之初便可考量嵌入可行的测试评定方案举措, 当处于开发环节之际, 还得以技术手段构建诸多具备可测试验证相关接入的端口以及途径作为实现步骤去落实推动, 真正进入任务执行当中更是要将持续开展集成系统予以链接和融合匹配, 只要其中一个部分出现状况问题, 那么则无法顺利出色实施推进开展自动化工作。2017年拍摄于玉龙雪山让未来触手可及GAD对于自动化测试未来您的研究重点会放在哪里?方李志称, 未来工作重点在于基于图像识别以及行为学习的UI自动化测试, 其期望的完美UI自动化测试应是如同人一般的自动化测试, 它无需集成SDK, 无需注入代码, 不会对被测对象造成影响, 无需编写测试代码, 还能够应对各类实时性、随机性、策略性的测试场景。而为实现这样的UI自动化, 需要在图像识别、行为学习方面深入钻研并获得突破性进展。GAD: 借助图像识别以及行为学习来实现的UI自动化, 您有着怎样的规划? 未来还具备怎样更为巨大的价值?方李志称说, 当下, 我们所依据图像的那样一种 UI 自动化这类测试框架其内更多的情况是运用传统的图像之匹配的算法, 当下的研究其重点在于借助图像识别算法去替换图像匹配算法, 图像识别技术当下取得了一定的进展, 然而应用范围依旧被局限在一些相对比较窄的领域, 像: 人脸识别、车牌识别、身份证识别、银行卡识别等, 而在 UI 自动化测试里我们所要识别的是那种非特定的图像, 现有的识别算法全部都不适合。所以, 我们当今的关键要点在于, 对非特定图像的识别技术展开研究, 而游戏行为学习则会放置在更靠后的位置。要是在非特定图像识别技术领域获取到技术突破, 那么后续的测试脚本, 便无须针对每一款游戏逐个进行截图匹配, 仅需在某一款游戏里抓图, 就能在不同的游戏当中实现识别并加以运用了。另外, 能够借助这些技术, 自动辨认出当前屏幕里可进行操作的UI对象, 将其与深度遍历相结合, 或者连上行为树, 又或者运用更高级的行为学习, 以此达成自动操作游戏。对新人的建议GAD初入职场的新人您有怎样的成长建议?李方志称: 身为职场新人, 首要之事乃是不断持续地学习, 奋力努力地学习其第一份工作是从事手机软件开发, 那可是处于黑白屏的时代, 常常在办公室熬至通宵达旦, 去看文档, 去写代码, 去修改Bug。等到结婚并有小孩之后, 在这方面的精力将会受到极大的限制, 故而要趁着年轻多多学习。另外一方面, 要维持健康的体魄, 这个身体可是革命的本钱呢。身为未来家庭的顶梁柱, 绝对得坚持进行锻炼。一副好的身形, 也会给人带来健康、阳光的感受, 这也是个人良好意志力的一种体现。是技术专家也是“人生赢家”同事眼中的方李志良师益友、健体达人、超级奶爸那时, 他记得今年的某一天, 是从广州招聘归来的, 归来之后, 他马上亲自去到外包同事的座位之处去了解使用的细节情况, 当他了解得知需要费很大的气力, 一个个地去提报漏洞之后呢, 他马上就着手进行解决, 而且很快就达成了能够批量提报漏洞的功能。平常的日子里, 他一直都是如此这般, 每当大家遭遇到问题的时候, 他都会飞速地帮大家去把那些问题处理好, 他处事是极为负责, 且用心至极的。在今年3月的时候, 他主动给我做职业发展沟通, 同时也给整个小组做了职业发展沟通, 那时他详细分析了当前部门的新发展方向和任务, 还详细分析了中心的新发展方向和项目, 之后他提出了我今后应该学习的能力, 还提出了我今后需要强化的能力, 并为我实现任务找对应的支撑资源, 比如新招聘一个人力, 调整任务的分配情况, 以及提供相应的技术资料等各种他能想到的支持他做得非常尽心。哇塞, 身为已然被超多好多人敬仰崇拜的技术专家, 您所崇拜敬仰的好似偶像般的超级厉害的大神究竟会是哪一位?方李志称, 他对搞技术非常厉害的人有着一种自然而然产生的崇拜之情, 凡是技术方面很牛的人都是他所敬仰的偶像, 倘若非要说出一个的话, 那便是伊隆•马斯克, 其人进行了各种各样的跨界行为, 开展了各种各样对看似不可能之事的挑战, 一个人获取成功并非易事, 还能够处在诸多前沿领域。我们清楚, 您不只是测试方面的专家, 还是健身领域的专家, 除开健身之外, 在生活里您还有怎样的爱好呢, 是这个问法吗。方李志讲, 先说说健身吧。运动重在持续 , 实际上运动期间都是咬着牙坚持 , 持续挑战自行的极限。运动之后总会感受到神清气爽 , 全身轻松 充满能量 , 我特别享受这般的感觉 , 期望自身在这个易胖起来的年纪能够维持住身材除此以外, 我相对而言颇为喜好阅读, 在如今这个社会当中, 微信以及今日头条占据了许多人绝大部分的休闲时光, 然而经由这些应用程序上所获取到的知识均较为零散碎片化, 在不少情形之下依旧是要有静下心来将一些书籍完完整整去阅读一番, 进行系统的学习。恰好两个女儿正处于需要培育阅读兴致的这个阶段, 身为父母的也要起到模范带头作用, 跟孩子们一块儿愉悦地阅读, 助力她们自小就养成热爱读书的良好习惯。阳台上有很多健身器材