Software Quality Assurance -
Outline
What is Software Quality assurance(SQA)?
Quality Concepts.
Software Quality Assurance Activities.
Software Reviews and their importance
Statistical SQA.
Software Reliability
ISO 9000 approach to SQA
Suraj Yadav 2
What is SQA?
Software Quality Assurance is an umbrella
activity that is applied throughout the
software process...
Suraj Yadav 3
It encompasses..
A quality management approach
Effective software engineering technology
Formal technical reviews that are applied
throughout the software process
A multitiered testing strategy
Control of software documentation and
changes to it
A procedure to assure compliance with
software development standards
Measurement and reporting techniques
Suraj Yadav 4
Quality ???
Quality refers to any measurable
characteristics such as correctness,
maintainability, portability, testability,
usability, reliability, efficiency, integrity,
reusability and interoperability.
Suraj Yadav 5
Quality Concepts
Quality of Design refers to the characteristics that
designer’s specify for an item.
Quality of Conformance is the degree to which the
design specifications are followed during
manufacturing.
Quality Control is the series of inspections,
reviews and tests used throughout the
development cycle to ensure that each work
product meets the requirements placed upon it.
Suraj Yadav 6
(cont'd)...
Quality policy refers to the basic aims and
objectives of an organization regarding quality as
stipulated by the management.
Quality assurance consists of the auditing and
reporting functions of management.
Cost of Quality includes all costs incurred in the
pursuit of quality or in performing quality related
activities such as appraisal costs, failure costs and
external failure costs.
Suraj Yadav 7
(cont'd)...
Quality planning is the process of assessing the
requirements of the procedure and of the product
and the context in which these must be observed.
Quality testing is assessment of the extent to which
a test object meets given requirements
Quality assurance plan is the central aid for
planning and checking the quality assurance.
Quality assurance system is the organizational
structure, responsibilities, procedures, processes and
resources for implementing quality management.
8
Suraj Yadav
Relative cost of correcting an error
Suraj Yadav 9
Defn. of Software Quality Assurance
Conformance to explicitly stated functional
and performance requirements, explicitly
documented development standards, and
implicit characteristics that are expected of
all professionally developed software.
Suraj Yadav 10
SQA Group Plan
Evaluations to be performed
Audits and reviews to be performed
Standards that are applicable to the project
Procedures for error reporting and tracking
Documents to be produced by the SQA group
Amount of feedback provided to software
project team
Suraj Yadav 11
SQA Group Activities
Participates in the development of the
projects software process description
Reviews software engineering activities to
verify compliance with the defined software
process.
Audits designated software work products
to verify compliance with those defined as
part of the software process.
Suraj Yadav 12
(cont'd)...
Ensures that deviations in software work
and work products are documented and
handled according to a document procedure.
Records any non-compliance and reports to
senior management.
Suraj Yadav 13
Software Reviews
‘Filter’ for the software engineering process
‘Purify’ the software work products that
occur as a result of analysis, design, and
coding.
Achieve technical work of more uniform,
greater and more predictable quality.
Detect errors and problems at the earliest
possible time.
Suraj Yadav 14
Formal Technical Reviews
To uncover errors in function, logic, or
implementation for any representation of the
software
To verify that software meets its requirements
To ensure that software representation meets
predefined standards
To achieve software development in a uniform
manner
To make projects more manageable
Suraj Yadav 15
Defect Amplification Model
Defects Detection
Errors Passed
Percent
Errors Through
From Error
Previous Amplified errors 1: X efficiency for passed
step to next
Newly Generated error detection step
Errors
Development Step
Suraj Yadav
Defect Amplification with No
Reviews
Suraj Yadav
Defect Amplification Model
With Review
Suraj Yadav
Cost Comparison of Error Repair
Suraj Yadav
Review Guidelines..
Review the product, not Limit the number of
producer participants and insist
Set an agenda and upon advance
maintain it preparation
Limit the debate Develop a checklist for
Enunciate problem each work product to be
areas, not to solve every reviewed
problem noted Training for all
Take written notes reviewer’s
Allocate resources and Reviewing earlier
time schedule for FTR’s reviews
Suraj Yadav 16
Additional Structures
Requirements Control Board
All requirement changes must be formally
reviewed and approved
Software Control Board
Alldesign changes must be formally reviewed
and approved
Interface Control Board
Suraj Yadav
Statistical Quality Assurance
Implies information about software defects
is collected and categorized
An attempt is made to trace each defect to
its underlying cause
Isolate the vital few causes of the major
source of all errors
Then move to correct the problems that
have caused the defects
Suraj Yadav 17
Statistical SQA
• collect information on all
defects
Product • find the causes of the
& Process defects
• move to provide fixes for
the process
measurement
... an understanding of how
to improve quality ...
Suraj Yadav
Categories of Errors
Incomplete or erroneous specification (IES)
Misinterpretation of customer comm (MCC)
Intentional deviation from specification (IDS)
Violation of programming standards (VPS)
Error in data representation (EDR)
Inconsistent module interface (IMI)
Error in design logic (EDL)
Suraj Yadav
Categories of Errors (cont'd)
Incomplete or erroneous testing (IET)
Inaccurate or incomplete documentation (IID)
Error in programming lang. Translation (PLT)
Ambiguous or inconsistent human-computer
interface (HCI)
Miscellaneous (MIS)
Most often IES, MCC and EDR are the vital
few causes for majority of errors.
Suraj Yadav
Definitions
Ei = the total number of errors uncovered
during the ith step in the software
engineering process
Si = the number of serious errors
Mi = the number of moderate errors
Ti = the number of minor errors
PS = size of the product (LOC, design
statements, pages of documentation)
Suraj Yadav 18
error index
Phase index for each step and then error
index is calculated
PIi = ws(Si/Ei)+wm(Mi/Ei)+wt(Ti/Ei)
Formula:
(iXPI ) / PS
i
( PI 1 2 PI 2 3 PI 3 iPIi ) / PS
Suraj Yadav 19
Software Reliability
Defined as the probability of failure free operation
of a computer program in a specified environment
for a specified time.
It can measured, directed and estimated
A measure of software reliability is mean time
between failures where
MTBF = MTTF + MTTR
MTTF = mean time to failure
MTTR = mean time to repair
Suraj Yadav 20
Software Availability
Availability =MTTF/(MTTF + MTTR) * 100%
Software availability is the probability that a
program is operating according to requirements at
a given point in time
Suraj Yadav 21
Software Safety
Processes that help reduce the probability
that critical failures will occur due to SW
Hazard analyses
Identify hazards that could call failure
Develop fault tree
Identify all possible causes of the hazard
Formally review the remedy for each
Redundancy
Require a written software safety plan
Require independent verification & validation
Suraj Yadav
Example Fault Tree -- Thermal
Loss of heat
...
Power failure Computer failure Incorrect SW failed
to throw
input
switch
Computer failure SW failed
to throw
switch
... Logic reversed
Suraj Yadav
Software Safety
Redundancy
Replicated at the hardware level
Similar vs.. dis-similar redundancy
Verification
Assuring that the software specifications are met
Validation
Assuring that the product functions as desired
Independence
Suraj Yadav
Overview of SQA Plan
Purpose of Plan Tools, Techniques and
References Methodologies
Management Code Control
Documentation Media Control
Standards, Practices and Supplier control
Conventions Records Collection,
Reviews and Audits Maintenance and
Test Retention
Problem Reporting and Training
Corrective action Suraj Yadav Risk Management 22
ISO 9000 Quality Standards
ISO 9000 describes quality assurance elements in
generic terms that can be applied to any business.
It treats an enterprise as a network of
interconnected processes.
To be ISO-complaint processes should adhere to
the standards described.
Elements include organizational structure,
procedures, processes and resources.
Ensures quality planning, quality control, quality
assurance and quality improvement. 23
Suraj Yadav
ISO 9001
An international standard which provides
broad guidance to software developers on
how to Implement, maintain and improve a
quality software system capable of ensuring
high quality software
Consists of 20 requirements...
Differs from country to country..
Suraj Yadav 24
ISO 9001 (cont'd)..requirements
Management Control of customer
responsibility supplied product
Quality system Product identification
Contract review and traceability
Design Control Process control
Document and data Inspection and testing
control Control of inspection,
Purchasing measuring and test
equipment
Suraj Yadav 25
ISO 9001 (cont'd)..
Inspection and test Control of quality
status records
Control of non- Internal quality audits
confirming product Training
Corrective and Servicing
preventive action
Statistical techniques
Handling, storage,
packaging,
preservation and
delivery
Suraj Yadav 26
Summary-
SQA must be applied at each step
SQA might be complex
Software reviews are important SQA activities
Statistical SQA helps improve product quality
and software process
Software Safety is essential for critical systems
ISO 9001 standardizes the SQA activities
Suraj Yadav 27