Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 32

SOFTWARE QUALITY

ASSURANCE
Outcome of this course
 Upon successful completion of this course, you
will accomplish the following objectives and
outcomes.
 To discover and learn various concepts and techniques
related to software quality assurance
 To learn to apply these techniques
 To develop critical thinking skills
 Defining quality assurance plans
 Applying quality assurance tools & techniques, etc.
Reference Material
 Software Quality Engineering
Testing, Quality Assurance and Quantifiable Improvement
Jeff Tian

 Handbook of Software Quality Assurance


Fourth Edition
G. Gordon Schulmeyer

 Handouts
Course Outline

Course Contents – Pre Mid


Lecture 1 Introduction to SQA
Lecture 2 Role of SQA in SDLC
Lecture 3 Software Quality Management
Lecture 4 Verification & Validation
Lecture 5 Software Auditing
Lecture 6 Software Testing - I
Lecture 7 Software Testing - II
Course Outline (Cont….)

Course Contents – Post Mid


Lecture 08 Software Testing Life Cycle (STLC)
Lecture 09 Requirements Engineering
Lecture 10 Software Inspection & Formal Technical Review
Lecture 11 Software Quality Metrics
Lecture 12 SQA in Agile Development
Lecture 13 Introduction of Testing Tool (Guest Lecture)
Lecture 14 Course Recap
LECTURE # 1

INTRODUCTION TO SQA
Today’s Plan
 What is Quality
 What is Software Quality Assurance
 Failure, Faults and Errors
 QA versus QC
 Defect Prevention and Detection
 Benefits of SQA
What is Software?
 Software – IEEE definition :
 computer programs
 procedures
 possibly associated documentation
 data pertaining to the operation of computer system.

 All four components are needed in order to assure


the quality of the software development process.
Quality - Definitions
 Quality is the degree to which an object satisfies a
specified set of attributes or requirements.
 Attributes and degree of conformance.
 “How good or bad something is”
Merriam-Webster
 “Level of excellence”
Wiktionary
Quality - Definitions
Software Quality is conformance to:
 explicitly stated functional and performance

requirements,
 explicitly documented development standards,

 implicit characteristics that are expected of all

professionally developed software.


Problems with Software Quality
 Software specifications are usually incomplete and often inconsistent
 There is tension between:
 customer quality requirements (efficiency, reliability, etc.)

 developer quality requirements (maintainability, reusability, etc.)

 Some quality requirements are hard to specify in an unambiguous


way
 directly measurable qualities (e.g., errors/KLOC),

 indirectly measurable qualities (e.g., usability).

Quality management is not just about reducing defects!


Quality – Simple sense
What is Quality Assurance
 It is a system of activities designed to ensure
production that meets pre-established requirements
and standards.
 It monitors and tries to improve the
development process from the beginning of
the project.
What is Quality Assurance
(cont…)
 It makes sure that the project will be completed
based on the previously agreed
 specifications
 standards and
 functionality required
without defects and possible problems
Errors, Faults and Failures
The IEEE Standard 610.12 (IEEE 1990) defines the
following terms related to defects.

Failure: The inability of a system or component to


perform its required functions within specified
performance requirements.
Fault: An incorrect step, process or data definition in a
computer program.
Error: A human action that produces an incorrect result.
Defect related concepts & relations
Defect related concepts & relations
The input to the software development activities,
depicted in the left box of the previous figure, include
 Conceptual models and information
 Developers with certain knowledge and experience
 Reusable software components
Defect related concepts & relations
In the middle box, the artifacts of the software system
are shown. It includes:
 Software code
 Design specifications
 Requirements document
The faults scattered among these artifacts are
depicted as circled entities.
Defect related concepts & relations
 The errors as missing or incorrect human actions
are not directly depicted within one box, but rather
as actions leading to the injection of faults in the
middle box because of some error sources in the
left box.
 The right box shows usage scenarios and execution
results. It describes expected dynamic behavior and
output and the overall results.
Defect related concepts & relations
The relationship among three aspects of defects is

 Errors may cause faults and faults may cause


failures.
 This relationship is not necessarily 1-to-1.
 A single error may cause many faults and a single
fault may cause many failures.
 Conversely, the same failure may be caused by
several faults and same fault may be caused by
many errors.
Defect related concepts & relations
 Examples
 e3 causes multiple faults f2 and f3.
 f1 is caused by multiple error sources e1 and e2.
 Sometimes an error source (e5) may not cause any
fault and a fault (f4) may not cause any failure under
the given scenario. Such faults are called dormant or
latent faults.
Why should we strive for Quality?
 Historical software failures
 First launch of space shuttle
 Airbus 320
 Y2K
 AT&T telephone network etc.
 Have you ever strived for Quality?
 How do you perceive Quality?
 Who should be responsible for the Quality?
Quality is everybody’s job, but because it is everybody’s
job, it can become nobody’s job
Quality : Consumer side
 Fit for use
The software should perform
right functions as specified.
 Perform functions reliably

The software should perform


specified functions correctly over repeated use or
over a long period of time.
 Ease of use (usability) and ease of installation
Quality : Producer side
 Fulfill their contractual obligations
Software should conform to functional
specifications.
 Proper selection
For quality, they should have proper choice of
software methodologies, languages and tools.
 Maintainability and usability
Different views of Quality
Quality Facts
 Quality does not happen by chance.
 The commitment to quality includes the use of
careful development processes.
 Quality requires on ongoing commitment by all
parties (management, designers, developers).
 Quality control must be embedded into the process.
 Quality cannot be built into a product after the
development.
Difference b/w QA & QC – Just for fun

I was shocked today when I heard my


neighbor telling his son the difference
between Email and Gmail. He said Email is
when you use Electricity to send mail while
Gmail is when you use Generator to send
mail. I'm still struggling to catch my
breath!!
QA versus QC

Quality Assurance Quality Control


 Preventive  Detective
 Proactive  Reactive
 Focus on everything to  Focus on defect free
prevent defect product
 Auditing, reporting, data  Inspection, review, testing
analysis
Factors affecting defect detection in software
products vs. other industrial products
Benefits of Quality Software
 From Customer’s perspective
 Customer satisfaction
 Improved software reliability
 Reduced errors during software operation
 Matching the customer’s requirement
 From Organization’s perspective
 Customer’s requirements are met
 Stability of requirements
 Processes are applied in consistent manner
 Process is improved over time
Review Questions
1. There are three major differences between
software products and other industrial products.
 Identify and describe the differences

2. A software system comprises four main


components.
 List the four components of a software system.
Class ahead

Role of SQA in SDLC

You might also like