Software Quality Assurance: Dr. R. Mall
Software Quality Assurance: Dr. R. Mall
Assurance
(Lecture 14)
Dr. R. Mall
1
Organization of this
Lecture:
2
Introduction
Traditional definition of
quality:
fitness of purpose,
a quality product does exactly
what the users want it to do.
3
Fitness of purpose
4
Fitness of purpose
A satisfactory definition of
quality for many products:
a car, a table fan, a food mixer,
microwave oven, etc.
But, not satisfactory for software
products.
5
Introduction
Consider a software product:
functionally correct,
i.e. performs all functions as
specified in the SRS document,
but has an almost unusable
user interface.
cannot be considered as a
quality product. 6
Introduction
Another example:
a product which does
everything that users want.
but has an almost
incomprehensible and
unmaintainable code.
7
Modern view of quality
10
Reusability
11
Usability
A software product has good
usability,
if different categories of users
(i.e. both expert and novice users)
can easily invoke the functions of
the product.
12
Maintainability
13
Software Quality
Management System
16
Quality System Activities:
Auditing of projects
Development of:
standards, procedures, and guidelines,
etc.
Production of reports for the top
management
summarizing the effectiveness of the
quality system in the organization.
Review of the quality system itself.
17
Quality system
19
Evolution of Quality
Systems
Quality systems have evolved:
over the last five decades.
Prior to World War II,
way to produce quality products:
inspect the finished products
eliminate defective products.
20
Evolution of Quality
Systems
21
Evolution of Quality
Systems
22
Evolution of Quality
Systems
Initial product inspection method :
gave way to quality control (QC).
Quality control:
not only detect the defective products
and eliminate them
but also determine the causes behind
the defects.
23
Quality control (QC)
25
Quality assurance
26
Quality assurance
27
Total quality management
(TQM)
Advocates:
continuous process
improvements through process
measurements.
28
Business Process
reengineering
33
What is ISO 9000
Certification?
ISO 9000 specifies:
guidelines for repeatable and high
quality product development.
Also addresses organizational aspects
responsibilities, reporting, procedures,
processes, and resources for
implementing quality management.
34
ISO 9000
35
ISO 9000
36
ISO 9001:
Applies to:
organizations engaged in design,
development, production, and
servicing of goods.
applicable to most software
development organizations.
37
ISO 9002:
ISO 9002 applies to:
organizations who do not design products:
but are only involved in production.
Examples of this category of industries:
steel or car manufacturing industries
buy the product and plant designs from external
sources:
only manufacture products.
not applicable to software development
organizations.
38
ISO 9003
39
ISO 9000 for Software
Industry
ISO 9000 is a generic standard:
applicable to many industries,
starting from a steel manufacturing industry to a
service rendering company.
Many clauses of ISO 9000 documents:
use generic terminologies
very difficult to interpret them in the
context of software organizations.
40
Software vs. other
industries
Very difficult to interpret many
clauses for software industry:
software development is radically
different from development of
other products.
41
Software vs. other
industries
Software is intangible
therefore difficult to control.
It is difficult to control anything that we cannot see and
feel.
In contrast, in a car manufacturing unit:
we can see a product being developed through stages
such as fitting engine, fitting doors, etc.
one can accurately tell about the status of the product
at any time.
Software project management is an altogether
different ball game.
42
Software vs. other
industries
During software development:
the only raw material consumed is data.
For any other product development:
Lot of raw materials consumed
e.g. Steel industry consumes large volumes of iron
ore, coal, limestone, etc.
ISO 9000 standards have many clauses
corresponding to raw material control .
not relevant to software organizations.
43
Software vs. other
industries
44
ISO 9000 Part-3
45
Why Get ISO 9000
Certification?
Several benefits:
Confidence of customers in an
organization increases
if organization qualified for ISO
9001 certification.
This is especially true in the
international market.
46
Why Get ISO 9000
Certification?
47
Why Get ISO 9000
Certification?
Requires:
a well-documented software
production process to be in place.
contributes to repeatable and higher
quality software.
Makes development process:
focussed, efficient, and cost-effective
48
Why Get ISO 9000
Certification?
49
How to Get ISO 9000
Certification?
50
How to Get ISO 9000
Certification?
Application stage:
Applies to a registrar for
registration.
Pre-assessment:
the registrar makes a rough
assessment of the organization.
51
How to Get ISO 9000
Certification?
Document review and adequacy
audit:
process and quality-related
documents.
the registrar reviews the
documents
makes suggestions for
improvements.
52
How to Get ISO 9000
Certification?
53
How to Get ISO 9000
Certification?
Registration:
The registrar awards ISO 9000
certificate after successful
completions of all previous phases.
Continued surveillance:
The registrar continues monitoring
the organization periodically.
54
ISO 9000 Certification
An ISO certified organization
can use the certificate for corporate
advertizements
cannot use the certificate to advertize
products.
ISO 9000 certifies organization's process
not any product of the organization.
An organization using ISO certificate
for product advertizements:
risks withdrawal of the certificate.
55
Summary of ISO 9001
Requirements
Management responsibility(4.1):
Management must have an
effective quality policy.
The responsibility and authority of
all those whose work affects
quality:
must be defined and documented.
56
Management
responsibility(4.1)
Responsibility of the quality system.
independent of the development
process,
can work in an unbiased manner.
The effectiveness of the quality
system:
must be periodically by audited.
57
Quality system (4.2) and contract
reviews (4.3):
60
Document control (4.5):
61
Purchasing (4.6):
62
Purchaser Supplied Products (4.7):
Material supplied by a
purchaser,
for example,
client-provided software must
be properly managed and
checked.
63
Product Identification (4.8):
64
Process Control (4.9) :
65
Inspection and Testing
(4.10) :
In software terms this requires
effective testing i.e.,
unit testing, integration testing
and system testing.
Test records must be
maintained.
66
Inspection, measuring and test
equipment(4.11):
67
Control of nonconforming product
(4.13) :
In software terms,
keeping untested or faulty
software out of released
product,
or other places whether it might
cause damage.
68
Corrective Action (4.14) :
69
Handling (4.15) and Quality audits
(4.17):
71
Salient features of ISO 9001
requirements:
74
Shortcomings of ISO 9001
Certification (2)
ISO 9000 certification process
not fool-proof
no international accredition agency
exists.
likely variations in the norms of
awarding certificates:
among different accredition agencies
and among the registrars.
75
Shortcomings of ISO 9001
Certification (3)
Organizations qualifying for ISO
9001 certification:
tend to downplay domain expertise.
tend to believe that since a good
process is in place,
any engineer is as effective as any other
engineer in doing any particular activity
relating to software development.
76
Shortcomings of ISO 9001
Certification (4)
In manufacturing industry
clear link between process quality and
product quality
once a process is calibrated:
can be run again and again producing
quality goods
Software development is a creative
process:
individual skills and experience is
significant
77
Shortcomings of ISO 9001
Certification (5)
Many areas of software development
are very specialized:
special expertize and experience
(domain expertize) required.
ISO 9001
does not automatically lead to
continuous process improvement,
does not automatically lead to TQM.
78
Shortcomings of ISO 9001
Certification (6)
ISO 9001 addresses mostly management
aspects.
Techniques specific to software development
have been ignored
Configuration management
Reviews
Release builds
Problem Notification system
Intranets
79
SEI Capability Maturity
Model
Developed by Software Engineering
Institute (SEI) of the Carnegie
Mellon University, USA:
to assist the U.S. Department of
Defense (DoD) in software acquisition.
The rationale was to include:
likely contractor performance as a factor
in contract awards.
80
SEI Capability Maturity
Model
Major DoD contractors began CMM-
based process improvement initiatives:
as they vied for DoD contracts.
SEI CMM helped organizations:
Improve quality of software they developed
Realize adoption of SEI CMM model had
significant business benefits.
Other organizations adopted CMM.
81
SEI Capability Maturity
Model
In simple words,
CMM is a model for apprising the
software process maturity of a
contractor into different levels.
Can be used to predict the most likely
outcome to be expected from the next
project that the organization
undertakes.
82
SEI Capability Maturity
Model
Can be used in two ways:
Capability evaluation
Software process assessment.
83
Capability Evaluation
84
Software Process
Assessment
Used by an organization to assess
its current process:
Suggests ways to improve the
process capability.
This type of assessment is for
purely internal use.
85
SEI Capability Maturity
Model
The SEI CMM classifies software
development industries into:
Five maturity levels.
Stages are ordered so that improvements
at one stage provide foundations for the
next
Based on the pioneering work of Philip
Crosby
86
SEI Capability Maturity
Model
Optimizing (5)
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
87
Level 1: (Initial)
Organization operates
without any formalized process or
project plans
An organization at this level is
characterized by
ad hoc and often chaotic activities.
88
Level 1: (Initial)
Software production processes are
not defined,
different engineers follow their own
process
development efforts become chaotic.
The success of projects depend on
individual efforts and heroics.
89
Level 2: (Repeatable)
Basic project management practices
tracking cost, schedule, and
functionality are followed.
Size and cost estimation techniques
function point analysis, COCOMO, etc.
used.
Production process is ad hoc
not formally defined
also not documented.
90
Level 2: (Repeatable)
91
Level 3: (Defined)
Management and
development activities:
defined and documented.
Common organization-wide
understanding of activities,
roles, and responsibilities.
92
Level 3: (Defined)
93
Level 4: (Managed)
94
Level 4: (Managed)
95
Level 5: (Optimizing)
97
Key Process Areas
98
Level 2 KPAs
99
Level 3 KPAs
100
Level 4 KPAs
Quantitative measurements
Process management
101
Level 5 KPAs
Defect prevention
Technology change management
Process change management
102
Comparison between ISO 9001
and SEI CMM
103
Comparison between ISO 9001
and SEI CMM
104
Comparison between ISO 9001
and SEI CMM
106
Small Organizations
107
Small Organizations
108
Small Organizations
109
Personal Software Process
(PSP)
Based on the work of Humphrey
PSP is a scaled down version of industrial
software process
suitable for individual use
Even CMM assumes that engineers use
effective personal practices
110
Personal Software Process
(PSP)
A process is the set of steps for doing a
job
The quality and productivity of an
engineer
largely determined by his process
PSP is framework that
helps software engineers to measure and
improve the way they work.
111
Personal Software Process
(PSP)
Helps developing personal skills and
methods
Estimating and planning method
Shows how to track performance against
plans
Provides a defined process
can be fine tuned by individuals
Recognizes that a process for individual use is
different from that necessary for a team project.
112
Time Management
Planning
Design
Code Logs
Compile
Test Project plan
Postmortem
summary
114
PSP-Planning
Problem definition
Estimate max, min, and total LOC
Determine minutes/LOC
Calculate max,min, and total development
times
Enter the plan data in project plan
summary form
record the planned time in Log
115
PSP-Design
Design the program
Record the design in specified format
Record the Design time in time recording
log
116
PSP-Code
Implement the design
Use a standard format for code text
Record the coding time in time recording
log
117
PSP-Compile
Compile the program
Fix all the defects
Record compile time in time recording log
118
PSP-Test/Postmortem
Test
Test the program
Fix all the defects found
Record testing time in time recording log
Postmortem
Complete project plan summary form with
actual time and size data
Record postmortem time in time record
119
Personal Software Process
(PSP)
121
Six Sigma
To achieve six sigma
a process must not produce more than 3.4
defects per million opportunities.
5 Sigma -> 230 defects per million
4 Sigma -> 6210 defects per million
Six sigma methodologies
DMAIC (Define, Measure, Analyze, Improve,
Control)
DMADV: (Define, Measure, Analyze, Design,
Verify) 122
Six Sigma Methodologies
123
Summary
Evolution of quality system:
product inspection
quality control
quality assurance
total quality management (TQM)
Quality paradigm change:
from product to process
124
Summary
ISO 9000:
basic premise:
if a good process is followed
good products are bound to follow
provides guidelines for
establishing a quality system.
125
Summary
ISO 9000
series of three standards
9001, 9002, and 9003
9001 is applicable to software
industry
126
Summary
SEI CMM
developed specially for software
industry
classifies software organizations
into five categories.
According to the maturity of their
development process.
127
Current Trends