The behavior of a GUI object in a multi-window application often depends on GUI objects in the same window and other windows. To confirm correct behavior under all GUI appearances is essential to ensure software acceptance and remains a challenging problem. We propose an algorithm which exercises each GUI object at least once in all GUI appearances as captured by running the application under test (AUT) and traversing the GUI. In addition, we introduce some techniques to reduce the execution time which would otherwise tend to grow exponentially against the number of GUI objects. We can detect errors via, for example, model checking techniques from the execution paths which are trajectories of GUI appearances by exercising GUI objects. We implement "GUI Ferret" on our traversal algorithm and evaluate its effectiveness on a practical multi-window application.