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

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

作者|居反

111.gif

产业级移动应用测试面临操作系统碎片化人工测试负担过重、功能复杂场景繁多、自动化测试探索效率低效的问题。淘系技术质量团队与北京大学讲席教授谢涛老师团队合作,在业界提出了首个基于计算机视觉(和多模态强化学习)的自动化视觉测试框架Monkeybot,解决了遍历测试效率低下,自动测试工具难以跨平台使用的问题,为移动应用测试提供了通用高效的解决方案。并于21年9月底在QECon全球软件质量效能大会上对行业公开了这一技术方案。随后,在10月份云栖大会上谢涛教授对MonkeyBot落地效果进行了分享展示。

1.jpg

Monkeybot在阿里巴巴集团包括淘宝、千牛等在内的十余个大型产业移动应用上落地部署,服务于他们的日常测试和质量保障,特别是双十一等重要场景的质量保障和测试工作中,并通过软件绿色联盟向全行业提供用户体验测试,智能探索测试,智能验证等服务。已在Android、iOS、鸿蒙等操作系统落地实践,推动测试效能提升3倍以上。

接下来一起看下我们是如何来实现的吧。

研究背景

手淘拥有十亿级用户,产品快速迭代和功能复杂多样化给质量保障工作带来巨大挑战,面临功能测试回归成本高、易漏测等问题,迫切需要一个高效智能的自动化测试方案来保障软件质量。
 解决复杂交叉场景易漏测问题

随着淘宝业务的扩大,当前手淘不仅具有购物下单的功能,还有很多其他的业务功能,比如有消息聊天、直播、逛逛、互动游戏等。不同的业务都是划分在不同的团队负责,因此各业务的上线和回归都是相对比较独立的。但是,从用户角度很难区分每个业务的边界,用户使用产品过程一定是一个多场景组合的情况,比如用户买东西的时候想跟商家沟通一下尺寸号码的问题,用户大概率会从商品详情页找到客服,然后进到聊天页面发消息;结果商家没有及时回复,下次可能会从消息tab找到会话去聊天,然后逛着逛着商家回复了又可以从新消息弹框点进去聊,聊完了可能还要返回继续逛,逛着逛着又想起一些事情要跟商家交代,于是从快捷入口进到消息再找到会话聊天。一个简单且常用的聊天功能,用户可能会有很多路径去完成,过程中也会涉及到很多消息之外的业务,对于测试同学很难全面覆盖组合场景验证,也就容易出现交叉场景漏测导致线上问题发生。

2.jpg

 解决快速迭代回归成本高问题

手淘客户端每次迭代发布各个业务都需要进行回归验证,每个月手淘至少一次正式版本发布,大概每周都有一次灰度发布,对于每一次发布都要进行至少两轮回归,每次回归至少覆盖安卓和iOS两个系统,保守计算每个月至少要做16次功能回归,每次回归都需要大量的人力成本。

为了降低回归成本,UI自动化测试广受大家喜爱,Selenium、appium、Airtest、RXT等工具陆续出现,通过维护自动化脚本来实现测试自动化,也取得了不错效果。但是随着产品快速迭代,维护自动化测试脚本仍然需要很大的人力成本和时间成本。

为了更好地为测试提效,让机器尽可能以接近用户的视角来自动执行测试流程,尽可能多地覆盖不同业务场景,受遍历测试和Monkey测试的一些启发,我们尝试让机器在给定app内自主探索,结合智能的探索策略,具备类人测试能力,实现全流程无人参与的自动化测试。
思路分析

为了让机器具备类人测试能力,我们制定了以下几个目标:首先,在执行层面我们希望一套测试工具支持多系统多平台验证;其次,测试工具需要摆脱对测试脚本依赖,具有主动理解业务的能力;最后,在理解业务的基础之上能智能做出决策执行操作,有效覆盖更多用户操作路径。

显然,这些目标是很难实现的。但是,我们仍然要在这布满荆棘的道路上摸索前行!

通过长时间的技术调研和尝试,我们找到了如下图所示的一套解决方案。第一,基于纯视觉的UI分析,不再依赖系统信息完成分析,更好的适配不同系统;第二,通过图像特征、文本信息和UI的结构等信息来对UI状态进行建模获取图文多模态信息,然后对于图片进行不同层次多粒度状态抽象,更好地理解图像业务含义;第三,引入强化学习探索策略,结合探索历史和智能探索策略,实现更有效地路径覆盖。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
15天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
17 1
|
1月前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
52 4
|
1月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
33 3
|
3月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
135 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
3月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
254 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
3月前
|
测试技术 持续交付 开发者
Xamarin 高效移动应用测试最佳实践大揭秘,从框架选择到持续集成,让你的应用质量无敌!
【8月更文挑战第31天】竞争激烈的移动应用市场,Xamarin 作为一款优秀的跨平台开发工具,提供了包括单元测试、集成测试及 UI 测试在内的全面测试方案。借助 Xamarin.UITest 框架,开发者能便捷地用 C# 编写测试案例,如登录功能测试;通过 Xamarin 模拟框架,则可在无需真实设备的情况下模拟各种环境测试应用表现;Xamarin.TestCloud 则支持在真实设备上执行自动化测试,确保应用兼容性。结合持续集成与部署策略,进一步提升测试效率与应用质量。掌握 Xamarin 的测试最佳实践,对确保应用稳定性和优化用户体验至关重要。
63 0
|
3月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
66 0
|
6天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
34 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
57 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)