Graphically-rich applications such as games are ubiquitous with attractive visual effects of Graphical User Interface (GUI) that offers a bridge between software applications and end-users. However, various types of graphical glitches may arise from such GUI complexity and have become one of the main component of software compatibility issues. Our study on bug reports from game development teams in NetEase Inc. indicates that graphical glitches frequently occur during the GUI rendering and severely degrade the quality of graphically-rich applications such as video games. Existing automated testing techniques for such applications focus mainly on generating various GUI test sequences and check whether the test sequences can cause crashes. These techniques require constant human attention to captures non-crashing bugs such as bugs causing graphical glitches. In this paper, we present the first step in automating the test oracle for detecting non-crashing bugs in graphically-rich applications. Specifically, we propose \texttt{GLIB} based on a code-based data augmentation technique to detect game GUI glitches. We perform an evaluation of \texttt{GLIB} on 20 real-world game apps (with bug reports available) and the result shows that \texttt{GLIB} can achieve 100\% precision and 99.5\% recall in detecting non-crashing bugs such as game GUI glitches. Practical application of \texttt{GLIB} on another 14 real-world games (without bug reports) further demonstrates that \texttt{GLIB} can effectively uncover GUI glitches, with 48 of 53 bugs reported by \texttt{GLIB} having been confirmed and fixed so far.
翻译:图形化的应用程序, 如游戏等, 图形用户界面 { 具有吸引人的视觉效果 { 图形化用户界面 (GUI) 的现有自动测试技术, 重点是生成各种图形化测试序列, 检查测试序列是否会导致崩溃。 然而, 各种类型的图形化小点可能来自图形界面的复杂性, 并已成为软件兼容问题的主要组成部分之一。 我们在 NetEase Inc. 的游戏开发团队的错误报告研究表明, 图形化的图形化小点经常在图形化游戏中出现, 并严重降低像视频游戏这样的图形化应用程序的质量。 用于这些应用程序的现有自动测试技术主要侧重于生成各种图形化用户界面测试序列, 并检查测试序列是否会导致崩溃。 然而, 这些技术需要不断的人类关注来捕捉非崩溃的错误, 例如导致图形化小点的错误。 在本文中, 我们根据基于代码化的数据增强技术, 演示游戏用户界面的系统测试序列技术, 我们用直径{ GLIB} 实时评估, 显示真实的 GLL} 运行结果。