You are on page 1of 33

Software Quality


SEN-269 : Software Engineering

Tazeen Muzammil
What is Quality
• The term 'quality' is often used in a vague,
blurred way. If someone talks about 'working on
quality', they may simply mean activities
designed to improve the organization and its
• Quality is about:
– Knowing what you want to do and how you want to
do it. Learning from what you do.
– Using what you learn to develop your organization
and its services.
– Seeking to achieve continuous improvement.
– Satisfying your stakeholders - those different people
and groups with an interest in your organization.
Why Quality Matters?
Increasing complexity of software product
Increasing demand for software products
Increasing lifetime of software products
Increasing use of "Safety Critical" or
"Mission Critical" software

Software Quality
Software Quality is defined as Conformance to:
1. explicitly stated functional and performance
2. explicitly documented development standards,
3. and implicit characteristics that are expected
of all professionally developed software.

In the context of software engineering,

software quality measures how well software
is designed (quality of design), and how well
the software conforms to that design (quality
of conformance).

What is Quality Control?
Quality Control is the process of developing systems that ensures
that products or services are designed and produced to meet or
exceed customer requirements, and expectations.
Key concept of quality control:
Is to ensure that the products, services, or processes provided
meet specific requirements and are dependable, satisfactory,
and fiscally sound.
Implementation approaches:
- Fully automated
- Entirely manual
- Combination of automated tools and human interactions
What is Software Quality
Software Quality Assurance (SQA) is defined as a planned and
systematic approach to the evaluation of the quality of the
software product standards, processes, and procedures.

SQA includes the process of assuring that standards and

procedures are established and are followed throughout the
software acquisition life cycle.

Goal --> provide management with the necessary data about

product quality.
--> gain the insight and confidence of product quality
Software Quality
The most popular tool used to determine quality
assurance is the Shewhart Cycle, developed by
Dr. W. Edwards Deming.
This cycle for quality assurance consists of four
steps: Plan, Do, Check, and Act. These steps are
commonly abbreviated as PDCA.
ISO 9001:2000 was developed in line with the
long-used Shewhart cycle of process or project
management; Plan, Do, Check, Act, referred to in
ISO 9004 as Plan, Implement, Check, Review.

Plan, Do, Check, Act

Plan; adhering to the company mission and vision, the management

sets objectives based on information gathered through the quality
system (customer feedback, management reports, etc.)
Do; the product is produced or the service delivered in accordance
with the customers requirements.
Check; was it done right? Obtain information from the customer and
the organization to measure and monitor performance.
Act; “freeze” successful activities and improve less successful ones.
This step is the key to continual improvement.

Quality Consulting

What is Software Quality
Software Quality Engineering is composed of two primary activities
Process level quality

1. Process level quality is normally

Product level quality

1. Product oriented quality is

called quality assurance.
normally called testing
2. Process level quality establishes
the techniques, procedures, and 2. Product level quality
tools that help promote, focuses on ensuring that
encourage, facilitate, and create the software delivered is
a software development as error-free as possible,
environment in which efficient, functionally sound, and
optimized, acceptable, and as meets or exceeds the real
fault-free as possible software user’s needs. Testing is
code is produced.
normally done for finding
errors in order to get rid
of them.
Cost of Quality
Cost of quality includes all costs incurred in the pursuit of quality or
in performing quality related activities
Quality cost includes:
Prevention cost:
quality planning
formal technical reviews
testing equipment
Appraisal cost: Include activities to gain insight into product
condition the “first time through” each process.
in-process inspection
equipment calibration and maintenance

Cost of Quality
Failure cost:
internal failure cost: Internal failure cost are incurred when we
detect a defect in our product prior to shipment
failure mode analysis
external failure cost: External failure costs are is associated with
defects found after the product has been shipped to customer.
complaint resolution
product return and replacement
help line support
warranty work
The relative cost to find and repair a defect increases dramatically as we
go from prevention to detection to internal failure to external failure cost.
(See fig: Relative cost of correcting an error)

SQA Activities
Prepare SQA plan for the project.
The plan identifies:
Participate in the development of the project's software process
•Evaluation to be performed.
The software team selects a process. The SQA group reviews
Review software engineering activities to verify compliance with
•Audits and reviews to be performed.
the process description
defined software for compliance with organizational
•Standards that are applicable to the project.
Audit SQAinternal
designated software standards,
products externally
to and imposed
verify deviations
with those
from (E.g. ISO-9001),
the process as part
and and
of the
verifies other
that parts of have
•Procedures for error reporting and tracking. the software
Ensure that
project plan.any deviations in software or work products are
•Documents to be produced by the SQA group.
The SQA group
documented identifies,
and handled documents,
according and tracksprocedure.
to a documented deviations
Recordthe process and
of verifies that corrections
•Amount of feedback provided to the software
any evidence noncompliance and reportshave
Made; and periodically reports the result of its work to the
project team.
project manager.
Deviation may be encountered in the project plan, process
description, applicable standards, or technical work products.

Non-compliance items are tracked until they are resolved.

Software Reviews
Objective: find errors early before they become defects.
Excellent ROI: empirical data show that design activities
introduce 50-65 % of errors, but formal reviews can
detect up-to 75 % of those.
Reviews are made to
Uncover errors.
Ensure that software meets requirements and standards.
Ensure that software and the process is manageable.
Using formal technical reviews (walkthroughs or
inspections) is an effective means for improving software

Review Roles
Presenter (designer/producer).
Coordinator (not person who hires/fires).
records events of meeting
builds paper trail
maintenance oracle (vision)
standards bearer
user representative

Reviews (Walkthroughs)
In the review process, the producers present a
product (part of the software, e.g. a code module
or a design model) which is then reviewed by

Records should be kept about the reviews. This

includes lists of issues discovered.

A follow-up procedure must be in place to correct


Defect Amplification

Defect amplification models can be used to

illustrate the importance of detecting defects
in an early stage. They are a simple
mathematical model for describing how
defects are propagated through the various
steps in the SD process.

Defect amplification,
no review

Defect amplification,
Reviews conducted

Defect Causes
IES: Incomplete and erroneous specification. Example: customer
"forgets" an interface to an existing system.
MCC: Misinterpretation of customer communication. Example:
Customer means one thing, analyst understands something
IDS: Intentional derivation from specification. Example: Analyst
or programmer things he knows better.
VPS: Violation of Programming Standards. Example: Tools are
used which rely on naming patterns (e.g. bean tools), but the
code does not adhere to those patterns.
EDR: Error in Data Representation. Example: wrong container
types are used, e.g. containers which support duplicates, but
this is not permitted in the business logic.
ICI: Inconsistant Component Interface. Example: component
interface does not support all parameters needed to customize
the component.

Defect Causes
EDL: Error in design logic. Example: wrong algorithm
IET: Incomplete and erroneous testing. Example: there are
errors in the test cases itself, and the code is correct w.r.t.
the incorrect test cases.
IID: Inaccurate and incomplete documentation. Example:
the meaning of an API method is incorrectly (or not)
documented, and programmers in a team using this
component pass the wrong parameter to this component.
PLT: Error in PL translation of design. Example: classes
design to be abstract are implemented as concrete classes
and instantiated.
HCI: Ambiguous or inconsistent human computer interface.
Example: different meaning of the same key stroke or
menu function in different contexts.
MIS miscellaneous.

Formal Technical Reviews
Involves 3 to 5 people (including reviewers)
Advance preparation (no more than 2 hours
per person) required
Duration of review meeting should be less
than 2 hours
Focus of review is on a discrete work product
Review leader organizes the review meeting
at the producer's request.

Formal Technical Reviews
Reviewers ask questions that enable the
producer to discover his or her own error (the
product is under review not the producer)
Producer of the work product walks the
reviewers through the product
Recorder writes down any significant issues
raised during the review
Reviewers decide to accept or reject the work
product and whether to require additional
reviews of product or not.

Why do peer reviews?
To improve quality.
Catches 80% of all errors if done
Catches both coding errors and
design errors.
Enforce the spirit of any
organization standards.
Training and insurance.
Review Guidelines
Keep it short (< 30 minutes).
Don’t schedule two in a row.
Don’t review product fragments.
Use standards to avoid style
Let the coordinator run the
meeting and maintain order.

SQA Plan
Management section
describes the place of SQA in the structure of
the organization
Documentation section
describes each work product produced as part
of the software process
Standards, practices, and conventions
lists all applicable standards/practices applied
during the software process and any metrics to
be collected as part of the software
engineering work

SQA Plan
Reviews and audits section
provides an overview of the approach
used in the reviews and audits to be
conducted during the project
Test section
references the test plan and
procedure document and defines test
record keeping requirements

SQA Plan
Problem reporting and corrective action
defines procedures for reporting, tracking,
and resolving errors or defects, identifies
organizational responsibilities for these
tools, SQA methods, change control, record
keeping, training, and risk management