Properly testing a system requires a sizeable effort, with typically a quarter of the project schedule being set aside for the testing process [Brooks, 1995]. Consequently, any method that facilitates the various testing activities directly impacts the project timeframe, helping to speed up the delivery of the software. If you can reduce the time to undertake all aspects of the testing process, you'll achieve the RAD objective of delivering the application to the customer in a shorter timeframe.
Despite the advantages test-driven development provides, it is not a replacement for a rigorous quality assurance (QA) process. This still has to be undertaken, as a test strategy based purely on unit testing falls well short of the goal of delivering a comprehensively tested solution.
The primary focus of this chapter is on functional and system-load testing. Predominantly, we examine how test automation tools can assist in reducing testing times and improving test accuracy. Two open source tools are introduced: HttpUnit for creating test scripts for the functional testing of a Web application, and JMeter for conducting load and stress testing.