SOFTWARE TESTING
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: o In production of consumer goods and other products, every manufacturing stage is subjected to quality control and testing from component to final stage. o If flaws are discovered at any stage, the product is either discarded or cycled back for rework and correction. o 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 trivial.
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 those tests.
For software, quality and productivity are indistinguishable because the cost of a software copy is trivial.
Comments