软件测试-移动应用
基于图像理解的移动应用自动化测试
移动应用测试 VS 传统软件测试
- 网络多样化
- 平台多样化
- 设备多样化
移动应用GUI测试面临的巨大挑战:环境碎片化、快速演化的开发平台
自动化测试框架
- Selenium: 一个开源的自动化测试工具,专门用于自动化网页浏览器的操作
- Appium: 一个扩展了 Selenium 的 WebDriver 协议来支持移动应用自动化的工具,允许使用 Selenium 的客户端库来编写适用于 iOS 和 Android 应用的测试脚本
自动化测试框架存在的问题
- 测试脚本的执行依赖于操作系统接口,如 Android 的 ADB
- 定位控件所需信息依赖于移动应用的 UI 层,如 Android 的 XML 布局文件
- 人工编写脚本的时间开销大
- 脚本随应用迭代的可维护性不强
- 减少依赖,降低成本,增加可维护性
基于图像的简单控件定位
- Sikuli:来自 MIT 的 Sikuli 通过图像匹配算法来完成对 GUI 元素 的识别和定位
- Airtest:来自网易的 Airtest 连接到某个窗口或移动设备上,然后进行 GUI 测试脚本的编写
Sikuli (类 Sikuli 工具)存在的问题
- 测试脚本的执行仍依赖于操作系统接口,如 Android 的 ADB
- 使用像素级方式定位控件的方式难以应对复杂场景,如不同分辨率的设备
- 仍面临人工编写和维护脚本的成本
- 追求对图像更深入的理解
深度图像理解
- 控件匹配
- 原分辨率 - 模板匹配: 根据相似度进行筛选, 选取距离最近的作为结果
- 跨分辨率 - 特征点匹配:分别通过阈值、面积、斜率进行筛选
- 控件提取
- 文字识别
- 界面理解
- 控件理解
- 控件类型判断
- 控件文本提取
- 控件意图识别
- 控件关系提取
基于深度图像理解的录制回放工具
- 碎片化问题,加大测试难度
- 动态内容,相似控件难识别
- 基于图像理解技术,录制和回放跨平台的测试脚本
基于深度图像理解的自动化探索工具
- AI 测试探索策略
- 基于强化学习和图像理解的跨平台测试技术
深度图像理解测试工具的局限性
- 无法感知异形屏幕对 UI 控件的遮挡
- 难以模拟真实场景下人的交互操作
- 仍依赖操作系统接口执行测试操作
- 侵入式 ==> 非侵入式
非侵入的 GUI 测试:机械臂 + AI
- 外置摄像头捕获屏幕,对接实现对屏幕的视觉理解
- AI 算法选择目标控件并生成测试操作
- 调度机械臂执行各种类型的测试操作
- 模拟人为交互,摆脱底层依赖
移动应用众包测试
- 移动应用碎片化问题:品牌、型号、系统、传感器……
- 移动应用众包测试:利用群体力量完成移动应用测试任务
众包测试流程
- 申请上传:用户将自己的应用程序上传到众测平台, 并指定相应的测试任务和酬劳信息。
- 任务选择和环境设置:众测人员自由选择他们想要完成的任务。选择后测试人员从平台上下载应用程序进行测试。
- 提交报告:众测人员根据选择的待测应用,对测试到的缺陷提交缺陷报告。
- 生成最终测试报告:平台收集补充信息,生成最终的缺陷报告,包括:一般信息、设备信息、操作路径等。
- 报告验证:客户将验证所有最终的缺陷报告,并决定如何酬劳每个提交报告的众包测试人员。
众包测试面临的挑战
- 任务分配
- 任务奖励
- 众测过程引导
- 测试报告质量控制
协作式众包测试
完成测试任务过程中进行信息共享与任务分配,用户在本系统中既承担测试任务也承担审核任务,充分利用用户协作,完成目标任务。
- 信息共享:用户在提交报告时进行实时相似报告推荐,避免重复报告提交。
- 任务分配: 审核页面推荐待审核的报告列表,测试页面推荐待测页面。
- 协作方式:点赞点踩操作:利用用户的交叉审核,验证报告有效性。
- 一键Fork:Fork他人结果后进行修改,利用多人协作提升报告质量。
众测报告聚合
- Aggregator:对所有的测试报告做聚类,将相同的或相似的测试报告聚为同类。
- Summarizer:对每一类测试报告做整合,将其中的相关信息以可视化的方式最大化的呈现给开发者。
传统聚类方法的缺陷与不足:
- 未利用报告语义信息
- 忽略图像文本关联
众测报告半监督聚类:特征提取 -> 特征距离计算 -> 聚类分析
众测报告排序
- 使用文本 + 图片结合分析的方法
- 通过自然语言处理算法计算文本的相似度
- 通过SPM算法(Spatial Pyramid Matching)识别缺陷截图相似度
- 通过使用一种多目标的优化算法结合文本与截图相似度完成针对测试报告的相似度比较
深度众测报告排序
特征提取 -> 特征聚合 -> 相似度计算 -> 报告排序
- 图片特征提取:CV技术提取控件 - 问题控件、上下文控件
- 文本特征提取:NLP技术处理文本 - 缺陷描述、复现步骤
- 将所有特征聚合为两种特征类型:
- Bug Feature(BFT):与缺陷直接相关,包括问题控件和缺陷描述
- Context Feature(CFT):为缺陷构建上下文,包括上下文控件和复现步骤
众测报告一致性检测
存在问题:
- 众测工人能力与专业性参差不齐,众测报告质量参差不齐
- 众测报告质量的底线:截图与文本的一致性
解决方案:
二阶段方法 - 先分类后检测
- 一阶段:根据错误特征将基于文本描述的报告分类为不同类别
- 二阶段:深入分析应用截图的GUI图像特征,然后应用不同的策略来处理不同类型的Bug,以检测众包测试报告的一致性
- Title: 软件测试-移动应用
- Author: Kaleido
- Created at : 2024-02-01 00:00:00
- Updated at : 2024-05-30 21:45:01
- Link: https://redefine.ohevan.com/2024/02/01/2023-fall-review-软件测试-02/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments