What is Quality?
The American Heritage Dictionary defines Quality as a characteristic or attribute of something.
As an attribute of an item, quality refers to measurable characteristics – things we are able to compare to known standards such as length, color, electrical properties, and malleability.
Quality of design refers to the characteristics that designers specify for an item. The grade of materials, tolerances, and performance specifications all contribute to the quality of design.
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 control includes a feedback loop to the process that created the work product.
Quality assurance is the preventive set of the activities that provide greater confidence that the project will be completed successfully .
Quality assurance focuses on, how the engineering and management activity will be done?
As any one is interested in the quality of final product, it should be assured that we are building the right product.
It can be assured only when we do inspection & review of intermediate products, if there are any bugs(error) then it is debugged(removed). Thus quality can be enhanced.
Importance of Quality
We would expect quality to be a concern of all producers of goods and services. However, the special characteristics of software and in particular its intangibility and complexity, make special demands.
Increasing criticality of software : The final customer or user is naturally concerned about the general quality of software, especially its reliability. This is increasing in the case as organizations become more dependent on their computer systems and software is used more and more in areas that are safety-critical. For example to control aircraft.
The intangibility of software : This makes it difficult to know that a particular task in a project has been completed satisfactorily. The results of these tasks can be made tangible by demanding that the developer produce ‘deliverables’ that can be examined for quality.
Accumulating errors during software development: As computer system development is made up of a number of steps where the output from one step is the input to the next, the errors in the earlier ‘deliverables’ will be added to those in the later steps leading to an accumulating detrimental effect. In general the later in a project that an error is found the more expensive it will be to fix. In addition because the number of errors in the system are unknown, the debugging phase of a project are particularly difficult to control.
Factors Affecting the Quality
James A. McCall, for instance, grouped software qualities into three sets:
Product Operation Qualities;
Product Revision Qualities;
Production Transition Qualities