Graphical User Interface (GUI) provides a visual bridge between a software application and end users, through which they can interact with each other. With the upgrading of mobile devices and the development of aesthetics, the visual effects of the GUI are more and more attracting, and users pay more attention to the accessibility and usability of applications. However, such GUI complexity posts a great challenge to the GUI implementation. According to our pilot study of crowdtesting bug reports, display issues such as text overlap, component occlusion, missing image always occur during GUI rendering on different devices due to the software or hardware compatibility. They negatively influence the app usability, resulting in poor user experience. To detect these issues, we propose a fully automated approach, Nighthawk, based on deep learning for modelling visual information of the GUI screenshot. Nighthawk can detect GUIs with display issues and also locate the detailed region of the issue in the given GUI for guiding developers to fix the bug. At the same time, training the model needs a large amount of labeled buggy screenshots, which requires considerable manual effort to prepare them. We therefore propose a heuristic-based training data auto-generation method to automatically generate the labeled training data. The evaluation demonstrates that our Nighthawk can achieve average 0.84 precision and 0.84 recall in detecting UI display issues, average 0.59 AP and 0.60 AR in localizing these issues. We also evaluate Nighthawk with popular Android apps on Google Play and F-Droid, and successfully uncover 151 previously-undetected UI display issues with 75 of them being confirmed or fixed so far.
翻译:图形用户界面( GUI) 提供了一个软件应用程序和终端用户之间的直观桥梁, 他们可以通过它彼此互动。 随着移动设备的升级和美学的开发, GUI 的视觉效果越来越吸引人, 用户更加关注应用程序的可访问性和可用性。 然而, 图形用户界面的复杂性给 GUI 的实施带来了巨大的挑战。 根据我们对人群测试错误报告进行的试点研究, 显示文本重叠、 部件隔离、 由于软件或硬件兼容性, GUI 在不同设备上显示图像时总是会出现缺失的问题。 它们对应用的可用性产生了负面影响, 导致用户经验差。 为了检测这些问题, 我们提议采用完全自动化的方法, 夜鹰, 以深层次学习模拟图形界面屏幕的视觉信息为基础, 并且更加关注应用程序的可访问性。 夜鹰可以检测图形界面的界面, 并将问题的详细区域定位到指导开发者修补错误。 同时, 模型需要大量贴标签的百病的屏幕截图, 需要大量的手工工作来准备这些图。 因此, 我们提议一种基于 heurist- entical 培训的Gen- train dain destal- destalalal- delial dal dal deal deal deal deal deal dre dre dreal dreald dreal deal deald dreal deal deal deal deal dald dal deald dald dal dal dal deal dal dald dald.