Abstract | Graphical user interfaces (GUIs) are important parts oftoday’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 exe-
cuting test cases and checking the execution results. Test
cases may either be created manually or generated auto-
matically 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 infor-
mation is then verified by the test designer and used to auto-
matically 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 es-
pecially useful for regression testing of software that is mod-
ified frequently. We have successfully used the “GUI Rip-
per” in several large experiments and have made it avail-
able as a downloadable tool.
|