  Ensuring the correct visual appearance of graphical user interfaces (GUIs) is
important because visual bugs can cause substantial losses for businesses. An
application might behave functionally correct in an automated test, but visual
bugs can make the GUI effectively unusable for the user. Most of today's
approaches for visual testing are pixel-based and tend to have flaws that are
characteristic for image differencing. For instance, minor and unimportant
visual changes often cause false positives, which confuse the user with
unnecessary error reports. Our idea is to introduce an abstract GUI state
(AGS), where we define structural relations to identify relevant GUI changes
and ignore those that are unimportant from the user's point of view. In
addition, we explore several strategies to address the GUI element
identification problem in terms of AGS. This allows us to provide rich
diagnostic information that help the user to better interpret changes. Based on
the principles of golden master testing, we can support a fully-automated
approach to visual testing by using the AGS. We have implemented our approach
to visually test web pages and our experiments show that we are able to
reliably detect GUI changes.
