Quality is a process of ensuring that all specified software processes have been properly executed.
Testing is a process of dynamically executing software after it is completed.
Quality Control involves the series of inspections, reviews, and tests used throughout the software process to ensure each work product meets the requirements placed upon it.
Quality Assurance consists of the auditing and reporting functions of management.
We can define software quality in several ways that could, ideally, all tie together. Here are those ways:
- Satisfaction level - the degree to which a software product meets a user's needs and expectations.
- A software product's value relative to its various stakeholders and its competition.
The extent to which a software product exhibits desired properties.
- The degree to which a software product works correctly in the environment it was designed for, without deviating from expected behavior.
- The effectiveness and correctness of the process employed in developing the software product.
The Cost of Quality
Does quality cost us anything and if so what? And how does that compare to the cost of not having quality? These are heady topics, indeed, for any organization that wants to produce satisfactory products and yet still keep a handle on things reduced development times and more dynamic release cycles of products.
There is some confusion about the business value of quality even outside the software development context. On the one hand, there are those who believe that it is economical to maximize quality.
Experiences in manufacturing fields relating to the cost and return-on-investment of quality improvements seems to suggest that there are diminishing returns to quality expenditures after a certain point.
However, quality improvements can often result in quantifiable cost savings that outweigh the funds actually spent on the quality efforts. Regardless of which side of the fence you sit on, a main focus in qualitly management is how to make profitable decisions on quality expenditures.
This problem is particularly salient in software development due to limited empirical evidence on the economics of software quality. So the key is to focus on evaluating the cost of quality and return on quality. This usually requires metrics and in terms of software engineering economics context and beyond the scope of this general overview.
The cost of quality falls into three broad categories: prevention, appraisal, and failure. Prevention costs involve investments aimed at getting work done right the first time and preventing quality problems from ever coming up, at least insofar as possible.
Examples include training, new techniques and tools, methodologies, etc. This is a proactive approach that commends itself to defect prevention rather than defect correction and removes the idea of quality efforts essentially being reactive in efforts to "put out fires."
Appraisal costs involve all of the testing and control efforts to measure whether needed quality has been achieved to some predefined level. Failure costs are those incurred by the need to fix and recover from the quality problems that do arise. One of the aims of a Quality Assurance department is to measure these collective quality costs on an ongoing basis.
SOFTWARE QUALITY ASSURANCE AND CONTROL
SOFTWARE QUALITY AND COST ASPECT
STABLE PROCESS OF SOFTWARE TESTING
STABLE PROCESS OF SOFTWARE TESTING PART TWO
DEFECTS IN SOFTWARE TESTING
REDUCTION OF DEFECTS IN SOFTWARE TESTING
SOFTWARE TESTING AND EFFECTING FACTORS
SCOPE OF SOFTWARE TESTING
TESTING LIFE CYCLE PART ONE
TESTING LIFE CYCLE PART TWO
TESTING LIFE CYCLE PART THREE
SOFTWARE TESTING AND CONSTRAINTS WITH IN IT
TESTING CONSTRAINTS PART TWO
LIFE CYCLE TESTING
Independent Software Testing
Testing verification and validation
Functional and structural testing
Static and dynamic testing
V model testing
Eleven steps of V model testing
Execution testing technique
Recovery Testing technique
Operation testing technique
Compliance software testing technique
Security testing technique