Graphical user interfaces (GUIs) are important parts of today’s software and their correct execution is required to ensure the correctness of the overall software. A popular technique to detect defects in GUIs is to test them by executing test cases and checking the execution results. Test cases may either be created manually or generated automatically from a model of the GUI. While manual testing is unacceptably slow for many applications, our experience with GUI testing has shown that creating a model that can be used for automated test case generation is difficult. We describe a new approach to reverse engineer a model represented as structures called a GUI forest, event-flow graphs and an integration tree directly from the executable GUI. We describe “GUI Ripping”, a dynamic process in which the software’s GUI is automatically “traversed” by opening all its windows and extracting all their widgets (GUI objects), properties, and values. The extracted information is th...
Atif M. Memon, Ishan Banerjee, Adithya Nagarajan