In plan-driven development, software should be tested after implementation. Testing can be defined as showing and proving that a program does what it is intended to do and to discover program defects before it is put into use. However, testing cannot demonstrate that the software is free of defects or that it will behave as specified in every circumstance. Djikstra stated that testing can only show the presence of errors, not their absence.
Testing is a part of
broader process of software verification and validation (V & V). We often
think that verification and validation are the same thing; but it's not. As Barry
Boehm, a pioneer of software engineering, expressed, in validation, one must
thinks that they build the right product, while in verification, one must
thinks that they build the product right. Nonetheless, verification and validation
has the same objective: to establish confidence that the software system is
'fit for purpose'.
As well as software
testing, the verification and validation process may involve software inspections.
Technically, inspections analyze and check every system process development without
executing the software to verify it. Inspections cannot replace software
testing, no matter how thorough the system is checked. Inspections are not good
for discovering defects that arise because of unexpected interactions between
different parts of a program, timing problems, or problems with system
performance.
Testing, inspection,
verification and validation are some of 'commonly mistaken' terms which we
should consider its role in software development; as Ian Sommerville stated in
his book, Software Engineering 9th edition.
EmoticonEmoticon