Wednesday, October 5, 2016

Testing Process: Definition and Some Associated Terms in Software Development


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