Software Quality Engineering
(SEN453)
Dr. Abdul Rehman
Baloch
Assistant Professor,
FEST,
IQRA University, Karachi
Week # 1
Unit 1/3
Software Quality Engineering
2
Unit 1/3
Course Objective(s)
Course Contents
Book Title
Course Learning Outcomes (CLOs)
Mapping and Assessment
Grading Assessment / Grading Policy
Weekly Course Plan
Unit 2/3
What is Software
Software Engineering
Software Development Life Cycle SDLC
Testing Phase in SDLC
Mapping and Assessment
Grading Assessment / Grading Policy
Weekly Course Plan
Unit 3/3
Introduction to Quality Engineering
Why Software Quality Matters
Key Software Quality Attributes
Core Quality Engineering Activities
Week 01 -Software Quality Engineering - SEN453
Course Objective(s)
3
This course aims to provide students with a thorough
understanding of software quality metrics and models, alongside
software testing techniques and software reliability analysis. The
objectives include introducing quality assurance and quality control
techniques, developing QA and Test Plans, documenting and
reporting findings, and performing inspections and testing in
production environments.
Week 01 -Software Quality Engineering - SEN453
Course Contents
4
The Software Quality Engineering course, offered in Fall 2024, aims
to provide students with an in-depth understanding of the subject,
testing techniques, and reliability analysis. Throughout the semester,
students will explore various aspects of quality assurance, including
the development of QA and Test Plans, documentation, reporting,
and performing inspections and tests. The course content includes
foundational texts in the books.
Students will engage with topics ranging from topic attributes, testing
lifecycles, strategies, and techniques, to reliability models, quality
models, and system testing.
Assignments, projects, quizzes, mid-semester, and end-semester
examinations will contribute to the grading.
Week 01 -Software Quality Engineering - SEN453
Book Title
5
Software Quality Engineering, (Testing, Quality Assurance, & Quantifiable
Improvement), by JEFF TIAN, 2018, WILEY.
Software Testing, A Craftsman's Approach, by Paul Jorgensen, 4th Edition 2015,
Taylor and Francis Group. Bernard Homes, 2012
Fundamentals of Software Testing, ISTE, Wiley Publisher, 2012
Software Engineering, by Ian Sommerville, 10th Edition – 2017 Addison Wesley
Week 01 -Software Quality Engineering - SEN453
Course Learning Outcomes (CLOs)
6
Course Learning Outcomes (CLOs)
CLO 1 Apply software quality metrics and models is essential for ensuring
the delivery of high-quality software products
CLO 2 Design software testing strategies to systematically evaluate
software products.
CLO 3 Adhere to ethical and professional standards in software quality
engineering, ensuring transparency, accountability, and integrity in
all quality-related activities.
Week 01 -Software Quality Engineering - SEN453
Mapping and Assessment
7
Mapping and Assessment
CSC-131 Related PLOs CLO Attainment checked in
CLOs
CLO1 GA-2: Engineering Assignments, Case Study
Knowledge Analysis
CLO2 GA-4: Lab Exercises, Peer Review
Design/Development of
Solutions
CLO3 GA-9: Ethics Project Delivery, Reports,
Peer Assessment
Week 01 -Software Quality Engineering - SEN453
Grading Assessment / grading Policy
8
Grading Breakup and Policy
Assessment tool Assessment %
Assignments / Project Report 15%
Quizzes 15%
Midterm Exam 30%
Final Exam 40%
Total 100%
Week 01 -Software Quality Engineering - SEN453
Weekly Course Plan
9
Weekly Course Plan
Week Topic Covered
Week Software Quality: Overview and Introduction Basic Introduction. Software
-1 Quality Attributes. Introduction to Quality Engineering.
Testing: Concepts, Issues, and Techniques Introduction to software testing.
Week
Software testing lifecycle. Testing Scopes. Testing Approaches. Testing
-2 Concepts.
Week Test Planning Process Introduction to testing process Requirement of software
-3 test planning Testing documentation Reporting and historical data recording.
Week Software testing techniques Testing philosophies Testing strategies Model-
-4 based testing:
Software testing techniques (Continued…) Testing using models: Using finite
Week
state machine Control-flow and dataflow-based testing Domain and
-5 combinatorial testing
Week
Unit and integration testing Unit testing Integration testing Acceptance testing
-6
Week Integration testing Introduction to integration testing Introduction to MM paths
Test automation
Weekly Course Plan
10
Weekly Course Plan – Topic Covered
Mid-Term Examination Week
Software reliability models and engineering Introduction Exponential model.
Week -9 Reliability growth models Modeling process
Week - Software inspections Fagan inspections Software reviews Inspection checks and
10 metrics
Week - Quality Models Introduction Models for quality assessment Product quality
11 metrics
Week - Quality Measurements In-process metrics for software testing In-process quality
12 management Effort/outcome models
Week -
System testing Introduction to system testing Scenarios development
13
Week -
System testing Use-cases for testing Specification-based testing
14
Week -
Open issues on software testing
15
Week -
Review all topics
Introduction to Software
Week # 1
Unit 2/3
What is Software
12
Software: Software refers to a set of instructions,
data, or programs used to operate computers and
perform specific tasks.
Types of Software:
•System Software: Manages the hardware of a
computer and provides a platform for running
application software (e.g., Operating Systems like
Windows, macOS).
•Application Software: Performs specific user-
oriented tasks (e.g., word processors, web
browsers, games).
•Middleware: Acts as a bridge between the both
Week 01 -Software Quality Engineering - SEN453
Software Engineering -SWE
13
Definition: SWE is the disciplined application of engineering principles to the design,
development, testing, and maintenance of software systems.
Key Aspects:
Systematic Approach: Involves using established methodologies and frameworks to
ensure the software development process.
Quality Assurance: Ensures that the software meets quality standards, including
performance, security, and usability.
Lifecycle Management: Focuses on managing the software development lifecycle
(SDLC), from initial requirements gathering to post-deployment maintenance.
Importance of Software Engineering:
Efficiency:
Risk Management:
Collaboration:
Week 01 -Software Quality Engineering - SEN453
Software Development Life Cycle SDLC
14
Definition: The Software
Development Lifecycle (SDLC) is a
systematic framework utilized by
software engineers to design,
develop, and deliver software
applications.
Week 01 -Software Quality Engineering - SEN453
Software Development Life Cycle SDLC
15
•Purpose: Provides a structured approach that enhances
efficiency and effectiveness in the software development
process.
•Key Phases:
• Planning: Identifying project goals and
requirements.
• Analysis: Gathering and analyzing user
requirements.
• Design: Creating architectural and design
specifications.
Week 01 -Software Quality Engineering - SEN453
Software Development Life
16
Cycle SDLC
Fig: 01 – Seven Stages / Phase of SDLC – from
Internet
Week 01 -Software Quality Engineering - SEN453
Software Development Life Cycle SDLC
17
Fig: 02 – Seven Stages / Phase of SDLC – from
Internet
Week 01 -Software Quality Engineering - SEN453
Software Development Life
Cycle SDLC
18
Fig: 03 – Seven Stages / Phase of SDLC – from Internet
Week 01 -Software Quality Engineering - SEN453
Software Development Life Cycle SDLC
19
Fig: 04 – Seven Stages / Phase of SDLC – from
Internet Week 01 -Software Quality Engineering - SEN453
Testing Phase in SDLC: Software Quality
20
Objective:
The testing phase aims to verify and validate that the software meets
the specified requirements and is free from defects.
Key Activities:
•Bug Detection: Identifying and fixing any errors, bugs, or issues in
the software before deployment.
•Functionality Testing: Ensures that the software performs all the
required functions correctly, as outlined in the functional
requirements.
•Performance Testing: Evaluates how the software behaves under
various conditions, such as high user traffic or large data loads.
•Security Testing: Ensures that the software is secure from external
threats and unauthorized access.
•Usability Testing: Checks how user-friendly and intuitive the
software is for the intended users.
•Compatibility Testing: Confirms that the software works across
different devices, browsers, or operating
Week 01systems.
-Software Quality Engineering - SEN453
Testing Phase in SDLC: Software
Quality (Cont..)
21
Types of Testing:
•Unit Testing: Testing individual components or modules of
the software for correctness.
•Integration Testing: Ensures that different modules or
components of the software work together.
•System Testing: Tests the complete system to verify that
all parts work together as expected.
•User Acceptance Testing (UAT): Performed by the end-
users to confirm that the software meets their needs and
requirements.
Week 01 -Software Quality Engineering - SEN453
Testing Phase in SDLC: Software Quality
(Cont..)
22
Why It’s Important:
•Quality Assurance: Ensures that the software is reliable,
secure, and performs efficiently before it’s released.
•Cost Reduction: Identifying and fixing issues early in the
testing phase can save time and resources, reducing costly
fixes after deployment.
•User Satisfaction: Well-tested software results in a smoother
user experience and higher customer satisfaction.
Week 01 -Software Quality Engineering - SEN453
Overview of the Topic
Week # 1
Unit 3/3
Overview & Introduction
24
By the end of this lecture, you will understand:
• Overview and basic introduction of Software
Quality.
• Key Software Quality Attributes.
• Introduction to Quality Engineering.
Week 01 -Software Quality Engineering - SEN453
Overview & Introduction
(Cont..)
25
Quality Engineering integrates quality processes
throughout the software development lifecycle.
It focuses on preventing defects early rather than
just finding them later in testing.
Quality engineering ensures a continuous and
consistent focus on delivering high-quality
software from design to deployment.
Week 01 -Software Quality Engineering - SEN453
Overview & Introduction
(Cont..)
26
Software engineering is the systematic approach to the
development, operation, maintenance, and retirement of
software. It ensures high-quality software products are
delivered efficiently.
Software quality refers to how well software conforms to its
specified functional and non-functional requirements.
• High-quality software meets both End-User needs and
performs efficiently under different conditions.
• It ensures software's reliability, ease of use, and future
maintainability.
Week 01 -Software Quality Engineering - SEN453
Introduction to Quality Engineering
27
Quality Engineering integrates quality processes
throughout the software development lifecycle.
It focuses on preventing defects early rather than
just finding them later in testing.
Quality engineering ensures a continuous and
consistent focus on delivering high-quality software
from design to deployment.
Week 01 -Software Quality Engineering - SEN453
Why Software Quality Matters
28
Ensuring software quality reduces long-term
maintenance costs by minimizing defects.
High-quality software enhances customer
satisfaction, as it meets user expectations
and functions well.
Compliance with industry standards and
regulatory requirements is often a byproduct
of high software quality.
Software quality also increases market
competitiveness and ensures long-term
Week 01 -Software Quality Engineering - SEN453
Key Software Quality Attributes
29
Functionality: The software’s ability to perform the intended functions.
Reliability: The software consistently performs under specific conditions
over time without failure.
Usability: It should be intuitive and easy for users to operate.
Efficiency: The software uses system resources optimally and performs
quickly.
Maintainability: Ease with which software can be modified or updated
to adapt to changes.
Portability: The ability of software to function on different platforms and
environments.
Week 01 -Software Quality Engineering - SEN453
Core Quality Engineering Activities
30
Test Planning: Defining a strategic approach for testing
activities, identifying what and how to test.
Test Automation: Reducing manual testing efforts by
automating repetitive tasks, increasing testing efficiency.
Performance Monitoring: Continuously assessing if the
software meets performance expectations, like speed and
responsiveness.
Continuous Feedback: Establishing regular feedback loops
between developers and testers, enabling early issue
identification and resolution.
Week 01 -Software Quality Engineering - SEN453
Summary
31
CIS – Software Quality Engineering
Course Objective(s)
Course Contents
Book Title
Course Learning Outcomes (CLOs)
Mapping and Assessment
Grading Assessment / Grading Policy
Weekly Course Plan
Software and Software Engineering
Software Development Life Cycle SDLC
Understanding software quality
Quality attributes
Week 01 -Software Quality Engineering - SEN453
Assignment #1:
32
Think of a Favorite Software Pick a software
application you use regularly (e.g., a social media
app, a game, or a tool like Microsoft Word).
Task: Write down 3 qualities you think make the
software good or bad.
• Example: "It never crashes" or "It loads too
slowly.
Week 01 -Software Quality Engineering - SEN453