In software development, validation and verification take up a major part of
the effort, time and resources. Testing, as a crucial component of these
activities, must ensure quality and cost-effectiveness to provide a good return
on investment of the client over the long term. The quality of testing can be
improved by adopting a systematic testing approach, whereas cost-effectiveness
can be improved by test automation.
If the programming phase adds ‘quantity’ to a project the Testing &
Reworking phase adds Quality. There are three distinct levels of testing.
1. Unit Testing
2. Integration Testing
3. User Acceptance Testing
1. Unit Testing is driven by the software
developer as part of the Programming phase. It is discussed in this section for
clarity. A unit of work is tested for functional correctness, against the
technical specification document. When the software developer is satisfied that
the unit of work has been designed to specification, works in accordance with
the functional and technical specification, a ‘code freeze’ will be made. A
Code Freeze formally ends any further changes to the source code. The work will
then enter a ‘known state’. Any additional work or changes to that body of work
must be agreed upon, approved and will impose a mandatory period re-testing.
|