Testing Fundamentals
Testing Fundamentals
UNIT 1-SYLABUS
Overview of SDLC
SDLC Methodologies
SDLC Methodologies (Continued)---(5 HOURS)
Introduction to Product Engineering
Product Testing Life Cycle------ (2 HOURS)
Introduction to Software Testing and its Importance
Market Demand for Software Testing
Levels of Testing---------(2 HOURS)
What is SDLC?
A structured process followed by software development teams to design, develop, test, and deploy software efficiently.
Phases of SDLC:
1.Requirement Gathering & Analysis
1. Understand user needs and document requirements.
2.Planning
1. Define project scope, timeline, resources, and cost
estimates.
3.Design
1. Create architecture and design documents (UI,
databases, APIs, etc.).
4.Development
1. Actual coding of the application according to design
specs.
5.Testing
1. Verify software functionality, performance, and
security.
6.Deployment
1. Release the software to the production environment. Key Benefits:
7.Maintenance •Improved project management
1. Ongoing updates, bug fixes, and improvements. •Enhanced quality assurance
•Predictable timelines and costs
SDLC Methodologies 2. Agile Model
1. Waterfall Model •Iterative and incremental approach.
•Sequential & linear approach. •Emphasizes collaboration, flexibility, and
•Each phase must be completed before the next customer feedback.
begins. •Delivers working software in short cycles
•Best for well-defined requirements. (sprints).
Key Characteristics:
•Simple and easy to manage.
•Best for small projects with
clear, fixed requirements.
•Progress is easy to measure
by completed phases.
TOP DOWN
The Waterfall Model is a linear and sequential SDLC methodology where APPROACH
each phase must be completed before the next begins. It follows a top-
down approach, much like a waterfall flowing down through steps.
Agile Model
ITERATIVE
AND
INCREMENTAL
APPROACH
•Iterative and incremental approach.
•Emphasizes collaboration, flexibility, and customer
feedback.
•Delivers working software in short cycles (sprints).
A series of shorter development cycles (requirements, designing,
building and testing)
Incremental development involves establishing requirements, designing,
building, and testing a system in pieces, which means that the software’s
features grow incrementally. The size of these feature increments vary
Involves overlapping test levels throughout development.
Teams use continuous delivery and continuous deployment
(Delivery pipelines)
Regression testing is a key player.
Examples :
RUP : Rational Unified Process (long iteration ,two to three months),
Scrum : shorter iterations , hours , days , few weeks
Kanban
Disadvantages:
•Less structured than Scrum.
•May not suit large, complex projects without
adaptation.
•Success depends on team discipline and
communication.
Use Case:
•Ideal for support teams, maintenance projects, or
any scenario where continuous delivery and
flexibility are essential.
Software Development Models in Context
Software development models must be selected and adapted to the context of project
and product characteristics.
Example :
some cases organizational and cultural issues may inhibit communication between
team members, which can impede iterative development.
an Agile development model may be used to develop and test the front- end user interface
(UI) and functionality. Prototyping may be used early in a project, with an incremental
development model adopted once the experimental phase is complete.
Scrum Model in SDLC
Scrum is a way of managing projects, especially in software development .
rrrrr
Spiral Model
rrrrrrr
V-Model (Validation & Verification)
V-Model (Sequential Model)
•Real-World Examples
What is Product Engineering?
•Definition: End-to-end process of designing, developing, testing, and maintaining software products.
•Focus: User-centric design + scalability + quality.
Agenda
1.What is Software Testing?
2.Objectives of Software Testing
3.Types of Testing
4.Testing Life Cycle (STLC)
5.Manual vs. Automation Testing
6.Importance of Software
Testing
7.Tools Used in Industry
8.Real-world Examples & Case
Studies
What is Software Testing?
Why is Testing Required?
•Definition: Process of evaluating software to find defects and
•Identify defects early.
ensure it meets requirements.
•Ensure reliability, security, and performance.
•Includes validation (are we building the right product?) and
•Meet customer requirements.
verification (are we building it right?).
•Prevent costly post-release failures.
•Performed at all stages of development.
Types of Software Testing
Objectives of Software Testing •Functional: Unit, Integration, System, Acceptance.
•Ensure product meets business and technical requirements. •Non-functional: Performance, Security, Usability,
•Identify bugs before the product reaches users. Compatibility.
•Improve product quality and confidence. •Others: Regression, Smoke, Sanity, Exploratory.
•Reduce development and maintenance costs.
Tools Used in Testing
Importance of Software Testing •Test Management: TestRail,
Software Testing Life Cycle (STLC)
•User satisfaction: Stable and smooth user Zephyr
1.Requirement Analysis
experience. •Bug Tracking: Jira, Bugzilla
2.Test Planning
•Cost efficiency: Early bug detection saves •Automation: Selenium, Cypress,
3.Test Case Design
resources. Playwright
4.Environment Setup
•Security: Prevents vulnerabilities and •Performance: JMeter,
5.Test Execution
breaches. LoadRunner
6.Defect Logging & Tracking
•Business reputation: Protects brand •CI/CD: Jenkins, GitHub Actions
7.Test Closure
credibility.
Market Demand for Software Testing Industry Trends & Statistics
Include recent stats (as of 2024/2025). Example:
Why Software Testing Is in Demand
•The global Software Testing Market is expected to exceed
•Rising complexity of applications (web, mobile, IoT, AI-
$70 billion by 2030.
based).
•Automation testing is growing at a CAGR of ~18%.
•Shift-left trend: testing earlier in SDLC.
•DevOps + QA engineers are in high demand with salaries
•Need for continuous delivery and integration.
comparable to developers.
•Prevents high-cost production bugs.
•Gartner: 60% of digital transformation projects delay due to
•Compliance and data privacy needs (GDPR, HIPAA).
poor QA.
Emerging Areas of Testing Demand by Sector
•Test Automation (Selenium, Playwright, Cypress) •Fintech: Security and compliance are critical.
•Performance Testing (JMeter, k6, LoadRunner) •E-commerce: Performance testing is essential (Black Friday,
•Security Testing (OWASP, penetration testing) flash sales).
•AI & ML Testing (bias detection, model drift) •Healthcare: Regulatory testing (HIPAA).
•Cloud Testing (AWS, Azure Test tools) •Gaming: UX, load, and latency testing.
•IoT and Embedded Systems Testing
Demand by Regions Roles in Demand
•USA: High demand for SDET (Software Development Engineer •QA Analyst / QA Engineer
in Test) •Test Automation Engineer
•Europe: GDPR compliance testing growing. •Performance Tester
•India: Global QA hub – growing startup + outsourcing •SDET (Software Development Engineer in Test)
opportunities. •QA Lead / Test Manager
Introduction to Testing Levels
•Define “Testing Level”:
Testing levels refer to the scope and stage of software testing applied at various points of the
development lifecycle.
•Analogy: Think of testing as layers of armor protecting the software from failure.
•Purpose: Identify different categories of bugs as early as possible.
Integration Testing
Unit Testing 🔹 Definition:
🔹 Definition: Testing interfaces and interactions between integrated
Testing of individual functions, methods, or components in modules.
isolation. 🔹 Purpose:
🔹 Performed By: To verify that units/modules work together as expected.
Usually developers, using test frameworks. 🔹 Types:
🔹 Tools: •Big Bang
JUnit (Java), NUnit (.NET), PyTest (Python), Jasmine (JS) •Top-down
🔹 Key Points: •Bottom-up
•Fast and frequent •Incremental
•Focuses on internal logic correctness 🔹 Tools:
•Test-driven development (TDD) relies on strong unit testing Postman (for API), REST Assured, JUnit (with mocks),
Example: TestNG
A function that calculates the total cost of items with tax – Example:User login module interacting with database
tested with different inputs. authentication.
System Testing Acceptance Testing
🔹 Definition: 🔹 Definition:
Testing the entire system as a whole to validate end-to-end Validating the system meets business requirements and
functionality. is ready for release.
🔹 Performed By: 🔹 Performed By:
QA team in a controlled environment. Clients, business users, or QA (User Acceptance Testing
🔹 Types: – UAT).
•Functional Testing 🔹 Types:
•Non-functional Testing (Performance, Security) •Alpha Testing (by internal staff)
🔹 Tools: •Beta Testing (by external users)
Selenium, QTP, LoadRunner Example:
Example: Bank wants to ensure that new loan application
Booking a flight ticket through a web application – verifying software meets all policy criteria.
all steps from search to payment.
Regression Testing:
•Re-running test cases after changes to ensure nothing breaks.
🔹 Smoke & Sanity Testing:
•Smoke: Basic checks to ensure system stability.
•Sanity: Quick evaluation of bug fixes or small changes.
🔹 End-to-End Testing:
•Testing user flows across multiple systems/components.
Can we Test Everything? - Numerical Example
Integration testing
System testing
Acceptance testing
Test Level
Generic
objectives
A point in the
development model
Test
Approaches
and Test basis
where testing is done. responsibilities
A development model
can have more than a
test level depending on
the model and the
Level
project.
Defects Test objects
Component Testing
Components, units or
modules
Code and data structures
Classes
Database modules
Component Testing cont’d
Reducing risk
Finding defects in the component
Preventing defects from escaping to higher test
levels
Building confidence in the component’s quality
Verify the functionality of the module based on
its design
Incorrect functionality
Data flow problems
Incorrect code and logic
Test-First Approach
Subsystems
Databases
Infrastructure
Interfaces
APIs
Integration Testing cont’d
Reducing risk
Finding defects in the interfaces or in
subsystems
Preventing defects from escaping to higher test
levels
Building confidence in the quality of the
interfaces
Verify the behavior of the interfaces based on its
Incorrect
design data, missing data, or incorrect data encoding
Incorrect sequencing or timing of interface calls
Interface mismatch
Failures in communication between components/Systesm
Unhandled or improperly handled communication
failures between Components/systems
Inconsistent message structures between systems
Integration Testing Strategies
Applications
Hardware/software systems
Operating systems
System under test (SUT)
System configuration and
configuration data
System Testing
Reducing risk
Verifying/Validate behaviors of the system
Building confidence in the
quality of the whole system
Finding defects
Preventing defects from escaping
to higher test levels or production
Alpha (factory)
Contract and
and Beta (field
Regulation
or site)
Acceptance
Acceptance
Test
Test
• Alpha @ • Custom-developed
development site and systems
not by developers • Against contractual
• Beta @ field by requirements agreed
potential users upon earlier or
regulations
TESTING FUNDAMENTALS
UNIT 2-SYLABUS
Structural
Related to
change
Testing of Function (Functional Testing)
Includes accuracy,
suitability,
interoperability and
security
Testing of Non-functional SW C/C’s
(Non-Functional Testing)
Testing “how well” the system behaves
Load testing
Stress testing
Usability testing
Maintainability
testing
Reliability testing
Portability testing
Testing of SW Structure/Architecture (Structur
Testing)
Environment changes/planned
upgrades
Specification-Based or Black-Box
Techniques
Structure-Based or White-Box
Techniques
Experience-Based Techniques
Specification-Based or Black-Box
Techniques
Structure-Based or White-Box
Techniques
Experience-Based Techniques
What are Test Techniques?
Best practices to reach optimal test
Can be used in any test activity for any test type @ any
test level
Factors for Choosing Test
Techniques
System Type Time and budget
System complexity Software development
Regulatory standards lifecycle model
Customer or Expected use of the
contractual software
requirements Previous experience with
Risk levels using the test techniques
Risk types on the component or
system to be tested
Test objectives
The types of defects
Available expected in the
documentation component or system
Tester knowledge
and skills
Available tools
Categorization of Test Techniques
Classical classification of techniques is black-box or
white-box.
Experience-Based Techniques
We will Cover
Equivalence partitioning
(EP)
Can be applied
Coverage to all testing levels
= (Partitions tested/Total
partitions) x 100
invalid
invalid valid
0 1
100
EP Example
Assume that a PoS processes payment if the card used is
one of 2 types (VISA, Master Card), the PoS is connected
to the network, and the payment is approved by the
banking system.
VI
Valid EP
Card EP MC
Y
Payment
Approved? EP
Invalid EP ? N
Y
PoS
EP
Connected?
N
EP Example cont’d
We can have 1 of 2 test sets depending on our knowledge
of how it
TCis coded.
Card Connected Approved
1 VI Y Y
2 MC Y Y •
Coded in the form if, else if, else
3 ? Y Y
if, else or unknown
4 VI or MC N Y •
5 VI or MC Y N Valid independent inputs are
combined first.
•
TC Card Connected Approved One invalid input is tested at a
1 VI Y Y time.
2 MC Y Y
3 ? N N •Coded in the form if, else
•Valid independent inputs are
combined first.
Exercise: EP Testing
Identify EP’s and test cases for the width and
height fields.
The software will handle inputs between 10 cm and
60 cm.
Boundary Value Analysis (BVA)
Considered as an extension of equivalence partitioning
Mathematical Model
0 < X < 100
-1, 0, 1
Rulebusiness
Record complex 1 Rule 2
rules … Rule O
Condition 1
Condition 2
….
Condition M
Action 1
Action 2
…
Action N
Creating DT’s
Specification analysis identifies conditions and actions.
Conditions
Type of cheque: Personal (P) or Payroll (PR)
Amount: Less than or equal $750 or more than $750
Accredited company: Yes or No
Actions:
Cashing: Yes or No
Creating a DT Example cont’d
Type P P P P PR PR PR PR
Amount ≤ $750 ≤ $750 > $750 > $750 ≤ $750 ≤ $750 > $750 > $750
Accredite
d Yes No Yes No Yes No Yes No
Type P P PR PR
Table depth
State=N States Event
number X Events
Actions number
State N + 1
1 Event 1 1
1 Event 2 Action 3 3
... ... ... ...
State Transition Diagram Example
State Transition Table Example
N-1 coverage
For single transitions, the coverage metric is the % of
all valid sequences of n transitions exercised during
testing.
0-Switch Transition Coverage Example
1 2 2 1 2 1
3 1
3 1
4
2 1
Exercise: 0-Switch Transition Coverage
Specification-Based or Black-Box
Techniques
Experience-Based Techniques
Learning Objectives
LO-4.4.1 Describe the concept and value of code coverage
(K2)
Example:
Program has 100 statements.
Tests exercise 87 statements.
Statement coverage = 87%
How to Do Statement Coverage?
1. Transform the code into a control flow graph.
End
Statement Coverage Example
cont’d
Test case 1
Input n = 8
Expected outputs (n = 8, f = 40320)
16 statements are executed.
Statements 8 and 9 are not executed yet.
Test case 2
Input n = -5
Expected output (n = -1)
11 statements are executed.
Statements from 10 to 16 are not executed but were executed in
test case 1.
Decision
Example:coverage = (# of decision outcomes
tested/total
# of decision outcomes) x 100
Outcome 1
D
Outcome 2
Program has 120 decision
outcomes.
Tests exercise 60 decision
outcomes.
Decision coverage = 50%
How to Do Decision Coverage?
1. Transform the code into a control flow graph.
Specification-Based or Black-Box
Techniques
Structure-Based or White-Box
Techniques
Experience-Based Techniques
Experience-Based Tests
Tests are driven based on tester’s skill, intuition and
experience with
similar applications or technologies.
Error
guessing
Experience and Dynamic and Heuristic
Strategies
Testers normally use experience-based tests.