Testing of the delivered system to prove it meets the user requirements. By its nature, the user acceptance test must be planned alongside the user requirements. User acceptance test scripts can be constructed by the users with assistance from the developers as the system is being constructed.

system test

Testing of the complete system, to prove it meets the system proposal. This enables the developers to prove to their satisfaction that the application is ready for delivery. The planning for this testing should take place alongside the production of the system proposal.

integration test

Tests all components within the system to ensure they work with each other correctly, thus proving the application design, as documented, has been met.

unit test

Testing individual code components, to prove each functions correctly according to the program specification. Unit testing should be planned alongside the construction of the program specification.

The model also requires checkpoints before proceeding from one stage to the next. For example, the user requirements are "tested" to ensure they provide the correct level of detail from which to produce the system proposal.