This was a medium sized project, mainly related to file management and developed with Java J2EE.
From a functional point of view, the application is not particularly difficult (except maybe the typical automation problems such as Excel exports and email alerts). This application worked together with another Java application that was completely available to use and that we could control.
The main challenge lay here was the use of SmartGWT as a framework for the presentation layer.
The test plan was entirely managed by the Testlink tool.
The development environment was fairly standard: Windows 7, Eclipse, Oracle XE, Java 1.6.
The integration environment and the test environment were hosted on Ubuntu servers. For integration, Jenkins was the tool used to run the tests on different platforms (Windows, Linux, Firefox, IE).
Although still in beta when the project started, the 2.0 version of Selenium was used.
The setup phase needed some special efforts on two points: SmartGWT and Jenkins.
For Jenkins, the configuration of certain specific plugins, some with bugs, took more time than planned. It was particularly the reassembly of test results in Testlink that was a challenge (in order to maintain, at all times, an overview of the entire test campaign implementation, both the manual part and the automatic part).
For SmartGWT, the identifiers of the graphic components are dynamically generated, which is a problem to test automation. Workarounds are provided with the SmartGWT framework, but in practice, a lot of it remained difficult, sometimes undoable.
Despite the various challenges encountered (not counting the issues related to the interfaces with outside web elements), we were able to automate 65% of the tests.
The tests, developed mainly in Eclipse (not systematically through Selenium IDE), are mostly simple to maintain, although some Selenium functions had to be overloaded to support SmartGWT.
The development of automated tests also had an impact on the development of the application itself: some coding rules were put in place to facilitate test automation.