Software Quality Assurance (SE 493-3) : Lecture # 1 Adnan Bashir
Software Quality Assurance (SE 493-3) : Lecture # 1 Adnan Bashir
(SE 493-3)
Lecture # 1
Adnan Bashir
1
Introduction
• This course deals with a very important aspect of software
engineering: quality assurance of software products and
services
• We’ll learn different aspects of software quality assurance in
this course
• World economy is moving towards automation approximately $
500 Billion.
• We should know different technique as well as aspects of
research and practices of software Quality in software
engineering profession.
2
Introduction
• In the first few lectures, we will discuss what software quality
is and how it impacts the development of the software
development and maintenance and other basic concepts in
SQA
• In the second phase of this course, we’ll discuss in detail the
activities and process in each phase of the software
development lifecycle, as they relate to software quality
assurance
• Software quality assurance in not only deal with programming
3
Introduction
• In the third part of this course, we’ll discuss different topics or
processes related to software quality assurance. We’ll look at
quality assurance processes, some of the major process
improvement programs from the quality assurance’
perspective
• We can’t improve the quality without changing the fundament
way of developing technique the process
• We’ll also study some other topics, given our time constraints
4
What is Quality?
• Can you define quality?
• You must be thinking, what kind of question is that. It is very
easy to define quality, but if you think really hard, it is not that
easy to define quality
• Have you come with a definition? Let’s see what I have in
store for you
5
Synonyms of Quality
• Excellence
• Superiority
• Class
• Eminence
• Value
• Worth
Antonym of Quality
• Inferiority
8
What is Software?
• According to the IEEE Software is: “Computer
programs, procedures, and possibly associated
documentation and data pertaining to the
operation of a computer system”.
9
Software Quality
• According to the IEEE
• Software quality is:
• The degree to which a system, component, or process
meets specified requirements.
• The degree to which a system, component, or process
meets customer or user needs or expectations.
• According to Pressman
• “Conformance to explicitly stated functional and
performance requirements, explicitly documented
development standards, and implicit characteristics that
are expected of all professionally developed software”.
10
Software Quality, Cont.…
• Quality as it relates to all aspects of software
(requirements / design / code / tests /
documents / training). – Project Management, Project
Planning, Configuration Management
• Good software quality characteristics can be identified
• Bad or undesirable characteristics can also be identified
• Software quality attributes
11
Software Quality Definitions
• Low levels of defects when deployed, ideally
approaching zero. (development strategies required)
• High reliability, or the capability of running
without crashes or strange results (after deployed)
• A majority of clients with high user-satisfaction
when surveyed (ultimate definition)
12
Software Quality Definitions, Cont.…
• A structure that can minimize “bad fixes” or
insertion of new defects during repairs
• Effective customer support when problems do
occur
• Rapid repairs for defects, especially for high-
severity defects
13
Importance of Software Quality
• Software is a major component of computer systems
• (about 80% of the cost) – used for
• communication (e.g. phone system, email system)
• health monitoring,
• transportation (e.g. automobile, aeronautics),
• economic exchanges (e.g. ecommerce)
• entertainment,
• etc.
• Software defects are extremely costly in term of
• money
• reputation
• loss of life 14
Importance of Software Quality
• Several historic disasters attributed to software
• 1988 shooting down of Airbus 320 by the USS
Vincennes cryptic and misleading output displayed by
tracking software
• 1991 patriot missile failure inaccurate calculation of
time due to computer arithmetic errors.
• London Ambulance Service Computer Aided Dispatch
System – several deaths
• On June 3, 1980, the North American Aerospace
Defense Command (NORAD) reported that the U.S.
was under missile attack.
15
Importance of Software Quality
• First operational launch attempt of the space shuttle,
whose real-time operating software consists of about
500,000 lines of code, failed synchronization problem
among its flight control computers.
• 9 hour breakdown of AT&T's long distance telephone
network caused by an untested code patch
16
Why Software Quality?
• Reduces time to market for new products
• Enhances market share compared to direct competitors
• Minimizes “scrap and rework” expenses
• Attracts and keeps “top-gun” personnel
• Minimizes the risk of serious litigation
17
Why Software Quality?
• Minimizes the risk of serious operating failures and delays
• Minimizes the risk of bankruptcy or business failures, which
may be attributed directly to poor quality or poor software
quality
18
Software Quality Assurance
• So the term software quality assurance would mean that the
software guarantees high quality
• Quality assurance (QA) is the definition of processes and
standards that should lead to high-quality products and the
introduction of quality processes into the development
process.
• Quality control is the application of these quality processes
to weed out (remove) products that are not of the required
level of quality
• The quality team should be independent from the
development team so that they can take an objective view of
the software.
• This allows them to report on software quality without being 19
influenced by software development issues.
Software Quality Challenges
• The measures for quality differ from project to project
and organization to organization
• Quality measures used for small systems may not be appropriate
for the large ones.
• Criteria for quality vary as a function of the specific
characteristics of the project, the needs of the users and
stakeholders, and the application requirements of the
system and software.
• Criteria for quality applied to real-time applications are not always
relevant when dealing with systems that are not real-time.
20
Software Quality Challenges
• Quality cannot be directly checked in the product; it must
planned right from the beginning.
• Complex Software requires different monitoring procedures
than trivial applications
• Quality criteria vary dramatically depending on the phase of
the project at which the evaluation takes place
• The measures of the quality must be specific to the project
being evaluated and must assess the effectiveness of the
entire development process, not just individual segments
21
Software Quality Challenges
• Quality goals must be clearly defined, effectively monitored,
and rigorously enforced
• The project must focus on the quality issues of the project
from the beginning, ensuring that quality criteria are
consistent with defined requirements.
• Quality must be planed into the project structure, constantly
evaluated, and corrections applied when deficiencies are
identified.
22