Test-driven development for graphical UIs: A multi-platform toolset

Test-driven development (TDD) is the practice of creating automated unit tests that exercise planned software functionality, before writing the software itself. TDD leads to higher quality software by encouraging developers to analyze individual units of behavior before coding and by allowing easy detection of problems introduced by software change. However, few tools effectively support TDD for graphical user interfaces. Those that do are platform-specific and require developers to express all tests as executable code for the target platform. This paper describes UIT (User Interface Tester), a toolset designed to support TDD for interactive applications. UIT addresses the weaknesses of existing solutions by using human-readable declarative test scripts and by generating skeleton GUIs from test scripts so that tests can be created first. It also supports driving GUIs that target different platforms. We present details of the scripting language, an overview of the UIT architecture with a focus on its multi-platform capabilities, and a discussion of current status and future plans. We believe that as UIT matures, it can assist developers in reaping the benefits of TDD.