GUI Ripping: Reverse Engineering of Graphical User Interfaces for Testing Atif Memon Ishan Banerjee, Adithya Nagarajan Department of Computer Science Department of Computer Science and Fraunhofer Center for University of Maryland Experimental Software Engineering College Park, Maryland, USA University of Maryland {ishan, sadithya}@cs.umd.edu College Park, Maryland, USA
[email protected] Abstract trols that represent everyday objects such as menus, but- tons, lists, and windows. Recognizing the importance of Graphical user interfaces (GUIs) are important parts of GUIs, software developers are dedicating large parts of the today’s software and their correct execution is required to code to implementing GUIs [12]. The correctness of this ensure the correctness of the overall software. A popular code is essential to the correct execution of the overall soft- technique to detect defects in GUIs is to test them by exe- ware. A popular technique to detect defects in software is cuting test cases and checking the execution results. Test testing [3, 2, 23]. During testing, test cases are created and cases may either be created manually or generated auto- executed on the software. Test cases may either be created matically from a model of the GUI. While manual testing manually by a tester [10, 27, 8] or automatically by using a is unacceptably slow for many applications, our experience model of the software derived from its specifications [20]. with GUI testing has shown that creating a model that can In all our work to date [20, 17, 21, 16, 18, 19, 15, 12, 14], be used for automated test case generation is difficult.