For as long as graphical user interfaces (GUIs) have existed, it has been difficult to test them. This difficulty has become more pressing with the advent of Agile development methodologies, which stress that software should be fully tested to demonstrate that it works from developers’ and users’ points of view. In this thesis, I explored the fundamental question of whether automated GUI testing and Agile development environments are, or can be made, compatible. I conducted systematic mapping studies to determine how GUI testing and agile are currently compatible in existing literature, and performed an interview study with practitioners in order to determine how well these results matched up with what is done in industry. Based on the results of these studies, I confirmed that test-driven development (TDD) was a major area where automated GUI tests could fit into an agile process. I proposed a novel approach to TDD of GUIs that leverages Agile User Interaction Design techniques: by using an interactive low-fidelity prototype – already part of many Agile development processes – as the basis for automated GUI tests, TDD can be performed on a GUI with minimal added effort. A controlled experiment was used to validate this approach with practitioners, and the results indicated that this approach would be useful in practice.