An empirical study of GUI widget detection for industrial mobile games

With the widespread adoption of smartphones in our daily life, mobile games experienced increasing demand over the past years. Meanwhile, the quality of mobile games has been continuously drawing more and more attention, which can greatly affect the player experience. For better quality assurance, general-purpose testing has been extensively studied for mobile apps. However, due to the unique characteristic of mobile games, existing mobile testing techniques may not be directly suitable and applicable. To better understand the challenges in mobile game testing, in this paper, we first initiate an early step to conduct an empirical study towards understanding the challenges and pain points of mobile game testing process at our industrial partner NetEase Games. Specifically, we first conduct a survey from the mobile test development team at NetEase Games via both scrum interviews and questionnaires. We found that accurate and effective GUI widget detection for mobile games could be the pillar to boost the automation of mobile game testing and other downstream analysis tasks in practice. We then continue to perform comparative studies to investigate the effectiveness of state-of-the-art general-purpose mobile app GUI widget detection methods in the context of mobile games. To this end, we also develop a technique to automatically collect GUI widgets region information of industrial mobile games, which is equipped with a heuristic-based data cleaning method for quality refinement of the labeling results. Our evaluation shows that: (1) Existing GUI widget detection methods for general-purpose mobile apps cannot perform well on industrial mobile games. (2) Mobile game exhibits obvious difference from other general-purpose mobile apps in the perspective GUI widgets. Our further in-depth analysis reveals high diversity and density characteristics of mobile game GUI widgets could be the major reasons that post the challenges for existing methods, which calls for new research methods and better industry practices. To enable further research along this line, we construct the very first GUI widget detection benchmark, specially designed for mobile games, incorporating both our collected dataset and the state-of-the-art widget detection methods for mobile apps, which could also be the basis for further study of many downstream quality assurance tasks (e.g., testing and analysis) for mobile games.

[1]  Ali Farhadi,et al.  YOLO9000: Better, Faster, Stronger , 2016, 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[2]  Trevor Darrell,et al.  Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation , 2013, 2014 IEEE Conference on Computer Vision and Pattern Recognition.

[3]  Yue Jia,et al.  Sapienz: multi-objective automated testing for Android applications , 2016, ISSTA.

[4]  Cor-Paul Bezemer,et al.  Studying the urgent updates of popular games on the Steam platform , 2017, Empirical Software Engineering.

[5]  Jun Hu,et al.  Owl Eyes: Spotting UI Display Issues via Visual Understanding , 2020, 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Xingyi Zhou,et al.  Objects as Points , 2019, ArXiv.

[7]  Guy J. Brown,et al.  Improving random GUI testing with image-based widget detection , 2019, ISSTA.

[8]  Myra B. Cohen,et al.  Automated testing of GUI applications: Models, tools, and controlling flakiness , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[9]  Lei Ma,et al.  Regression Testing of Massively Multiplayer Online Role-Playing Games , 2020, 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[10]  Andrew Zisserman,et al.  Very Deep Convolutional Networks for Large-Scale Image Recognition , 2014, ICLR.

[11]  Zhenchang Xing,et al.  ActionNet: Vision-Based Workflow Action Recognition From Programming Screencasts , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[12]  Iulian Neamtiu,et al.  Automating GUI testing for Android applications , 2011, AST '11.

[13]  Zhenchang Xing,et al.  From Lost to Found , 2020, Proc. ACM Hum. Comput. Interact..

[14]  Alessandro Orso,et al.  GUIFetch: Supporting App Design and Development through GUI Search , 2018, 2018 IEEE/ACM 5th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[15]  Alireza Sadeghi,et al.  Reducing Combinatorics in GUI Testing of Android Applications , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[16]  Wei Liu,et al.  SSD: Single Shot MultiBox Detector , 2015, ECCV.

[17]  Zhenchang Xing,et al.  From Lost to Found: Discover Missing UI Design Semantics through Recovering Missing Tags , 2020, ArXiv.

[18]  Mario Linares Vásquez,et al.  Automated GUI Testing of Android Apps: From Research to Practice , 2016, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[19]  Ross B. Girshick,et al.  Fast R-CNN , 2015, 1504.08083.

[20]  Jian Sun,et al.  Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition , 2014, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[21]  Zhenchang Xing,et al.  Gallery D.C.: Design Search and Knowledge Discovery through Auto-created GUI Component Gallery , 2019, Proc. ACM Hum. Comput. Interact..

[22]  Ali Farhadi,et al.  You Only Look Once: Unified, Real-Time Object Detection , 2015, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[23]  Vinicius H. S. Durelli,et al.  Automated Tests for Mobile Games: An Experience Report , 2018, 2018 17th Brazilian Symposium on Computer Games and Digital Entertainment (SBGames).

[24]  Jeffrey Nichols,et al.  Rico: A Mobile App Dataset for Building Data-Driven Design Applications , 2017, UIST.

[25]  Qi Xin,et al.  Seeking the user interface , 2014, Automated Software Engineering.

[26]  Keiichi Abe,et al.  Topological structural analysis of digitized binary images by border following , 1985, Comput. Vis. Graph. Image Process..

[27]  Liming Zhu,et al.  Wireframe-based UI Design Search through Image Autoencoder , 2020, ACM Trans. Softw. Eng. Methodol..

[28]  Christopher Vendome,et al.  CrashScope: A Practical Tool for Automated Testing of Android Applications , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[29]  Lei Ma,et al.  Wuji: Automatic Online Combat Game Testing Using Evolutionary Deep Reinforcement Learning , 2019, 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[30]  Shuchang Zhou,et al.  EAST: An Efficient and Accurate Scene Text Detector , 2017, 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[31]  Luiz Fernando Capretz,et al.  Critical Success Factors to Improve the Game Development Process from a Developer’s Perspective , 2016, Journal of Computer Science and Technology.

[32]  Kaiming He,et al.  Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks , 2015, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[33]  Abhishek Das,et al.  Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization , 2016, 2017 IEEE International Conference on Computer Vision (ICCV).

[34]  Thomas F. Liu,et al.  Learning Design Semantics for Mobile Apps , 2018, UIST.

[35]  Yang Liu,et al.  Guided, stochastic model-based GUI testing of Android apps , 2017, ESEC/SIGSOFT FSE.

[36]  Zhenchang Xing,et al.  Object detection for graphical user interface: old fashioned or deep learning or a combination? , 2020, ESEC/SIGSOFT FSE.