We at LadyBug pay special attention to all the best practices of Software Engineering, especially when it comes to security and testing, and we like to think that User Interface programming is no less sensitive to this topic.
In our experience, one of the biggest challenges in UI testing is the lack of a reliable solution to actually run the test, although great framework exist that easy the task of writing automation engines to drive the application UI which is under testing.
One of the problem, for example, is that usually UI frameworks need a dedicated machine, and usually take control over mouse and display resources, basically interrupting the programmer workflow until the test is finished, a task that can take anything from few minutes to hours.
Also, since the drawing operations can be issued asynchronously, depending on environmental conditions the test can experience spurious failures.
For this reason, we have developed a solution to run Java Swing applications inside a special graphics implementation based on our Caciocavallo project, which allow for consistent and reliable testing of UI.
The testing framework, friendly knows as “Cacio-tta”, is developed inside the Caciocavallo workspace in the OpenJDK mercurial repositories.
The version distributed by LadyBug Studio is a simple and ready to use package that includes some extra libraries and tools like Fest and Jenkins plus a special Junit test runner that integrate perfectly with Fest and can be used in a standalone environment as well as deployed on the test server with Jenkins.