Part 11
Software Quality Assurance
1
Software Testing and Quality
Assurance
2
Objectives
A Deeper Understanding of Quality Assurance
Quality Assurance
What is software quality assurance (SQA).
3
Quality Assurance -Introduction
Quality can not be added to a piece of software
after you have built it.
Quality must be built into the software from the
beginning.
4
Quality Assurance -Introduction
Two sources of constraints that requires
specialized methods:
Non-functional requirements that come from the
client and their application domain.
Constraints that come from quality standards
5
Quality Assurance for Software
Engineers
Quality is a ubiquitous concern in software
engineering.
Achieving quality pervades
Software engineering processes, methods, and
tools; and
One of the main aims of project managements.
6
Quality Assurance for Software
Engineers
Quality products can
Increase market shares,
Long term profitability for companies; and
Poor quality can certainly have the opposite effect.
Yet, in spite of the focus on quality
It can be remarkably elusive to attain in actual
software engineering projects.
7
Quality Assurance for Software
Engineers
A reason for the concern with quality is the sheer
complexity of many modern software systems.
8
Quality Assurance for Software
Engineers
Complexity in software systems arises in a
number of ways.
The large number of modules, concurrent
processes, and diversity of platforms that must
interact to achieve the aims and requirements of the
system; and
The development of the product itself which is
subject to changes in requirements, changes in
personnel and the ever present technological
churn. The phrase mean constantly changing technology
used in implementing and engineering products.
9
What is software Quality?
The End-user’s Perspective
End-users judge the quality of a product by their
interaction with it.
For users a system has quality if
It is fit for purpose, reliable and has reasonable
performance, easy to learn and use.
Sometime, if the functionality is hard to learn but
is extremely important, then users will still judge the system
to have high quality.
10
What is software Quality?
The Developer’s Perspective
Typically includes the number of faults
Ease of changing the system
Ease of testing the system
The nature of the design
Conformance to requirements;
Resource usage; and performance.
11
What is software Quality?
The Maintainer’s Perspective
Similar to developer’s perspective; but also includes
The simplicity and modularity of the system,
The documentation produced by the developers;
and
The ease of understanding the implementation.
12
What is software Quality?
Software engineers need to choose
Processes, tools and techniques to monitor and
control the quality of the software as it is being
developed.
If we can not directly monitor the attributes,
We often need to monitor the quality of the
processes, under the assumption that
The quality of the process influences the quality
of the product.
13
Software Quality Factors
Functionality, Usability, Reliability, Performance,
and Supportability (FURPS) quality factors
Functionality: feature set, capabilities, generality of
functions, and security
Usability: human factors like consistency, and
documentation
Reliability: frequency and severity of failures,
accuracy of outputs, mean time between failures,
ability to recover, predictability
15
Why SQA Activities Pay Off?
cost to find
and fix a defect
100
10
log
scale
1
Req.
Design
code
test
system
test
field
use
0.75
1.00
1.50
3.00
10.00
60.00-100.00
16
Software Quality Assurance
The SQA group must look at software from the
customer's perspective, as well as assessing its
technical merits.
The activities performed by the SQA group
involve quality planning, oversight, record
keeping, analysis and reporting.
17
Software Quality Assurance
Formal
Technical
Reviews
SQA
Test
Planning
& Review
Measurement
Analysis
&
Reporting
Process
Definition &
Standards
18
Software Quality Assurance
Beginning of the project
Project manager will consider quality factors and
decide which ones are important for the system
Decide on what validation and verification activities
will be carried out to check that the required quality
factors are present in the product
During the project
Validation and verification of quality standards and
procedures
End of the project
Expected quality achieved to what extent