All the development done on the projects I’m involved with at the moment run through the cruisecontrol system for continuos integration. I’ll provide more of the details on this at some point in the future, but put simply this system means that as soon as a developer commits a change into cvs, our ant build is automatically run on the changes. Our build consists of several phases including:-
- checking the source changes meet our rules via checkstyle
- the compilation/javadoc phase
- Junit tests on the undeployed code
- deployment of code
- more Junit tests on the deployed ejbs
We have also been performing adhoc tests on the running application with JMeter. The problem we have had up until now has been integratign these web functional tests into the build process.i.e. simulating a user walking through the site with some validation processes like page content, timings etc. The good news is that a colleague showed me latka, which is exactly what we needed. The tests are simply defined via an xml control file. The test file contruction is straightforward enough to hand off to a non-coder for existing stuff (the rule now is that a new servlet/jsp page created by a developer should have these tests as well). These tests run within the JUnit framework and therefore integrate into the build perfectly after deployment.
Things get better though, work is progressing on a tool that can convert recorded JMeter tests and convert them directly into Latka scripts. We are still at an early stage with this, but it really looks like a powerful tool.