See Methods and Standards - CLEANROOM method
for the bigger picture.
This is a model for understanding what testing is required during a development -- and why. It also shows when the tests should be planned.
It's called "V" model because of the following diagram commonly used to present the proposal.
requirements user user
definition requirements acceptance
systems system system
analysis proposal test
system application integration
design design docs test
construction program unit test
What the diagram means is this:
- user acceptance
- 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.
The first checkpoint is requirements testing. This occurs between requirements definition and systems analysis.