淘系产业级移动应用智能测试最新方案MonkeyBot公开!测试效能提升3倍以上

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

MonkeyBot测试执行是依赖RXT平台完成的,RXT本身具有兼容不同系统的优势,因此也达到了摆脱系统依赖的目的。对于状态抽象层主要对获取的UI界面的图像特征、文本特征及图像结构等进行分析,多模态多粒度的状态抽象为我们压缩了UI信息,也为决策智能技术的入场打好了地基。探索策略部分则主要包含奖励设计,动作选择和参数更新,结合历史状态访问情况和设计的奖励策略进行行为决策。

e2ecdb1e74bf3c509a8e50303aa64510.png

具体执行流程如下:

  1. 执行进入app初始状态。

  2. 对当前状态UI界面进行抽象,通过元素识别、文字提取和图像结构解析后的信息进行场景特性分析,然后再进行分层状态抽象。

  3. 对于抽象的状态信息与历史访问状态信息进行比对,结合好奇心策略、置信上界探索策略以及深度广度平衡等策略分析后,得到一个奖励值分布,并完成参数更新。通过奖励值分布情况选取下一步的行为。

  4. 通过RXT完成执行操作,并获取新的状态。

  5. 以此循环执行,直到指定探索轮数或者指定探索时间结束。

UI 元素识别技术挑战和解决方案

近十年来计算机视觉在自然图片处理中展现出了傲人的效果,无论是基于统计学习的类人视觉模型还是基于深度学习和数据驱动的模型化神经网络,计算机视觉在诸如图片分类,语义分割,目标检测等任务上都有接近人类的表现。尽管计算机视觉在自然图片处理任务上如火如荼的发展,在UI这一特定场景上的研究却相对缺乏。我们通过在手淘上的大规模实证研究表明,直接将现有的计算机视觉技术不加改动地应用到UI分析任务上去会导致较差的结果,想要把整个UI界面中的所有元素信息比较精准的分割识别出来是十分困难的:

  1. 通过传统图像分割方式很难设定一个较好的阈值,容易把多个元素合并成一个,或者把一个整体元素拆分成多个小的元素。

  2. 想完全依赖深度学习的方法来训练识别元素也是行不通的,对于手淘这种大型流行应用,UI界面大部分的元素是基于业务设计的,样式多变,不统一,且更新迭代快,因此几乎不可能完成对所有元素数据集的收集,难以在实际使用中落地的。

为此,我们发展了特别针对UI图像的综合视觉分析技术。

首先,我们的技术是低数据依赖的:针对没有测试历史数据的移动应用,我们的技术基于动态图像滤波,使用多种滤波算法和自底向上的基于视觉统计的梯度分割与区域聚合,无需训练数据即可获得较高的分析精度;同时我们的UI分析技术可以自动在分析过程中收集待测应用数据,借助测试历史反馈数据,驱动基于深度学习和机器学习预训练模型的参数微调,进一步提高UI分析的效果。

其次,我们吸收了autoML的思想,通过自动化参数组合和检验选择出最适合于指定待测应用和待测机型适的参数组合。

此外,我们的技术对于UI能够进行基于图像语义和业务语义的分割,对于UI的不同组分进行异质视觉分析,进一步提升了UI分析的稳定性和健壮性。

c9715bc0690e5fa47976c9bc0a93931f.png

上图展示了我们的UI 分析技术的效果。我们在手淘核心场景上的控件定位,控件分类和语义分割准确度超过了95%,在UI的层次提取和业务逻辑规约上也实现了极高的精度。

探索过程遇到的问题和解决方案

在遍历和探索测试过程中常常会遇到这样三个问题:

  1. 类似或者相同的业务场景重复测试,比如在手淘中下单的场景,虽然是不同商品,但是功能都是一致的,因此没必要对每个商品详情页重复测试。

906e5b29c506dfaaa55db27efab6a3a2.png

  1. 在场景交错的情况下,可能会出现循环的情况,即A场景可以点击元素进入B场景,然后B场景又可以点击某元素回到A场景。比如下图所示与商家聊天的场景和店铺首页场景间可以来回切换,这时可能会导致机器一直陷入循环做无效探索。

52fbb08daafee9e519f2a5f96cd5b9a8.png

  1. 在一些场景中可有效点击的元素非常少,很多元素是点击无反应的,此时如果一直探索的话会影响探索效率,如下图聊天页面,每条聊天信息都被识别成一个独立的元素,但是均无法点击。

7a3011f6638ec26976d760efd5c75751.png

我们的探索过程是基于强化学习完成的,针对以上问题做了很多探索策略的优化设计。对于重复探索和循环探索都会跟历史状态有非常大的关系,因此我们引入好奇心探索机制,增加对历史状态记忆的能力,促使代理人选择更容易触发新状态的动作。并通过深度广度平衡能力,决定是否继续在当前页面探索,还是回到之前的页面寻找其他操作路径。

针对无效点击的问题首先在做状态抽象的时候我们会分析元素分布和文本分布情况,对界面信息抽象压缩,然后我们会根据状态抽象信息对每一个状态进行一个价值上的估计,即这个状态是否重要,我们是否需要继续探索,从而提升我们的探索有效性。

效果展示

在手淘app测试中,设计后的探索策略对比Monkey测试随机策略activity覆盖率提升120%,有效功能路径覆盖提升2倍以上,大大提升了覆盖路径的有效性。

880cd0c6f69c123b80b3af843b8bc77f.png

以下为Monkey和MonkeyBot运行过程的对比效果:

总结和展望

对于拥有海量用户或者错综复杂业务场景的应用,都会面临功能测试回归成本高且容易漏测的问题,如何在测试中全面覆盖用户操作路径成为质量保障的一大难题。

本文介绍了一套由淘系技术质量团队和北京大学谢涛教授团队一起合作研究的基于融合AI技术打造的智能探索测试方案,并展开分析了方案解决的一些技术问题和业务问题。

为打造一套通用的类人测试的工具,采用RXT机器人测试工具完成执行操作,然后打造一套纯视觉分析的解决方案。对于UI能够进行基于图像语义和业务语义的分割,在手淘核心场景上的控件定位,控件分类和语义分割准确度超过了95%。

通过图像特征,文本信息和UI的结构等信息来对UI状态进行建模,同时容许状态抽象的多粒度表达。多模态信息的使用充分的提高了状态抽象的准确性和可靠性,而多粒度的状态抽象则使得业务语义和多种测试需求的同步表达成为了可能,增加了智能探索测试的灵活性。

引入强化学习探索策略,结合探索历史和智能探索策略,解决了相同业务场景重复探索、探索陷入循环和界面无效点击等问题,对比随机策略activity覆盖率提升120%,有效功能路径覆盖提升2倍以上,实现更有效地路径覆盖。

未来在探索策略上还有更高的提升空间,我们希望通过状态抽象和探索策略能力的提升,机器可以实现在给定app内更高效探索,同时结合智能验证能力主动发现过程中遇到的bug,完全具备类人测试能力,实现全流程无人参与的自动化测试。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

5%以上软件测试知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
腾讯内部效能提升之路:devops测试中台的实践 腾讯一直致力于提升内部效能,其中之一的实践就是引入devops测试中台。DevOps是一种将开发(Development)和运维(Operations)融合在一起的运作模式,通过自动化、系统化和持续集成等方法,提高软件开发的效率和质量。 腾讯在引入devops测试中台后,取得了显著的成效。首先,在开发环节,腾讯建立了统一的代码版本库和协作平台,使各团队能够更好地协同工作和交流。通过将不同的测试环节集成在一起,避免了测试和开发之间的交接问题,提高了开发的整体效率。 其次,腾讯在引入devops测试中台后,实现了自动化测试。传统的测试方法通常需要手动执行测试,效率低下且容易出错。而devops测试中台采用自动化测试方法,能够极大地提高测试的效率和准确性。测试人员只需要编写测试用例,选择测试环境,系统会自动执行测试并生成测试报告,大大减少了测试的时间和工作量。 此外,腾讯还引入了持续集成和持续交付的概念,将开发、测试和运维各个环节融为一体。通过实时监测系统的状态和质量,及时发现和修复问题,保持系统的可用性和稳定性。通过自动化部署和持续交付,能够快速将新功能和修复推送到生产环境,缩短了产品的上线时间。 总的来说,腾讯在devops测试中台的实践中取得了较好的成效。通过建立统一的协作平台和自动化测试,提高了开发效率和产品质量。通过持续集成和持续交付,加快了产品的上线速度。这些都有助于提升腾讯的内部效能,使得团队能够更好地协同工作,推动公司的持续发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值