TESTING
SOFTWARE QA
RESOURCES
Notes taken from Boris Beizer books:

Manufacturing Productivity

When design costs of manufactured items are amortized over a large production run the design component is a relatively small portion of the total cost. Once production is underway quality control and testing is done at each stage: including everything from the source inspection of components to final testing before delivery. All or part of the defective product components will be recycled back into the production process for rework or correction if errors or malfunctions are found.

Assembly line productivity is determined by taking together the costs of materials, rework, discarded components and the cost of quality control and testing.

Quality assurance costs and manufacturing costs must be traded off: too little QA there will lead to more defects and rejections that will raise net costs; conversely, inspection costs will be too high if it is intended that all errors be caught as they occur. For a given quality objective a manufacturing process is designed to establish testing and quality processes that minimize net costs. Where failures are life threatening QA costs can be as high as 80%. They can be as low as 2% for manufactured goods.



Software Productivity

The relation between productivity and quality on software development is very different from that in manufacturing. The cost of "manufacturing" a piece of software is trivial. It is the cost of disks and a few minutes of computer time. Furthermore, software "manufacturing" quality assurance is fully automated through the use of check-sums and other error detecting methods when data is written to disk.

Software costs are almost completely expended in development.

Software maintenance is totally unlike hardware maintenance. It is really an extended development in which enhancements are designed and installed, and deficiencies corrected. It is clear that the single largest component of software cots is the cost of bugs: the cost of detecting them, the cost of correcting them, the cost of designing tests to discover them, and the cost of executing those tests.

Consequently, the primary aim of software quality assurance should be bug prevention.