Lecture 2 SQE
Lecture 2 SQE
Engineering
Spring 2022
Muhammad Usman
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
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
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?
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.
QUALITY ASSURANCE
Defect Containment
◦ Software Fault Tolerance
◦ Software fault tolerance is the ability for software to
detect and recover from a fault that is happening or has
already happened in either the software or hardware in
the system in which the software is running in order to
provide service in accordance with the specification.
◦ Fault Containment
◦ Fault containment to prevent propagation of the failure –
Some failures can cause a system to fail by propagating
the failure to the rest of the system.
SOFTWARE QUALITY ASSURANCE
SQA Team
SQA Plan
Software Review
SQA TEAM
Testing Manager
Test Team Lead
Test Analyst
Tester
SQA PLAN