编辑推荐: |
本文主要介绍了阿里巴巴基于
AI+IoT 的机器人测试方案。希望对你的学习有帮助。
本文来自于微信公众号AI前线,由火龙果软件Linda编辑、推荐。
|
|
泛终端自动化测试及真实用户体验评测的背景介绍
在互联网公司,通常存在多个软件交互频繁情况,比如消费者在 C 端手淘、天猫下单,商家会在千牛软件收到订单提醒。多软件、跨终端的交互测试场景越来越多。从终端来说,随着智能移动终端普及从智能手机拓展到了
IoT,终端系统也拓展到了 Android、iOS、鸿蒙、Win Touch、RTOS 等等。随着线上线下不断融合,硬件和云端、AI
形成了软硬件一体化的链路,测试差异越来越大。
基于传统单操作系统内的 UI 自动化测试,已经无法满足多软件、多终端交互测试,无法实现端到端覆盖业务的全链路测试。与此同时,用户体验竞争白热化,深度用户体验需求也日益增加,因此我们急需一种可以模拟用户真实操作的方式。
我们缺乏多端 / 多系统交互全流程的自动化测试手段,体验指标需分段获取且精度不够,在不同操作系统上测试需要维护多个脚本。因此,我们尝试了一种新的测试思路:UEE
测试(User E2E Experience Testing)——以“真实”模拟用户为核心目的,与被测软件解耦,实现了端到端的测试。
第一个“E”代表了 Experience,即具备深度用户体验评测的能力,即要求:
更高精度:端侧的性能和体验优化精确到 ms 级别;
多设备间交互测量:除了 App 之间,实现和 PC 乃⾄IoT 之间交互的场景;
无侵入真实模拟:降低软件模拟点击和真实⽤户操作的差异。
第二个“E”代表了端到端——“End1 to End2”,即实现多设备端到端功能自化测试的支持:
多机交互自动化:快速支持多手机 App 间、手机与 PC/IoT 之间交互的操作;
外部视角的对象识别:摆脱软件层不同操作系统 API 操作的局限,以及软件层 API 对 部分场景下元素无法识别的问题;
⼀套跨终端设备的通⽤脚本:降低多套⾃动化脚本的维护成本。
UEE 测试需要具备用户交互体验评测能力和多设备端到端功能自动化能力。一方面用户交互体验评测能力,即通过
IoT(如摄像头、机械⼿、传感器)等外部设备采集,并通过 AI 算法将真实⽤户感受数字化,来获取最接近真实⽤户体感的性能及⽤户体验指标;另一方面多设备端到端功能自动化能力,即通过机械⼿对多设备跨终端进行⾃动化测试,通过
AI 算法实现 IoT 设备的调度控制、对象识别、测试步骤执⾏、异常处理等。
基于 AI+IoT 的机器人测试方案
UEE 测试模式
首先,可以使用高清、高速摄像头模拟人的眼睛,引入摄像头的对象识别机制,代替原有存在系统内截图、录屏和
XPath,做到无侵入被测系统;其次,用机械手模拟人的手指,包括一些伸缩、滑动动作,这里封装一套机械手的操控
API,并且它要实现底层软硬件执引擎透明,既可用机械,手也可用传统软件层执行;最后,通过算法代替人脑智能分析,实现视频
/ 图像分析、异常弹窗处理、白屏检测等。
RXT 机器⼈技术⽅案
Robot-XT 机器人的技术方案的难点,有以下三方面:
实现多传感器的融合,通过摄像头、机械手、传感器等等组合实现与被测系统的解耦;
通过多种算法组合⽀撑体验评测和跨端⾃动化;
开发⼀套跨平台系统的脚本 IDE
IoT 控制方面的核心是控制摄像头和机械手。我们采取了云边结合的架构,在边缘端部署了控制摄像头和机械手的
RXT 客户端。
摄像头的操控
在摄像头角度不同、环境光源不稳定等情况下,收集到的视频、图像数据,计算结果差异很大,因此,我们采用了双摄像头模式。顶部摄像头负责图片拍摄,进行图像实时分析;侧面底部摄像头负责拍摄视频,并传送到云端做离线用户体验评测。
另外,图片和视频质量存在的品质差距,这增加了算法处理的难度。我们通过图像增强,直方图处理等,使得图像更易被算法识别;此外,我们需要从摄像头拍摄的画面分割出所需的手机屏幕。机械臂在执行时常常和手机屏幕相连,因此边缘检测时也会合为一体,难以拆分。手机屏幕、械臂及周边底色存在亮度差异,我们借此实现了
ROI 获取,过程如下图所示:
机械手精准操作
端到端自动化,必须保证机械手的精准操作。这里的核心问题是,如何将手机屏幕、摄像头拍摄的图像以及机械手三个坐标,映射到同一个世界坐标中?最终我们采取了多级空间坐标映射,通过透视变换,实现算法识别后,机械臂可以精准地点击到指定位置。
在图像算法方面,我们主要实现了三种:图文并茂的对象识别、非预期弹窗的识别处理和体验评测⾃动化。
图文并茂的对象识别
识别对象时,我们改进了 SURF 算法,叠加了 OCR 技术,增强了小图标识别能力。原生的 SURF
算法精度不够,对于特征相似的图像经常匹配失败。我们在特征向量上增加了斜率判断,匹配的成功率大幅度上升(如图中情况
3)。如特殊情况屏幕中存在多个相同小图标,则需要手动调参。
非预期弹窗的识别处理
弹窗一般有两类,系统级弹窗和业务级弹窗。系统级弹窗,即首次安装软件时的授权许可等;业务级弹窗,即业务促销的红包、活动等的弹窗,如盖楼、抢红包等。
图一、图二中系统级的弹窗可通过传统方式监听,图三、图四业务级弹窗受业务影响,变化复杂,传统⽅法⽆法监听。因此,我们将传统的基于系统事件监听的⽅式整体变为了基于纯视觉算法的判断。
图一、图二中系统级的弹窗,可通过 OCR 识别先将文字提取出来,用 Bert 进行语义理解,识别出“好”“确定”等词后,进行点击;对于图三、图四中的业务级弹窗,我们首先通过
Yolov3 进行模型训练,将弹窗从背景中分割出来,分割后,可识别每个弹窗的圆×进行。该组合算法可处理手淘
95% 以上的弹窗。
体验评测自动化
在体验评测自动化中,用户真实感受到的加载时长,等于从机械手点击到页面变化最后一帧的时间差,所以这里的关键在于,如何去判断页面加载的结束帧。我们采取视频降采样,根据灰度、二值化、去噪声计算图像的差值分数,即变化的程度,随后用实验测出合适的阀值,之后在整个视频区间,倒序查找阀值之上,最后一个差值,即为最后一帧,流程如下图所示:
一套跨平台脚本 IDE
我们跨平台脚本 IDE 的特点是,一个脚本同时可以操作多个设备,可在 IDE 上调试和运行,即脚本需在
Web IDE 上运行后,方可提交机器人执行。在调试和运行时,多个模拟⼿机可以随时切换,可切换手机去看执行步骤,通过
d1、d2 等来操作所有设备中的被测对象。此外,我们还支持截图编写脚本。
机器人测试实战案例
我们在实际项目中使用 UEE 完成了众多的测试任务,例如以下这三方面。
UEE 测试项目自动化实战
一年半前,淘系消息系统要对百亿级买卖双方聊天系统,进行整体架构和业务模型升级。当时,旺信业务已运行多年,我们需要让用户无感,做到平滑迁移,而重构后⾸个客户端版本即为双⼗⼀版本,缺乏灰度时间,所以此时测试至关重要。
上图中,“巴拿马”是我们内部指新的消息系统的代号。为了保证项目平滑稳定,我们在客户端同时准备了新老两个版本,一旦故障可快速切回老通道。该方案极大地增加了测试工作量:BC
消息系统交互本就非常复杂,包括安卓、iOS、PC 等多端,再加上新、老通道,组合共计 36 种消息互通场景,工作量为原有的
36 倍。当时,我们只凑成了 10 个测试同学,要在 30 天测完 700 多人的测试任务,测试难度非常大。UEE
测试系统在此项⽬中起了关键作用,⽀撑了 Android、iOS、PC 共 6 轮⾃动化回归,每轮执⾏了⽤例
3000+。
UEE 测试项目体验实战
在手淘和千⽜的体验优化中,UEE 测试支撑了⼿淘消息 / 千⽜商家 Android/iOS 核⼼场景加载时⻓测试,获得了跳闪⽩检测体验数据
2000+ 次,⽀撑了淘宝买菜 Android/iOS 核⼼场景 A/B⽅案和竞品分析,获得了体验数据
500+ 条。
这里需要强调的是,某些 loT 设备厂家的定制系统存在未对外开放的 API,此时在软件层就无法实现竞品分析了,需借用
UEE 测试系统。此外 ,在双十一大促备战时,我们会设置专项,包括端到端的核心流程自动化、手淘 /
千牛加载体验验收、线上舆情自动化复现等。
线下端到端测试
下图是 UEE 测试系统线下端到端测试案例,图中分别为 UEE 和联通合作、天猫无人超市、阿里未来酒店的场景。
阿里未来酒店共有 300 多间房,人脸识别不能只在软件层做回归,但硬件测试,如果找真实的人成本非常高。我们通过机器人测试对未来酒店人脸购买,做了自动化验收。
室内定位拥有众多 AP 节点,需要对整个空间搭建指纹库信息库。通过人工的方式进行收集,数据工作量大并且精度只能到米,借助
RXT 机器⼈可实现自动化地采集和定位且精度可控制到厘米。上图(右)为用激光雷达扫描的酒店⼤堂 SLAM
地图,最终实现了根据地图自动化采集和巡检。
最后,线下门店无人超市的重力货架,也需要进行硬件测试,我们通过机器人对 300 多个重力货架,实现了压测和功能上巡检。
机器人智能化测试
下一步思考和探索
UEE 测试改变了端到端测试,从软件层到硬件层,从单端到多端覆盖了全端;扩展了自动化测试范围,⼀次性完成功能⾃动化和⽤户体验评测;降低了测试脚本维护成本,⼀套
DSL 脚本同时操作 1 个或多个设备(iOS/Android/PC Touch/RTOS/ 鸿蒙
等等)。
UEE 测试适合以下场景:
单设备 / 多设备 App⽤户体验指标⾼精度评测;
AB/ 新⽼版本 / 竞品体验对⽐评测;
多设备交互的端到端功能⾃动化测试;
一次性完成单端功能 +⽤户体验评测⾃动化测试;
线下场景软硬件端到端测试。
UEE 测试在阿里集团内,⽀持了阿⾥集团 10+ App 的测试,覆盖了阿⾥集团⼤促体验验收、商家业务、消息、社区团购、直播、逛逛、IoT、线下智能等业务形态。
阿里在 2018 年内部开始使用机械手和摄像头做用户体验评测,2019 年时软件绿色联盟也推出了移动智能终端的行业标准,认定需要用摄像头和机械手来做评测。我们
2020 年和绿盟合作,成为了软件绿色联盟的官方评测平台之一。现在还在内测阶段,未来将面向全行业开放,希望我们的开源能减轻大家的负担,用无脚本的方式实现自动化测试。
我们已经开始研发的 RXT2.0 引入了强化学习、好奇心机制、规则自学习等能力,将聚焦在智能探索和智能验证的两个能力上,去实现智能探索测试,只能判断测试过程中发现的预期内和预期外的问题。 |