GUI Ripping: Reverse Engineering of Graphical User Interfaces for Testing

Download: PDF.

“GUI Ripping: Reverse Engineering of Graphical User Interfaces for Testing” by Atif M. Memon, Ishan Banerjee, and Adithya Nagarajan. In Proceedings of The 10th Working Conference on Reverse Engineering, Nov. 2003.

Abstract

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 testingis 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-flowgraphs 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 then verified by the test designer and used to automatically generate test cases. We present algorithms for the ripping process and describe their implementation in a tool suite that operates on Java and Microsoft Windows' GUIs. We present results of case studies which show that our approach requires very little human intervention and is especially useful for regression testing of software that is modified frequently. We have successfully used the "GUI Ripper" in several large experiments and have made it available as a downloadable tool.

Download: PDF.

BibTeX entry:

@inproceedings{MemonWCRE2003,
   author = {Atif M. Memon and Ishan Banerjee and Adithya Nagarajan},
   title = {{GUI} Ripping: Reverse Engineering of Graphical User
	Interfaces for Testing},
   booktitle = {Proceedings of The 10th Working Conference on Reverse
	Engineering},
   month = nov,
   year = {2003}
}

Back to Atif Memon's Publications.