Software Quality Assurance
(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
It is very difficult to define quality in isolation             6
You can create some thing and it can be worthless but not the
quality
Marketability of Quality
• Everyone claims to manufacture / develop / sell / market
  “good” quality products / services
• You will never come across a person or company selling
  products or services as low or poor quality products, even
  when they are
• Why Quality is Important?
  • Why business should be concerned with quality:
     •   Quality is competitive issue now
     •   Quality is a must for survival
     •   Quality gives you the global reach
     •   Quality is cost effective
     •   Quality helps retain customers and increase profits
     •   Quality is the hallmarks of world-class business      7
Software Quality
• Difficult to define
  • Software quality is somewhat like the concept of
    beauty. Each of us has a strong opinion about what
    constitutes beauty, and we recognize it when we see
    it. But when asked to explain exactly why we regard an
    object as beautiful, it is hard to put the factors into
    words
                                                              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