Software Quality Assurance

Software Quality Assurance
What is software quality?
Outline





2.1 What is software?
2.2 Software errors, faults and failures
2.3 Classification of the causes of software errors
2.4 Software quality – definition
2.5 Software quality assurance – definition and
objectives




2.5.1 Software quality assurance definitions
2.5.2 Software quality assurance vs. software quality
control
2.5.3 The objectives of SQA activities
2.6 Software quality assurance and software
engineering
Software quality – definition


Frame 2.3 offers two alternative definitions of software
quality, held by the founders of modern quality assurance,
Philip B. Crosby and Joseph M. Juran.
Each definition reflects a different conception of software
quality
Software quality – definition

Additional aspects of software quality are
included in the definition suggested by
Pressman (Pressman, 2000, sec. 8.3), shown
in Frame 2.4.
Software quality – definition

Pressman’s definition suggests three requirements for
quality assurance that are to be met by the developer:




Specific functional requirements, which refer mainly to the
outputs of the software system.
The software quality standards mentioned in the contract.
Good Software Engineering Practices (GSEP), reflecting state-ofthe-art professional practices, to be met by the developer even
though not explicitly mentioned in the contract.
In effect, Pressman’s definition provides operative
directions for testing the degree to which the requirements
are met.
Software quality assurance –
definition and objectives


SQA should not be limited to the development process.
Instead, it should be extended to cover the long years of
service subsequent to product delivery.
SQA actions should not be limited to the technical aspects
of the functional requirements, but should include also
activities that deal with scheduling and the budget
Software quality assurance –
definition and objectives


The expanded SQA definition corresponds strongly with
the concepts at the foundation of the ISO 9000 standards
regarding SQA
The expanded definition also corresponds to the main
outlines of the Capacity Maturity Model (CMM) for
software.
Software quality assurance –
definition and objectives




Table 2.2 compares elements of the expanded SQA
definition with: (read the table from the book and notice
the differences)
The IEEE SQA definition
The relevant ISO 9000-3 sections
CMM requirements.
Software quality assurance vs.
software quality control



According to the IEEE software quality assurance
definition, “quality control” is to be contrasted with
“quality assurance”.
These two terms represent separate and distinct concepts:
Quality control is defined as “a set of activities designed
to evaluate the quality of a developed or manufactured
product” (IEEE, 1991); in other words, activities whose
main objective is the withholding of any product that does
not qualify. Accordingly, quality control inspection and
other activities take place as the development or
manufacturing of the product is completed yet before the
product is shipped to the client.
Software quality assurance vs.
software quality control



The main objective of quality assurance is to minimize
the cost of guaranteeing quality by a variety of activities
performed throughout the development and manufacturing
processes/stages.
These activities prevent the causes of errors, and detect
and correct them early in the development process.
quality assurance activities substantially reduce the rate of
products that do not qualify for shipment and, at the same
time, reduce the costs of guaranteeing quality in most
cases.
The objectives of SQA activities
The objectives of SQA activities
Software quality assurance and
software engineering

According to the IEEE (1991), software
engineering is defined as follows:


The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance
of software; that is, the application of engineering to
software.
The characteristics of software engineering,
especially the systematic, disciplined and quantitative
approach at its core, make the software engineering
environment a good infrastructure for achieving SQA
objectives
Software quality assurance and
software engineering

It is commonly accepted that cooperation
between software engineers and the SQA
team is the appropriate way to achieve
efficient and economic development and
maintenance activities that, at the same time,
assure the quality of the product of these
activities.