Owl Eyes: Spotting UI Display Issues via Visual Understanding

2023-11-07

2020年ASE的一篇文章

​ASE,全称 IEEE/ACM International Conference on Automated Software Engineering,是软件工程领域的顶级会议。

标题:通过视觉理解发现UI显示问题

研究问题:基于深度学习方法,进行UI图像bug的自动检测工作。UI图像bug主要有组件遮挡、文本重叠、图像缺失、空值、屏幕模糊5种。

研究思路:提出OwlEye,基于卷积神经网络(CNN)来识别有UI显示问题的截图,并利用梯度加权类激活映射( Gradient-weighted Class Activation Mapping,Grad-CAM)来定位截图中有UI显示问题的区域,以指导开发人员修复该bug。

Grad-CAM可以对任意结构的CNN进行可视化,不需要修改网络结构或者重新训练。 Grad-CAM使用流入CNN的最后一个卷积层的梯度信息为每个神经元分配重要值,以进行特定的关注决策。尽管技术相当笼统,因为它可以用来解释深层网络任何层中的激活

主要创新:

1.提出了能够自动检测并定位bug的模型OwlEye;

2.人工构建了一个带有UI显示问题的GUI屏幕截图的大规模带标签的数据集,并开发了一种基于启发式的数据增强方法。

数据增强:开发了一种基于启发式的数据增强方法,用于从无bug的UI图像生成带有显示问题的UI截图。数据增加是基于Rico数据集,其中包含了超过66K的唯一的屏幕截图,从93k的Android应用程序,以及他们的附带JSON文件。对于输入的截图及其相关的JSON文件,算法首先定位所有的TextView和ImageView,然后根据扩展的类别随机选择一个TextView或ImageView。根据TextView/ImageView的坐标和大小,然后算法进行复制,并按照特定的规则调整其位置或大小,以生成具有相应UI显示问题的截图。具体来说,从Rico数据集中随机选择的10,000个应用程序中随机下载一个截图,每个截图将用于一次数据增强。为了使训练数据跨类别平衡,使用了10%的截图来增强组件遮挡类别,而使用30%的截图来增强其他三个类别的数据。对于增加的10,000个带有UI显示问题的屏幕截图,首先使用ORB特征提取算法提取它们的特征,随机排序,计算一个特定的截图与之前每个截图之间的余弦相似度,当相似度值高于0.8时,将其删除,最终剩余增强后的7800张图片。

优势:它可以应用于包括Android、iOS在内的任何平台,并且它以屏幕截图作为输入,这在现实世界的实践中很容易获得。

研究方法:

   数据集:1.实验数据集是从最大的众测平台之一收集的,在这个平台上,众测工作者被要求在完成测试任务后提交测试报告。

562个Android手机,包含新闻、娱乐、媒体等方面的测试,共有10330张不同的屏幕截图。

2.数据增强后的数据集,7800个有UI显示问题的屏幕截图被保留下来并添加到实验数据集中。

   实验方法:

   评估指标:精度,召回率,F1   

   实验结果:

   消融实验:

 

总结:与最佳基线相比,OwlEye的召回率和准确率提高了17%和50%以上。作为同类的第一个工作,还对真实世界的移动应用中的UI显示问题进行了系统的研究,并为后续研究提供了一个大规模的应用UI显示问题数据集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Owl Eyes: Spotting UI Display Issues via Visual Understanding 的相关文章

随机推荐