What is testing?
Testing is the process of exercising or evaluating a system or system components by manual or
automated means to verify that it satisfies specified requirements.
The Purpose of Testing
Testing consumes at least half of the time and work required to produce a functional program.
o MYTH: Good programmers write code without bugs. (It’s wrong!!!)
o History says that even well written programs still have 1-3 bugs per hundred statements.
Productivity and Quality in Software:
In production of consumer goods and other products, every manufacturing stage is
subjected to quality control and testing from component to final stage.
If flaws are discovered at any stage, the product is either discarded or cycled back for
rework and correction.
Productivity is measured by the sum of the costs of the material, the rework, and the
discarded components, and the cost of quality assurance and testing.
There is a tradeoff between quality assurance costs and manufacturing costs: If sufficient
time is not spent in quality assurance, the reject rate will be high and so will be the net
cost. If inspection is good and all errors are caught as they occur, inspection costs will
dominate, and again the net cost will suffer.
Testing and Quality assurance costs for 'manufactured' items can be as low as 2% in
consumer products or as high as 80% in products such as space-ships, nuclear reactors,
and aircrafts, where failures threaten life. Whereas the manufacturing cost of software is
The biggest part of software cost is the cost of bugs: the cost of detecting them, the cost
of correcting them, the cost of designing tests that discover them, and the cost of running
For software, quality and productivity are indistinguishable because the cost of a
software copy is trivial.
Testing and Test Design are parts of quality assurance should also focus on bug
prevention. A prevented bug is better than a detected and corrected bug.