Using GUI Run-Time State as Feedback for Test Automation
MetadataShow full item record
Graphical user interfaces (GUIs) are the sole mode of interaction between end-users and back-end code for almost all of today's software applications. Because of this strategic role of GUIs, their quality has become important. During GUI testing, test cases---modeled as sequences of user events---sample the vast input space of all possible sequences with the goal of detecting faults; for effective testing, it is important to sample this space carefully. Existing techniques either sample manually or employ manually constructed abstract models---the abstraction and/or subsequent test-case generation algorithms enable sampling. This report presents an alternative approach to GUI testing -- it's focus is on developing a fully automatic model-driven technique to generate GUI test cases. The technique is novel in that it uses feedback from the execution of a ``seed test suite'' on a GUI. The seed suite is generated automatically using an existing structural event-interaction graph (EIG) model of the GUI. During its execution, the run-time effect of each GUI event on all other events pinpoints new important event-semantic interaction (ESI) relationships between them, which are used to automatically create an ESI graph (ESIG) model and generate new test cases. Together with a reverse-engineering algorithm used to obtain the EIG, seed suite, ESIG, and new test cases, the feedback-based technique yields a fully automatic, end-to-end GUI testing process.