Automatic GUI testing of desktop applications: an empirical assessment of the state of the art

Testing software applications interacting with their graphical user interface, in short GUI testing, is both important, since it can reveal subtle and annoying bugs, and expensive, due to myriads of possible GUI interactions. Recent attempts to automate GUI testing have produced several techniques that address the problem from different perspectives, sometimes focusing only on some specific platforms, such as Android or Web, and sometimes targeting only some aspects of GUI testing, like test case generation or execution. Although GUI test case generation techniques for desktop applications were the first to be investigated, this area is still actively researched and its state of the art is continuously expanding. In this paper we comparatively evaluate the state-of-the-art for automatic GUI test cases generation for desktop applications, by presenting a set of experimental results obtained with the main GUI testing tools for desktop applications available. The paper overviews the state of the art in GUI testing, discusses differences, similarities and complementarities among the different techniques, experimentally compares strengths and weaknesses, and pinpoints the open problems that deserve further investigation.

[1]  Andreas Podelski,et al.  Lightweight Static Analysis for GUI Testing , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering.

[2]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[3]  Sarfraz Khurshid,et al.  Event Listener Analysis and Symbolic Execution for Testing GUI Applications , 2009, ICFEM.

[4]  Tanja E. J. Vos,et al.  User Interface Level Testing with TESTAR; What about More Sophisticated Action Specification and Selection? , 2014, SATToSE.

[5]  Myra B. Cohen,et al.  GUI Interaction Testing: Incorporating Event Context , 2011, IEEE Transactions on Software Engineering.

[6]  Atif M. Memon,et al.  GUITAR: an innovative tool for automated testing of GUI-driven software , 2014, Automated Software Engineering.

[7]  Leonardo Mariani,et al.  Recent Advances in Automatic Black-Box Testing , 2015, Adv. Comput..

[8]  Chao Wang,et al.  GUICat: GUI testing as a service , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Tanja E. J. Vos,et al.  TESTAR: Tool Support for Test Automation at the User Interface Level , 2015, Int. J. Inf. Syst. Model. Des..

[10]  Vahid Garousi,et al.  Graphical user interface (GUI) testing: Systematic mapping and repository , 2013, Inf. Softw. Technol..

[11]  Leonardo Mariani,et al.  AutoBlackTest: Automatic Black-Box Testing of Interactive Applications , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[12]  Paolo Tonella,et al.  Automated oracles: an empirical study on cost and effectiveness , 2013, ESEC/FSE 2013.

[13]  Leonardo Mariani,et al.  Augusto: Exploiting Popular Functionalities for the Generation of Semantic GUI Tests with Oracles , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[14]  Alessandra Gorla,et al.  Automated Test Input Generation for Android: Are We There Yet? (E) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[15]  Leonardo Mariani,et al.  Automatic testing of GUI‐based applications , 2014, Softw. Test. Verification Reliab..

[16]  Andreas Zeller,et al.  Search-based system testing: high coverage, no false alarms , 2012, ISSTA 2012.