Learning-Replay Based Automated Robotic Testing for Mobile App论文笔记
论文:Learning-Replay Based Automated Robotic Testing for Mobile App
0 Abstract
- “录制-回放”技术现状
- 依赖测试设备或测试应用的内部信息
- 本文提出的“学习-回放”技术特色
- 完全黑箱
- 结合了机器人学和视觉技术
- 实现了跨设备和跨平台
- “学习-回放”技术步骤
- 使用视觉技术提取测试者测试过程中GUI和手势动作的关键信息
- 分析GUI组件和测试行为,形成测试序列
- 通过视觉判断引导机械臂完成测试序列的回放
1 Introduction
- “录制-回放”技术举例
- Reran、Mosaic、Appetizer、Monkeyrunner、Espresso、XCTest:只能用于特定平台
- Appium、Calabash:跨平台使用,但平台之间的差异仍然使其受限
- SARA、Amalfitano:将事件与GUI布局结合起来提高回放精确度
- Sikuli、Eyeautomate、Airtest、Ranorex、LIRAT:利用获取到的GUI图像进行回放
- 当前“录制-回放”技术局限性
- 必须通过布局文件或事件流等内部信息获取GUI信息、测试行为信息
- 不同的屏幕尺寸、分辨率、操作系统类型以及操作系统版本都有可能导致录制回放失败
- 只使用模拟信号无法覆盖与现实世界交互的场景
- 当前机械臂自动化测试平台局限性
- 机械臂只被用作执行者,没有形成完整工作流
- “学习-回放”技术执行流程
- 测试者的测试行为被录制为视频
- 视觉技术用于从视频中获取测试信息,形成测试序列
2 Approach Description
2.1 Video Recording
- 手需要从外部进入取景框内,完成测试操作后再完全离开取景框
2.2 Video Analysis
- 引入OpenPose实时检测人的二维手势
- 将指尖轨迹持续出现的帧定义为手势动作帧,将没有检测到手的帧定义为GUI帧,将手势动作帧之前的GUI帧定义为起始GUI帧,将手势动作帧之后的GUI帧定义为响应GUI帧
2.3 GUI Identification and Judgement
- 为了可视化识别GUI元素,训练了YOLO检测模型
- 将GUI抽象成控制元素构成的框架
- 每个控制元素包含种类信息和边界信息
- 构建带有自编码架构的深度学习模型,用于提取GUI框架的特征向量
- 利用相对熵度量向量间差异,从而确定GUI之间的相似度
- 将可检测的GUI元素扩大到10种
- TextView、EditText、Button、Switch、RadioButton、CheckBox、ImageView、ImageButton、SeekBar、KeyBoard
2.4 Test Gesture Identification
- 六种常用手势
- Tap:点击操作
- Long press:长按操作
- Double tap:双击操作
- Flick:轻按操作
- Drag:拖拽操作
- Swipe:滑动操作
- 两种交互对象
- elements
- surfaces
- 构成手势操作的四种微操作
- touch:所有手势操作的起始微操作
- move:交互区域发生改变
- hold:朝向交互对象的速度先快后慢最后保持平稳
- leave:所有手势操作的结束微操作
- 手势识别流程
- 计算手指处于连续静止状态时的指尖位置检测误差作为判断手指是否与屏幕接触的阈值
- 评估tap、long press和double tap手势的中间微动作的平均帧数作为none、hold、touch的测量阈值,并将中间微动作帧内指尖位置的平均偏差作为移动的测量阈值
2.5 Test Action Identification
- 生成的测试序列被定义为[Serial number, GUI skeleton, Micromotion decomposition, interactive object]
- Serial number:序列号,如果一个app有多个视频,将被组织成树状结构
- GUI skeleton:如2.3中所述构成
- Micromotion decomposition:如2.4中所述构成
- interactive object:如2.4和2.5中结果构成
2.6 Test Replay
- AUT初始GUI随机放置,机器人根据测试序列匹配初始GUI,寻找可能的测试行为
- 机器人定位需要交互的对象,驱动机械臂完成测试行为
- 完成测试行为后,机器人获取响应GUI
- 确定界面是否更改,即验证测试行为是否成功执行
- 确定当前GUI是否匹配下一测试序列的GUI,即验证测试行为是否满足预期
3 Experiment
3.1 Experiment Setup
- 挑选六台移动设备,屏幕尺寸、分辨率、操作系统存在差异,并下载IOS和Android应用商店中的软件
- 为每一款应用编写9种典型测试场景
- 选择、搜索、登录、转发、评论、打开、添加、设置、缩小、浏览、隐藏菜单、切换标签、移动
- 回放过程设置三组实验
- 原始设备回放,带有录制测试的设备回放
- 相同平台跨设备回放,相同平台设备回放
- 跨设备跨平台回放,不同平台设备回放
3.2 Results and Discussion
- 略
4 Conclusion
- 局限性
- 测试场景受限,一些重力操作需要对机械臂测试提出更高需求,目前无法满足
- 游戏应用GUI特征与其他类型应用差异较大,目前无法有效测试
- 目前仅支持单指操作