Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Software Quality

Engineering

Spring 2022

Muhammad Usman
COURSE OBJECTIVES

 The objective of the course is to introduce


fundamental notions of software system quality
and the techniques used to build and check quality
in software systems.
 A particular emphasis is placed on quantitative
assessment of software quality and quality control
using software testing techniques.
RECOMMENDED BOOKS
 Software Quality Engineering, by Jeff Tian

 Reference Books
 Software Quality Assurance by Nina S Godbole.
 Software Testing & Continuous quality
improvement, by William Lewis.
 The Art of Software Testing, by Glenford Myers.
 Software Testing and Quality Assurance, Theory
and Practice, by Kshirasagar Naik, Priyadarshi
Tripathy.
 Internet resources and Research papers
GRADING

 Assignments/Quizzes 20%
 Mid Term * 30%
 Final Exam * 50%
SOFTWARE QUALITY ASSURANCE
 Software Quality Assurance: is a set of activities for
ensuring quality in software engineering processes (that
ultimately result in the quality of software products).
 SQA Activities
◦ Process definition and implementation
◦ Auditing
◦ Training
 SQA Processes
◦ Software Development Methodology
◦ Project Management
◦ Configuration Management
◦ Requirements Management
◦ Estimation
◦ Software Design
◦ Testing, etc.
SOFTWARE SYSTEM QUALITY

 Quality
 Quality Engineering
 Quality Types
 Quality Control vs Quality Assurance
 Different views of Quality
 Quality Models
 Cost of Quality
SOFTWARE SYSTEM QUALITY
WHAT IS QUALITY?
 Quality, simplistically, means that a product
should meet its specification.
 Quality is problematical for software systems:
◦ There is a tension between customer quality
requirements (efficiency, reliability, etc.) and developer
quality requirements (maintainability, reusability, etc.);
◦ Some quality requirements are difficult to specify in an
unambiguous way;
◦ Software specifications are usually incomplete and often
inconsistent.
SOFTWARE SYSTEM QUALITY
WHAT IS QUALITY?
SOFTWARE SYSTEM QUALITY
QUALITY ENGINEERING?
 Software quality assurance (SQA) referes to
the means of monitoring the software
engineering processes and methods used to ensure
quality of the product.
SOFTWARE SYSTEM QUALITY
QUALITY ENGINEERING?
 Software quality assurance: demands to focus
on the following key issues:
◦ Perfection
◦ Consistency
◦ Eliminating waste
◦ Speed of delivery
◦ Compliance with policies & procedures
◦ Providing good, usable products
◦ Doing it right the first time
◦ Delighting or pleasing customers
◦ Total customer service & satisfaction
SOFTWARE SYSTEM QUALITY
QUALITY TYPES?
 Functional Quality – a measure of what the
software does vs. what it’s supposed to do.

 Non-Functional Quality – a measure of how


well it does vs. how well it’s supposed to do it.

 Latent Quality – a measure of how well it will


continue to do it in the future.
SOFTWARE SYSTEM QUALITY
QUALITY TYPES?
 Process quality
◦ Software processes implement best practices of software
engineering in an organizational context.
◦ Process quality expresses the degree to which defined
processes were followed and completed.
 Product quality
◦ Software products are the output of software processes.
◦ Product quality is determined by the degree to which the
developed software meets the defined requirements.
 Quality in use
◦ Quality in use addresses the degree to which a product is
fit for the purpose when exposed to a particular context
of use.
SOFTWARE SYSTEM QUALITY
DIFFERENT VIEWS OF QUALITY?
 Transcendental View
 User View
 Manufacturing View
 Product View
 Value based View
SOFTWARE SYSTEM QUALITY
DIFFERENT VIEWS OF QUALITY?
 Transcendental View
◦ Quality is something that can be recognized but it is very
difficult to define.
◦ Here we can say that the quality is something that can be
recognized through experience but is not defined in some
manageable form.
 User View
◦ Quality is fitness for purpose.
◦ According to this view, while evaluating the quality of the
product, one must ask the key question "Does the product
satisfy user needs and expectations?"
◦ It can thus be a highly personalized view. This view is often
measured by reliability, usability.
SOFTWARE SYSTEM QUALITY
DIFFERENT VIEWS OF QUALITY?
 Manufacturing View
◦ Quality is conformance to specification.
◦ It focuses on how well the product was manufactured or
constructed, in an effort to avoid the costs associated with
rework during development and after delivery.
◦ Defect counts and rework costs are two characteristics to
measure.
 Product View
◦ In this case, quality is viewed as tied to the inherent
characteristics of the product. A product's internal qualities
determine its external qualities.
◦ An example of the product view of software quality is that
high degree of modularity, which is an internal property,
makes a software testable and maintainable.
SOFTWARE SYSTEM QUALITY
DIFFERENT VIEWS OF QUALITY?
 Value based View
◦ Quality depends on the amount, the customer is willing
to pay for it.
◦ Software quality is customer satisfaction. Indeed
customer satisfaction should be a result of delivering a
quality product, but satisfaction can be influenced by
many things and is not the same as quality.
◦ Moreover, customers routinely are satisfied by poor
quality and not satisfied by high quality.
SOFTWARE SYSTEM QUALITY
QUALITY MODELS?
 Standard quality models
◦ McCall
◦ ISO/IEC 9126
◦ IEEE
 Application or company specific quality models
◦ FURPS
◦ GQM Approach
SOFTWARE SYSTEM QUALITY
COST OF QUALITY
 Prevention cost
◦ It is much better to prevent defects rather than finding
and removing them from the products.
◦ The costs incurred to avoid or minimize the number of
defects at first place are known as prevention costs.
◦ Some examples of prevention costs are improvement of
development processes, workers training, quality
engineering, etc.
SOFTWARE SYSTEM QUALITY
COST OF QUALITY
 Appraisal cost or Inspection cost
◦ The cost that is incurred to identify defective products
before they are shipped to customers.
◦ All costs associated with the activities that are performed
during manufacturing processes to ensure required
quality standards are also included in this category.
◦ Identification of defective products involves the
maintaining a team of inspectors.
◦ It may be very costly for some organizations.
SOFTWARE SYSTEM QUALITY
COST OF QUALITY
 Failure cost:
◦ Internal failure cost: are those costs that are incurred to
remove defects from the products before shipping them
to customers. Examples of internal failure costs include
cost of rework, rejected products, scrap etc.
◦ External failure cost: If defective products have been
shipped to customers, external failure costs arise.
◦ External failure costs include reanalysis, redesign,
redevelopment, payment for damages arising from the
use of defective products etc.
◦ The delivery of defective products can dissatisfy
customers, damage goodwill and reduce sales and
profits.

You might also like