2. Course Information
2
Introduction
The purpose of the course is to introduce fundamental notions of software
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.
Learning Outcomes
By the end of this course, students should have a good grasp of software
quality, Software Quality Assurance, Configuration management, Static
Testing techniques, White box testing and Black box testing techniques,
Software metrics and models, Debugging, Quality Management, Process
Improvement and Cleanroom Software Engineering.
3. Books and Resources
Software Quality Engineering, 6th
Edition by JeffTian
Software Engineering,A practitioner’s approach, 8th
Edition by Roger S.Pressman
4. Reference Books
4
RecommendedText Books
Software Quality Engineering by Jeff Tian,
ISBN# 0471713457
Reference Books
1. SoftwareTesting & Continuous quality improvement (2nd Edition) byWilliam
Lewis ISBN# 1420080733
2. The Art of SoftwareTesting (2nd Edition) Glenford Myers ISBN# 0471043281
3. Quality Software Project Management By RobertT.Futrell,Donald F.Shafer,
Linda I.Safer publisher:Prentice Hall
4. SoftwareTesting and Quality Assurance,Theory and Practice:2008,Kshirasagar
Naik,PriyadarshiTripathy
ISBN# 0471789119
6. Software Quality
6
Quality:
• Quality in software refers to the extent to which a product meets customer requirements,
expectations, and specifications.
• High-quality software ensures reliability, performance, usability, and customer satisfaction.
It minimizes defects and enhances user experience.
Quality Engineering
Quality Engineering is a discipline focused on integrating quality throughout the software
development lifecycle (SDLC).
KeyAspects:
Emphasizes proactive measures like process improvement, automation, and testing at every
stage of development.
Involves collaboration between developers, testers, and other stakeholders.
Goal: Ensure the delivery of high-quality software in an efficient and cost-effective manner.
7. Software Quality
QualityTypes
Product Quality: The attributes of the software product itself (e.g., functionality, reliability, and
performance).
Process Quality: The efficiency and effectiveness of the processes used to develop the software.
Quality Control vs Quality Assurance
Quality Control (QC):
A reactive process focused on identifying and fixing defects in the product after it has been developed.
Includes activities like testing, inspections, and bug fixing.
Quality Assurance (QA):
A proactive process that ensures quality by improving processes, standards, and practices during
development.
Aims to prevent defects rather than detect them later.
8. Software Quality
Different views of Quality
CustomerView: Quality means fulfilling customer needs and
expectations.
DeveloperView: Focuses on technical excellence,
maintainability, and adherence to standards.
BusinessView: Emphasizes cost-effectiveness, time-to-
market, and regulatory compliance.
UserView: Prioritizes usability, reliability, and performance.
9. Software Quality
Quality Models
ISO/IEC 9126 or ISO 25010: Frameworks for evaluating
software quality based on characteristics like functionality,
reliability, usability, and maintainability.
CMMI (Capability Maturity Model Integration): A
model for improving process quality in software development.
Six Sigma: A methodology for reducing defects and improving
processes.
Total Quality Management (TQM): An organization-wide
approach for continuous quality improvement.
10. What is quality?
04/12/2025
10
Quality, simplistically, means that a product should meet its
specification.
This 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.
11. Quality Engineering
11
Software quality assurance (SQA) consists of a means of
monitoring the software engineering processes and
methods used to ensure quality.
12. DEFINING QUALITY
04/12/2025
12
Perfection
Consistency
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
13. Quality Types
04/12/2025
13
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
it 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
15. Quality Assurance
15
Quality Assurance
Dealing with Pre- Post Release Defects
Classification Scheme for Quality Assurance
Defect prevention
Defect Reduction
Defect Containment
16. Software Quality Assurance
16
“All planned & systematic activities
implemented within quality system, &
demonstrated as needed, to provide
adequate confidence that an entity
will fulfill requirements for quality”.
17. Classification scheme for QA
04/12/2025
17
Defect Prevention
Education and training
Process conformance and standards enforcement
Tools/technologies and techniques
Defect Reduction (Defect Detection and Removal)
Static Testing (Examples: Code reviews, static analysis tools, and walkthroughs.)
Dynamic Testing(Examples: Unit testing, integration testing, system testing, and user acceptance testing.)
Defect Containment
Focuses on limiting the impact of defects that occur during execution or operation.
Techniques:
Software Fault Tolerance: Designing systems that can continue operating even when defects are
encountered. Examples: Redundancy, failover mechanisms, and error recovery techniques.
Fault Containment: Ensuring defects do not propagate or cause widespread issues in the system.
Examples: Modular design, isolating critical components, and implementing error-handling mechanisms.
19. SQA Team
04/12/2025
19
The Software Quality Assurance (SQA)Team is
responsible for ensuring that software development follows
quality standards, processes, and best practices.
SQA Engineers: Conduct testing, audits, and process
evaluations.
QA Analysts: Analyze requirements and ensure compliance.
Testers: Perform manual and automated testing.
Process Managers: Define and enforce software
development processes.
20. SQA Plan
04/12/2025
20
A Software Quality Assurance Plan is a document outlining the
procedures, techniques, and tools used to ensure software quality.
Provides a roadmap for quality assurance throughout the software
lifecycle.
Elements:
Quality objectives
Standards and guidelines
Testing and review processes
Roles and responsibilities
Risk management strategies
21. Software Reviews
04/12/2025
21
A systematic examination of software artifacts (e.g.,
requirements, design, code) to detect errors, ensure
compliance, and improve quality.
Types of Reviews:
Peer Reviews: Colleagues review each other's work.
Managerial Reviews: Project managers assess progress and
quality.
Audit Reviews: External auditors verify compliance with
standards.