A Two Tiered Approach to Methodical GUI Testing
Graphical user interfaces
(GUIs) are almost universal amongst today’s software applications. Many special
software systems and tools are devoted to helping the design and implementation
of GUIs that become easier to use than before. Meanwhile testing GUIs is
difficult and challenging. On one side they are generally large and complex;
the other side of importance is that GUIs involve many special features
different from traditional software. Hence, traditional testing methodologies
are difficult to apply. The approach proposed in this paper is to methodically
apply testing to GUI systems on abstract tiers – the component and the system
tier. When testing a GUI it is reasonable to decompose the whole system into
many subcomponents. After thoroughly analyzing various working situations of
the components, a flow graph is created for each one. The flow graph represents
a set of relationships made up of preconditions, event sequences and
corresponding output. All the description of the components is integrated to
build up a viewpoint of the entire system. Tests on this tier, try to interrogate
the interactions between components. A finite state machine model is created to
represent the system on this tier. Test data are generated with respect to the
models on the two tiers. Corresponding coverage criteria are defined
respectively. This approach is simple and practical. An empirical investigation
shows the effectiveness of this method and the cost associated with testing
using this approach is limited.