Professional Documents
Culture Documents
NTU SQE Lecture 2
NTU SQE Lecture 2
Engineering
(SEC-3073)
Fall 2021
Quality
Quality Engineering
Quality Types
Quality Control vs Quality Assurance
Different views of Quality
Quality Models
Cost of Quality
SOFTWARE QUALITY ENGINEERING
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 QUALITY ENGINEERING
WHAT IS QUALITY?
SOFTWARE QUALITY ENGINEERING
QUALITY ENGINEERING?
Software quality assurance (SQA) refers to
the means of monitoring the software
engineering processes and methods used to ensure
quality of the product.
SOFTWARE QUALITY ENGINEERING
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 QUALITY ENGINEERING
QUALITY TYPES?
Functional Quality – a measure of what the
software does vs. what it’s supposed to do.
Cost of Quality
◦ Prevention cost
◦ Appraisal cost or Inspection cost
◦ Failure cost
SOFTWARE QUALITY ASSURANCE
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.
◦ Examples:
improvements in development processes,
workers training,
quality engineering,
etc.
SOFTWARE QUALITY ASSURANCE
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
maintaining a team of inspectors.
◦ It may be very costly for some organizations.
SOFTWARE QUALITY ASSURANCE
COST OF QUALITY
Failure cost
◦ Internal failure cost:
The costs that are incurred to remove defects from the
products before shipping them to customers.
◦ Examples: cost of rework, rejected products, scrap etc.
SOFTWARE QUALITY ASSURANCE
COST OF QUALITY
Failure cost
◦ External failure cost:
If defective products have been shipped to customers,
external failure costs arise.
◦ The delivery of defective products results in
dissatisfaction of the customers, damage goodwill and
reduce sales and profits.
◦ Examples: reanalysis, redesign, redevelopment,
payment for damages arising from the use of defective
products etc.
QUALITY ASSURANCE
Defect Containment
CLASSIFICATION SCHEME FOR QUALITY ASSURANCE
Defect Prevention
◦ Process conformance and standards enforcement
◦ Tools/technologies and techniques
◦ Education and training
CLASSIFICATION SCHEME FOR QUALITY ASSURANCE
Defect Reduction (Defect Detection and Removal)
Static Testing
◦ Static Testing is a type of testing in which the code is not
executed.
◦ This type of testing checks the code, requirement
documents, design documents and puts review
comments on the work document.
◦ It can be done on work documents like requirement
specifications, design documents, source code, test
plans, test scripts and test cases, web page content.
CLASSIFICATION SCHEME FOR QUALITY ASSURANCE
Defect Reduction (Defect Detection and Removal)
Dynamic Testing
◦ Dynamic testing is done when the code is in operation mode.
◦ Dynamic testing is performed in runtime environment. When
the code being executed is input with a value, the result or
the output of the code is checked and compared with the
expected output.
Unit Testing: Testing of individual modules by developers. The
source code is tested in it.
Integration Testing: Testing the interface between different modules
then they are joined.
System Testing: Testing performed on the system as a whole.
Acceptance Testing: Testing done from user point of view at user’s
end.
CLASSIFICATION SCHEME FOR 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
SQA/Testing Manager
SQA/Test Team Lead
SQA/Test Analyst
SQA/Tester
SQA PLAN