A Vision on Mining Visual Logs of Software

In this paper, we define visual logs of a software system as data capturing the interactions between its users and its graphic user interfaces (GUI) such as screenshots and screen recordings. We expect that mining such visual logs could be useful for many software engineering tasks: bug reproducing and debugging, automated GUI testing, user interface design, question answering of common software usages, etc. Toward that vision, we propose a core framework for mining visual logs of software. This framework focuses on detecting GUI elements and changes in visual logs, removing users' private data, recognizing user interactions with GUI elements, and learning GUI usage patterns. We also presented a small study on characteristics of GUI elements in mobile apps. The findings from this study suggest several heuristics to design techniques for recognizing GUI elements and interactions.

[1]  Michael I. Jordan,et al.  Detecting large-scale system problems by mining console logs , 2009, SOSP '09.

[2]  George C. Necula,et al.  Guided GUI testing of android apps with minimal restart and approximate learning , 2013, OOPSLA.

[3]  Guofei Gu,et al.  SmartDroid: an automatic system for revealing UI-based trigger conditions in android applications , 2012, SPSM '12.

[4]  Thomas Zimmermann,et al.  What Makes a Good Bug Report? , 2008, IEEE Transactions on Software Engineering.

[5]  James H. Martin,et al.  Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition , 2000 .

[6]  Rob Miller,et al.  GUI testing using computer vision , 2010, CHI.

[7]  Porfirio Tramontana,et al.  A GUI Crawling-Based Technique for Android Mobile Application Testing , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[8]  Tuan Anh Nguyen,et al.  Reverse Engineering Mobile Application User Interfaces with REMAUI (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[10]  Ding Yuan,et al.  Characterizing logging practices in open-source software , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Thomas Zimmermann,et al.  Duplicate bug reports considered harmful … really? , 2008, 2008 IEEE International Conference on Software Maintenance.

[12]  Ahmed E. Hassan,et al.  Studying the relationship between logging characteristics and the code quality of platform software , 2015, Empirical Software Engineering.

[13]  Rob Miller,et al.  Sikuli: using GUI screenshots for search and automation , 2009, UIST '09.

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