Software Quality: Software Quality Measures How Well Software Is Designed (Quality of Design), and How
Software Quality: Software Quality Measures How Well Software Is Designed (Quality of Design), and How
Software quality measures how well software is designed (quality of design), and how
well the software conforms to that design (quality of conformance), although there are
several different definitions. It is often described as the 'fitness for purpose' of a piece of
software.
Quality Attributes
1 Reliability The extent to which a software performs its intended functions without failure.
2 Correctness The extent to which a software meets its specifications.
3 Consistency & The extent to which a software is consistent and give results with precision.
precision
4 Robustness The extent to which a software tolerates the unexpected problems.
5 Simplicity The extent to which a software is simple in its operations.
6 Traceability The extent to which an error is traceable in order to fix it.
7 Usability The extent of effort required to learn, operate and understand the functions of the
software
13 Portability The effort required to transfer a program from one platform to another
platform.
14 Understandability The effort required for a user to recognize the logical concept and its applicability.
Some models for software quality are McCall Software Quality Model, Boehm Software
Quality Model and ISO 9126 quality model.
Software Quality Control (SQC) is a set of activities for ensuring quality in software
products.
It includes the following activities:
Reviews
o Requirement Review
o Design Review
o Code Review
o Deployment Plan Review
o Test Plan Review
o Test Cases Review
Testing
o Unit Testing
o Integration Testing
o System Testing
o Acceptance Testing
Software Quality Control is limited to the Review/Testing phases of the Software
Development Life Cycle and the goal is to ensure that the products meet
specifications/requirements.
The process of Software Quality Control (SQC) is governed by Software Quality
Assurance (SQA). While SQA is oriented towards prevention, SQC is oriented towards
detection.
Software Quality Assurance (SQA) is a set of activities for ensuring quality in software
engineering processes (that ultimately result in quality in software products).
It includes the following activities:
Process definition and implementation
Auditing
Training
Processes could be:
Software Development Methodology
Project Management
Configuration Management
Requirements Development/Management
Estimation
Software Design
Testing
etc
Once the processes have been defined and implemented, Quality Assurance has the
following responsibilities:
identify weaknesses in the processes
correct those weaknesses to continually improve the process
The quality management system under which the software system is created is
normally based on one or more of the following models/standards:
CMMI
Six Sigma
ISO 9000
Note: There are many other models/standards for quality management but the ones
mentioned above are the most popular.
Software Quality Assurance encompasses the entire software development life cycle
and the goal is to ensure that the development and/or maintenance processes are
continuously improved to produce products that meet specifications/requirements.
Differences between Software Quality Assurance (SQA) and Software Quality
Control (SQC):
Controlling Change
This task combines human procedures and automated tools to provide a
mechanism for change control. The change control mechanism ensures software
quality by formalizing requests for change, evaluating the nature of change, and
controlling the impact of change. Change control mechanism is implemented
during the development and maintenance stages.