安卓应用测试指南 pdf_智能高效、跨设备支持,安卓应用自动测试工具SARA现已开源...

本文主要是介绍安卓应用测试指南 pdf_智能高效、跨设备支持,安卓应用自动测试工具SARA现已开源...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

a6af78b60482e85c78b7741271d63dc2.gif

编者按:在安卓软件测试中,现有的录制与回放技术在录制信息完整度、适配不同机型等很多方面还不能很好地满足工程实践的实际需求。为此,微软亚洲研究院最近提出了一种新的录制与回放技术 SARA,在单设备、跨设备中的录制回放成功率均达到86%,代码已在 GitHub 开源。

SARA 是一个面向移动应用开发者的智能化测试工具,旨在提高软件开发人员进行测试和维护的效率,适应移动开发快速迭代的特点,达到解放开发者、提高生产力的目的。

工具代码已开源

https://github.com/microsoft/SARA

应用背景

在软件测试中,录制与回放技术(Record and Replay, R&R)并不是一个新生事物,在传统桌面程序和 web 程序测试中已经得到了广泛的使用。具体来说,R&R 工具可录制应用程序界面中的用户操作和事件,并通过对输入事件进行模拟来模拟用户操作,从而可以将录制好的用户对程序界面的操作序列不断重复模拟,达到自动测试应用程序的目的。

录制与回放是自动化 UI 测试的重要技术,可以帮助应用开发团队大大提高测试效率。在移动互联网时代,移动应用无处不在,基于录制与回放的测试技术在移动应用的测试中也至关重要。但是由于安卓设备和 OS 版本的高度碎片化,市场上有大量的安卓设备厂家,每个厂家的不同产品都有不同的硬件配置(例如不同的屏幕尺寸)和定制了的安卓 OS,这给移动应用程序对不同安卓设备的适配提出了前所未有的挑战。开发一种能够适应不同配置安卓设备的 R&R 技术成为一个非常迫切的实际需求

学术界和工业界已经对 R&R 技术进行了诸多的研究和开发,目前也已经有多种移动应用 R&R 技术,但是现有的 R&R 技术在适配不同配置的机型上做得不尽如人意。在工程实践中,工程师们希望 R&R 技术不仅仅能够录制鼠标或者触摸点的屏幕坐标信息,也能记录用户操作是在哪些组件上发生的,以及操作事件之间的时间间隔,并且希望录制的事件信息应该对移动应用的内部状态不敏感,从而便于模拟时不断重复。同时,工程师们不希望 R&R 工具受到定制操作系统、有无 Root 权限、有无软件源代码等使用条件限制。根据来自 UIUC 和微信团队对现有工具的研究[3]来看,目前市场上的 R&R 技术在很多方面无法满足工程实践的实际需求。

SARA 为了克服目前 R&R 工具的限制,满足工程实践中的真实需求,微软亚洲研究院数据、知识、智能组提出了一种新的 R&R 技术。 a560b797436c47f9d0274a59bb0b44f1.png 图1: SARA 流程图 针对以上挑战,我们设计了相应的解决方案,并实现了高效、智能的 R&R 工具——SARA。关键技术包括: 1. 利用动态插桩记录丰富的输入来源。插桩是一种通过代码插入或替换来对程序进行监控的技术,动态插桩在程序执行过程中进行插入,不影响动态执行,也无需获取软件源代码,符合实际应用限制。 2. 创新的Self-replay 技术,实现准确高效的回放。由于录制组件信息时间开销大,SARA 在录制环节只记录坐标信息,然后自动地在同一设备上进行基于坐标的回放,同时补充记录组件信息,即 Self-replay 环节。这一技术降低了使用者的时间开销,同时完成了组件信息记录。 3. 创新的Adaptive replay 技术,实现跨设备回放。设备屏幕参数的不同往往会导致界面布局的差异,因此,SARA 在跨设备回放时,进行坐标变换和启发式地组件查找。 性能评估

我们从 Google Play 的24个应用类型中,选取了下载量最高的50个应用程序,来评估 SARA 在实际使用中的性能,并与当前最新的其它 R&R 技术做了比较。我们选取的这些应用具有很强的代表性,每一个应用的下载量均超过百万次。在每个应用程序中选择5个常用的应用场景作为录制和回放的目标。系统的性能评价分为2个方面:在相同设备上的录制回放、在不同设备上的录制回放的成功率。实验选择的设备如表1所示。

3fd6a3d224bb12ff8f13d0ae5e0f4ae9.png

表1:实验设备

1) 同一设备成功率

在录制的265个使用场景中,SARA 能够成功回放228个场景,成功率达到86%,相比于目前其他的工具有较大提升(例如appetizer: 60.7%, RERAN: 10.9%)。

2) 跨设备回放成功率

在随机选择的42个场景进行跨设备的回放评测,共两轮。结果如表2所示。总体成功率也达到86%,远远超过其他工具。

81ecead53ab3e8cf76e461ae1d05d461.png

表2:不同设备录制与回放实验结果(共35个场景)

具体的技术细节可以参见我们的论文[1]。这项技术的代码已经开源[2],欢迎大家试用我们的测试工具,并对技术提出宝贵意见和建议。

参考文献

[1] 2019, J. Guo, S. Li, J.-G. Lou, Z. Yang, T. Liu. Sara: self-replay augmented record and replay for Android in industrial cases. ISSTA 2019: 90-100.

https://www.microsoft.com/en-us/research/publication/sara-self-replay-augmented-record-and-replay-for-android-in-industrial-cases/

[2] 2019. SARA. https://github.com/microsoft/SARA

[3] 2017. W. Lam, Z. Wu, D. Li, W. Wang, H. Zheng, H. Luo, P. Yan, Y. Deng, and T. Xie. Record and Replay for Android: Are We There Yet in Industrial Cases?. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. ACM, New York, NY, USA, 854–859.

你也许还想看

8646b91fedd90d6c3705d92d53925f99.png

b354595cecf2cc138d1d519ef8da2c56.png

113e70f0bb3d569e82d3d4306816839e.png 11982ad7e7b04bfed38d8d6045a53f50.png 80f56cbff21e5a1ec26de7d886016657.gif

这篇关于安卓应用测试指南 pdf_智能高效、跨设备支持,安卓应用自动测试工具SARA现已开源...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220527

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系