真正的机器人测试
阿里QA导读:“业务先赢”、“极致体验”一直是质量人的主旋律。今天小编带来已入选阿里巴巴内部《阿里集团21财年最值得读的前沿技术领域热文合集》,也是本年度唯一一篇质量领域入选“人工智能”板块的文章,跟大家一起分享交流,看看如何用「真正的」机器人测试来保障“业务先赢”和“极致体验”。
传统的方式存在一些缺陷:
1)人工点击录屏耗费人力;
2)基于埋点的方式能够反映技术优化结果,但很难作为用户真实场景体验的精确数据;
3)基于系统驱动的方式对待测设备有侵入,多个系统多套脚本,覆盖场景比较有限(如非Android/iOS的IoT设备),难以跨平台支持;
综上来看,在“业务先赢”、“极致体验”的道路上,依然存在需要解决的质量保障难题:1)从泛终端多端交互全流程的视角来看,目前功能自动化测试依然面临每个端(iOS/Android/PC)各自维护一套脚本或是“伪”一套脚本,成本高;2)多APP矩阵间的交互场景以及同场景下的竞品分析日益增多,亟需支持多设备互动的自动化手段;3)互联网市场厮杀日益激烈,产品形态多样性放缓,拥有极致用户体验的互联网产品才能赢得更多的市场与消费者,期望寻求一种立足“用户真实感受”、对被测系统无侵入、计量精确的解决方案。4)在快速迭代/变更、复杂功能需求、AB测试的互联网产品背景下,完全依赖人工编写/维护自动化脚本已无法满足需求:系统变动自适应能力差;不能自行探索构建测试场景;传统的单点验证测试覆盖面小,很难在项目中快速应用和广泛推广。
为了应对以上难题,我们跳出了常规思维,尝试使用引入摄像头、机械臂、算法代替人眼、人手、人脑开展泛终端时代多端交互的UI自动化与用户体验评测,同时,我们提出了UEE自动化测试的概念。
基于UEE自动化的理念,我们尝试使用机器人的方式获取用户体验指标以及开展UI自动化测试,设计并研发了RXT。它基于IoT架构,从“用户真实感受”出发,零侵入被测系统获取用户体验指标(加载耗时、跳闪白分析),同时支持图/文驱动跨设备交互的UEE自动化用例批量执行。如下是演示效果:
下图是RXT的能力介绍:
1、深度用户体验指标
RXT立足“用户真实感受”获取用户体验指标,用机械臂手代替人手操作,用高速摄像头代替人眼记录操作过程,并具备体验指标算法(不需要目标对象的加载耗时分析、白屏分析)的大脑结构,RXT也可支持设备交互场景及竞品对比场景。
2、多端自动化
RXT在传统的单机操作之上引入一层新的“主控大脑”,接管、调度跨设备的时序操作,完美支持了多端多设备、多App间交互场景的自动化能力;RXT使用原生Python程式化(基于unittest)组织用例,用户可灵活控制/增加定制逻辑,并基于Python module理念抽离公共逻辑,降低用例维护成本,此外,用例可通过任务组织批量执行;RXT上层用例基于图文方式1套脚本驱动,底层执行引擎支持机械臂引擎和UIAutomator/WDA自动化引擎,其中机械臂方案做到与平台、设备无关,打通手机和PC(平板)间自动化的壁垒,满足各种场景的测试需要;“非预期”弹窗(突如其来的红包Poplayer、首次安装需要的各种权限、过渡动画广告等等)是自动化测试的灾难性问题,RXT-ESP提供了相关的识别和处理机制;RXT提供真机用例调试能力,用户无需准备任何本地环境即可运行、调试用例。
3、对象识别
多场景传感器融合下的对象识别,使用ROI截取、图像增强/去噪优化被测对象图片,坐标变换关联手机元素位置与机械臂操控位置,基于OCR获取目标图像文本信息,改进SURF/SIFT特征匹配算法提升图像识别准确率。
4、异常处理
RXT具备非预期弹窗的检测与处理能力,例如可以检测首页Poplayer红包弹窗、权限弹窗等,并且使用NLP对互动按钮(如"我知道了",”允许“,”不再提醒“)进行语义理解、分类,然后加以处理。
5、用例生成
RXT能从分散杂乱的用户埋点数据中,通过清洗、聚合、去重构建手淘消息用户行为访问路径及Top N热点路径,从而转变成具备业务语义的用例,后者正在进行中。
四.项目实战1、手淘消息场景用户体验升级项目
项目目标简介:手淘消息是世界上最大的商业沟通场景,该项目目标是大力提升手淘消息的加载体验、并进行跳、闪、白治理
策略&效果:下面是该项目优化前后,使用RXT观察到的用户使用前后版本打开消息业务的效果对比视频:
2、手淘消息多通道升级项目
项目目标简介:该项目涉及到底层链路新/老切换,与上层客户端业务进行对接,为降低质量风险,上线期间兼容了新/老链路方案,对应的测试回归场景涉及到手淘消费者(Android/iOS)、千牛商家(Android/iOS/PC)双端的新老链路交互,按笛卡尔乘积增长,共有48种,每种场景都基本对应同一套测试用例。
策略&效果:上层业务上存在大量重复Case回归,我们的策略是将简单、重复的用例交给RXT,人工投入更多的时间在复杂场景的用例设计和回归上。
3、大促态消费者-商家下单核心链路验收
项目目标简介:大促态下,消费者提交订单是核心链路。不仅需要保障手淘消费者(Android/iOS)提交订单成功,并且需要保障千牛商家侧(Android/iOS/PC)能够实时收到消费者提交的订单信息。
策略&效果:如下是实战效果(手淘-千牛移动端):
本文主要介绍了UEE自动化测试理念,并在此基础上设计并研发了RXT以及相关的一些项目实践结果。我们还将在“业务先赢”、“极致体验”的道路上继续前行。未来我们将继续优化RXT产品,继续提升产品稳定性、智能化能力。同时也希望我们的能力可以更多对行业开放,让智能化测试服务行业,实现真正的测试智能。欢迎大家提供合作机会!!
六.欢迎共同交流什么场景下建议开展UEE端到端用户体验测试?
建议UEE自动化作为UI自动化的辅助和补充。以下场景建议使用UEE自动化测试:1、单设备APP用户体验指标评测:单手机APP对精度有更高要求,更真实模拟用户体感的场景。2、多设备APP间的用户体验交互或对比评测:比如手淘消息和微信消息的用户体验指标对比、不同APP启动时长对比等等。3、多设备交互的端到端功能自动化测试:比如社交类场景的卖家B和买家C的消息互通测试、手淘买家和千牛PC卖家之间业务依赖的B到C全流程测试等。关注「阿里巴巴技术质量」阅读更多