The previous part discussed why a unit test for a class should be written by the developer of that class, and why a functional test should be created by an independent tester. This posting argues that functional tests should not be part of the build process of the product, but instead should be developed and executed separately. For this, I give guidelines for setting up an independent validation system.
When building multi-platform projects where C++ is involved, developer teams are confronted with the task to compile and run the project on different platforms with different compilers. Besides, maybe just a part of the project is written in C++, other parts are written in Java and an automated build process has to be established including both languages. In our project we have found a solution based on Hudson.
Hudson can be extended in every possible way by a whopping 350+ plugins! We were most impressed with the code analysis suite. This set of plugins helped us to significantly increase the efficiency of our code review process, and to improve our code quality. In this article, we share our experience with the suite and introduce many of the great code analysis features.
Our Java project team has only three developers. We liked the idea to have our tests and builds run automatically and to have a central dashboard. However, we didn’t want to invest much time and expected a continuous integration server to be overkill. But as we started to play around with Hudson, we were quite amazed: the system was up in 5 minutes, including builds, tests, and e-mail notification.