UNIT NO.
Introduction to Software Quality basics
Verification and validation
Quality perspectives
Testing ter- minology
Software Testing Life Cycle (STLC)
V” model of Testing
QA process
Cost of testing
Types of tests
Introduction to Software Quality basics
Here’s a detailed yet easy-to-understand introduction to Software Quality—perfect for
exams or notes:
📘 Introduction to Software Quality (Basics
in Detail)
1. What is Software Quality?
Software Quality refers to how well a software product meets:
User requirements
Functional and performance expectations
Standards and reliability needs
👉 In simple words:
Quality software = works correctly + efficiently + reliably + satisfies users
2. Definitions by Experts
According to IEEE:
Software quality is the degree to which software meets specified requirements.
According to ISO:
Quality is the totality of features that satisfy stated and implied needs.
3. Objectives of Software Quality
The main goals are:
Deliver error-free software
Ensure customer satisfaction
Improve performance and reliability
Maintain security and safety
Reduce maintenance cost
4. Key Characteristics of Software Quality
a) Functionality
Software performs the required tasks correctly
Example: A banking app calculates interest properly
b) Reliability
Software works without failure over time
Example: App doesn’t crash frequently
c) Usability
Easy to learn and use
User-friendly interface
d) Efficiency
Uses resources (CPU, memory) effectively
Fast response time
e) Maintainability
Easy to update and fix bugs
f) Portability
Can run on different devices or platforms
5. Software Quality Attributes (ISO Model)
According to ISO standards, quality includes:
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
👉 These are often called Quality Factors
6. Software Quality vs Software Testing
Software Quality Software Testing
Overall concept A part of quality
Focuses on process + product Focuses on finding bugs
Prevents defects Detects defects
👉 Testing is just one part of achieving quality.
7. Importance of Software Quality
Reduces software failures
Improves user trust
Saves time and cost
Ensures business success
Prevents security risks
8. Software Quality Assurance (SQA)
SQA is the process of ensuring quality in software development.
Activities:
Defining standards
Code reviews
Testing
Auditing processes
👉 Goal: Prevent defects before they occur
9. Software Quality Control (SQC)
Focuses on identifying defects
Includes testing and inspection
👉 Goal: Find and fix errors
10. Difference Between SQA and SQC
SQA SQC
Process-oriented Product-oriented
Prevents defects Detects defects
Includes audits, standards Includes testing
11. Cost of Quality
Quality has cost, but lack of quality costs more.
Types:
1. Prevention Cost – Training, planning
2. Appraisal Cost – Testing, inspection
3. Failure Cost
o Internal (before delivery)
o External (after delivery)
12. Quality Standards
Some common standards:
ISO 9001
CMMI
Six Sigma
13. Factors Affecting Software Quality
Poor requirements
Lack of testing
Bad design
Inexperienced developers
Tight deadlines
14. Conclusion
Software Quality is essential for building reliable and efficient systems. It involves:
Proper planning
Continuous testing
Following standards
👉 High-quality software leads to better performance, fewer errors, and happy users.
Verification and validation
Here’s a clear and detailed explanation of Verification and Validation (V&V)—very
important for exams:
📘 Verification and Validation (V&V) in
Software Engineering
1. What is Verification?
Verification is the process of checking whether the software is being built correctly
according to specifications.
👉 It answers:
“Are we building the product right?”
Key Points:
Done during development
Focuses on documents, design, and code
Does not require execution of the program
Examples:
Reviewing requirements document
Checking design diagrams
Code inspections
2. What is Validation?
Validation is the process of checking whether the software meets user needs and
expectations.
👉 It answers:
“Are we building the right product?”
Key Points:
Done after development or during testing
Requires execution of software
Focuses on final product behavior
Examples:
Running the application
User acceptance testing
System testing
3. Verification vs Validation (Major Differences)
Feature Verification Validation
Purpose Check correctness of process Check correctness of product
Question Are we building it right? Are we building the right product?
Execution No execution needed Requires execution
Stage Early stages Later stages
Focus Documents, design, code Final software
Examples Reviews, inspections Testing, user feedback
4. Types of Verification Activities
a) Requirement Verification
Ensures requirements are complete, clear, and correct
b) Design Verification
Checks whether design follows requirements
c) Code Verification
Ensures code follows standards and logic
d) Reviews & Inspections
Manual checking by experts or team members
5. Types of Validation Activities
a) Unit Testing
Testing individual modules
b) Integration Testing
Testing combined modules
c) System Testing
Testing complete system
d) Acceptance Testing
Performed by users to approve software
6. Importance of Verification and Validation
Ensures high-quality software
Reduces defects and failures
Saves time and cost
Improves customer satisfaction
Ensures correct functionality
7. Relationship Between Verification & Validation
Both are part of Software Quality Assurance (SQA)
Work together to ensure:
o Correct process (Verification)
o Correct product (Validation)
👉 Simple idea:
Verification = Prevention
Validation = Detection
8. Example (Easy Understanding)
Case: Online Shopping App
Verification:
o Check if design includes cart, payment, login
o Review code for correctness
Validation:
o Run the app and place an order
o Check if payment works correctly
9. Advantages of V&V
Early detection of errors
Reduced development cost
Better reliability
Improved user trust
10. Conclusion
Verification and Validation are essential for delivering quality software:
Verification ensures the process is correct
Validation ensures the final product meets user needs
👉 Together, they guarantee efficient, reliable, and user-friendly software
Quality perspectives
Here’s a detailed explanation of Quality Perspectives in Software Engineering—
structured and exam-ready:
📘 Quality Perspectives in Software
Engineering
1. Introduction
Quality perspectives describe how different people (users, developers, managers) view
software quality differently.
👉 There is no single definition of quality—
it depends on who is looking at the software and what they expect.
2. Major Quality Perspectives
1) User Perspective (Customer View)
Focus: Usability and satisfaction
Users care about:
o Ease of use
o Performance
o Reliability
👉 Example:
A user thinks software is high quality if it is easy, fast, and error-free.
2) Developer Perspective (Technical View)
Focus: Code quality and design
Developers care about:
o Clean code
o Maintainability
o Efficiency
👉 Example:
Well-structured and modular code = high quality
3) Manufacturing Perspective (Process View)
Focus: Following standards and processes
Ensures:
o Proper development steps
o Fewer defects
👉 Example:
Following coding standards and testing procedures strictly
4) Product Perspective (Internal Quality View)
Focus: Internal characteristics of software
Includes:
o Complexity
o Structure
o Performance
👉 Example:
Optimized algorithms improve product quality
5) Value-Based Perspective
Focus: Cost vs Benefit
Quality depends on:
o Price
o Features
o Customer value
👉 Example:
Affordable software with good features = high value
3. Other Important Perspectives
a) Transcendental View
Quality is something we recognize but cannot define easily
Example: “This software just feels good to use”
b) Fitness for Use
Software is good if it serves its purpose
Strongly linked to user satisfaction
c) Conformance to Requirements
Quality means meeting specified requirements
Related to standards like ISO
4. Comparison of Perspectives
Perspective Focus Main Concern
User Experience Ease of use
Developer Code Maintainability
Manufacturing Process Standards
Product Internal quality Performance
Value-based Cost-benefit Worth
5. Importance of Quality Perspectives
Helps understand different expectations
Improves software design and usability
Ensures balanced development
Leads to better decision making
6. Example (Real-Life Scenario)
Case: Mobile Banking App
User Perspective: Easy transactions, no crashes
Developer Perspective: Clean and secure code
Process Perspective: Proper testing and standards followed
Value Perspective: Useful features at low cost
👉 If all perspectives are satisfied → High-quality software
7. Challenges in Quality Perspectives
Different stakeholders have different expectations
Trade-offs required:
o Performance vs Cost
o Features vs Simplicity
8. Conclusion
Quality perspectives help in understanding that:
Software quality is multi-dimensional
It depends on users, developers, and business goals
A good software system balances all perspectives
Testing ter- minology
Here’s a detailed explanation of Testing Terminology (important for exams and viva):
📘 Testing Terminology in Software
Engineering
1. Introduction
Software Testing Terminology includes the basic terms used in testing to describe errors,
processes, and outcomes.
👉 Understanding these terms helps in:
Writing test cases
Finding defects
Improving software quality
2. Basic Terms
1) Error
A human mistake made by developer
Happens during coding, design, or requirements
👉 Example: Writing wrong logic in code
2) Defect (Bug)
A problem in software caused by an error
👉 Example: App crashes when clicking a button
3) Failure
When software does not perform expected function
👉 Example: Login fails even with correct password
4) Fault
The actual cause of a defect in code
👉 Simple idea:
Error → Fault → Failure
3. Testing Process Terms
5) Test Case
A set of conditions or inputs to test a function
👉 Includes:
Input data
Expected output
6) Test Scenario
A high-level description of what to test
👉 Example: “Check login functionality”
7) Test Suite
A collection of test cases
8) Test Plan
A document describing testing strategy
👉 Includes:
Scope
Objectives
Resources
Schedule
9) Test Data
Input values used during testing
4. Execution Terms
10) Test Execution
Running the test cases on software
11) Test Result
Outcome after execution
Pass or Fail
12) Expected Result
Output we expect
13) Actual Result
Output we get
5. Verification & Validation Terms
14) Verification
Checking documents/design without execution
15) Validation
Testing actual software
6. Defect Management Terms
16) Defect Life Cycle
Stages of a defect:
New
Assigned
Open
Fixed
Retested
Closed
17) Severity
How serious the defect is
👉 Types:
Critical
Major
Minor
18) Priority
How quickly defect should be fixed
👉 High priority ≠ High severity always
7. Testing Types Terminology
19) Unit Testing
Testing individual components
20) Integration Testing
Testing combined modules
21) System Testing
Testing full system
22) Acceptance Testing
Done by users
8. Other Important Terms
23) Regression Testing
Re-testing after changes
24) Smoke Testing
Basic test to check if build is stable
25) Sanity Testing
Quick check after small changes
26) Black Box Testing
Testing without knowing internal code
27) White Box Testing
Testing with knowledge of code
9. Metrics Terminology
28) Test Coverage
Percentage of code tested
29) Defect Density
Number of defects per module
10. Example (Simple Understanding)
Case: Login System
Error: Developer wrote wrong password logic
Defect: Login not working
Failure: User cannot login
Test Case: Enter valid username & password
Expected Result: Login successful
Actual Result: Login failed
11. Conclusion
Testing terminology forms the foundation of software testing.
👉 Key idea:
Helps in communication
Improves testing efficiency
Ensures high-quality software
Software Testing Life Cycle (STLC)
Here’s a complete and detailed explanation of Software Testing Life Cycle (STLC)—
perfect for exams and understanding:
📘 Software Testing Life Cycle (STLC)
1. Introduction
STLC (Software Testing Life Cycle) is a sequence of steps followed by the testing team to
ensure software quality and correctness.
👉 It defines:
What testing activities to perform
When to perform them
How to perform them
2. Objectives of STLC
Detect defects early
Ensure software meets requirements
Improve quality and reliability
Reduce cost of fixing bugs
3. Phases of STLC
🔹 1) Requirement Analysis
Description:
Testers study requirements (SRS document)
Activities:
Identify testable requirements
Clarify doubts with stakeholders
Identify test types (functional/non-functional)
Output:
Requirement Traceability Matrix (RTM)
🔹 2) Test Planning
Description:
Decide testing strategy and plan
Activities:
Define scope and objectives
Estimate time and cost
Allocate resources
Select tools
Output:
Test Plan Document
🔹 3) Test Case Development
Description:
Create test cases and test data
Activities:
Write test cases
Review test cases
Prepare test data
Output:
Test cases
Test scripts
🔹 4) Test Environment Setup
Description:
Prepare hardware and software environment
Activities:
Install application
Configure servers/tools
Prepare test data
Output:
Test environment ready
🔹 5) Test Execution
Description:
Execute test cases
Activities:
Run test cases
Compare expected vs actual results
Report defects
Output:
Test execution report
Defect reports
🔹 6) Defect Reporting & Tracking
Description:
Manage detected defects
Activities:
Log defects
Assign to developers
Track status (open, fixed, closed)
Output:
Defect reports
🔹 7) Test Closure
Description:
Final phase of testing
Activities:
Verify all test cases executed
Prepare test summary report
Analyze testing process
Document lessons learned
Output:
Test closure report
4. STLC Flow (Simple Order)
👉 Requirement Analysis
→ Test Planning
→ Test Case Development
→ Environment Setup
→ Test Execution
→ Defect Tracking
→ Test Closure
5. Entry and Exit Criteria
Entry Criteria:
Requirements available
Test plan ready
Environment set
Exit Criteria:
All test cases executed
Defects fixed
Quality standards met
6. STLC vs SDLC
STLC SDLC
Testing process Development process
Focus on quality Focus on building software
Starts after requirements Starts from idea
7. Importance of STLC
Structured testing approach
Better defect detection
Improved software quality
Efficient use of resources
8. Example (Real-Life)
Case: Online Shopping App
Requirement Analysis: Study features like cart, payment
Test Planning: Decide testing scope
Test Case Development: Create login/payment tests
Execution: Run tests
Defects: Fix payment errors
Closure: Final report
9. Advantages of STLC
Organized process
Clear roles and responsibilities
Early detection of bugs
High-quality product
10. Conclusion
STLC ensures that testing is:
Systematic
Efficient
Complete
👉 It plays a key role in delivering reliable and error-free software
V” model of Testing
Here’s a complete and detailed explanation of the V-Model (Verification & Validation
Model)—very important for exams:
📘 V-Model of Testing (Verification &
Validation Model)
1. Introduction
The V-Model is a software development model where testing activities are planned in
parallel with development phases.
👉 It is called “V” model because its structure looks like the letter V:
Left side → Development (Verification)
Right side → Testing (Validation)
👉 Key idea:
Each development phase has a corresponding testing phase
2. Structure of the V-Model
Left Side (Verification Phases)
Requirement Analysis
System Design
High-Level Design (HLD)
Low-Level Design (LLD)
Coding
Right Side (Validation Phases)
Unit Testing
Integration Testing
System Testing
Acceptance Testing
3. Phases of V-Model in Detail
🔹 Left Side (Verification)
1) Requirement Analysis
Collect and analyze user requirements
Prepare SRS (Software Requirement Specification)
👉 Corresponding Testing: Acceptance Testing
2) System Design
Overall system architecture is designed
👉 Corresponding Testing: System Testing
3) High-Level Design (HLD)
Defines modules and their interactions
👉 Corresponding Testing: Integration Testing
4) Low-Level Design (LLD)
Detailed design of each module
👉 Corresponding Testing: Unit Testing
5) Coding
Actual implementation of software
🔹 Right Side (Validation)
1) Unit Testing
Tests individual components
Based on LLD
2) Integration Testing
Tests interaction between modules
Based on HLD
3) System Testing
Tests complete system
Based on system design
4) Acceptance Testing
Done by users
Based on requirements
4. Mapping Between Phases
Development Phase Testing Phase
Requirement Analysis Acceptance Testing
System Design System Testing
High-Level Design Integration Testing
Low-Level Design Unit Testing
👉 This mapping is the core of the V-Model.
5. Advantages of V-Model
Early detection of defects
Simple and easy to understand
Clear relationship between development & testing
Improves quality
6. Disadvantages of V-Model
Not flexible (rigid model)
Difficult to handle changing requirements
Not suitable for complex or dynamic projects
7. When to Use V-Model
Requirements are clear and fixed
Small to medium projects
High-quality systems (banking, healthcare)
8. Example (Easy Understanding)
Case: ATM System
Requirement: Withdraw cash
Design: System architecture
HLD: Modules (card, PIN, transaction)
LLD: Logic for each module
Coding: Implement system
👉 Testing:
Unit: Test PIN module
Integration: Test card + PIN
System: Full ATM system
Acceptance: User tests ATM
9. V-Model vs Waterfall Model
V-Model Waterfall
Testing at each stage Testing at end
Early bug detection Late bug detection
Higher quality Lower quality (risk)
10. Conclusion
The V-Model ensures:
Parallel development and testing
Better quality control
Early defect detection
👉 It is best suited for projects where requirements are well-defined and stable
QA process
Here’s a detailed and exam-ready explanation of the QA (Quality Assurance) Process:
📘 Quality Assurance (QA) Process in
Software Engineering
1. Introduction
Quality Assurance (QA) is a systematic process used to ensure that software development
follows standards, procedures, and best practices.
👉 Key idea:
QA focuses on preventing defects rather than detecting them
2. Objectives of QA Process
Ensure high-quality software
Prevent defects early
Improve development process
Ensure customer satisfaction
Maintain standards compliance
3. QA Process Phases
🔹 1) Quality Planning
Description:
Define quality goals and standards
Activities:
Identify quality requirements
Select standards (e.g., ISO)
Define QA strategy
Output:
Quality Management Plan
🔹 2) Process Definition
Description:
Define development and testing processes
Activities:
Create workflows
Define coding standards
Set guidelines
Output:
Process documents
🔹 3) Quality Assurance Execution
Description:
Implement QA activities during development
Activities:
Code reviews
Design reviews
Audits
Process monitoring
👉 Focus: Prevent defects
🔹 4) Quality Control (QC)
Description:
Identify defects in the product
Activities:
Testing (unit, integration, system)
Bug tracking
Validation
👉 QA + QC = Complete Quality System
🔹 5) Defect Management
Description:
Handle defects effectively
Activities:
Log defects
Assign to developers
Track status
Verify fixes
🔹 6) Continuous Improvement
Description:
Improve process over time
Activities:
Analyze defects
Identify root causes
Improve practices
👉 Often uses methods like Six Sigma
4. QA Process Flow (Simple)
👉 Quality Planning
→ Process Definition
→ QA Execution
→ Quality Control
→ Defect Management
→ Continuous Improvement
5. QA Activities in Detail
a) Reviews
Peer reviews
Code reviews
Design reviews
b) Audits
Check if processes follow standards
c) Testing Support
Ensure proper testing strategies
d) Documentation
Maintain all quality-related documents
6. QA vs QC (Important Difference)
QA QC
Process-oriented Product-oriented
Prevents defects Detects defects
QA QC
Includes audits, reviews Includes testing
7. QA Standards and Models
ISO 9001
CMMI
Six Sigma
8. Importance of QA Process
Reduces errors and failures
Saves time and cost
Improves software reliability
Ensures process discipline
9. Example (Simple Understanding)
Case: Mobile Banking App
Planning: Define security and performance standards
Process: Follow coding guidelines
Execution: Conduct code reviews
QC: Test login and transactions
Improvement: Fix recurring bugs
10. Advantages of QA Process
Early defect prevention
Better team coordination
High-quality output
Continuous improvement
11. Challenges
Requires time and cost
Needs skilled team
Strict process discipline required
12. Conclusion
The QA process ensures that:
Software is developed correctly
Defects are prevented early
Quality is maintained throughout development
👉 Final idea:
QA = Building quality into the process, not just testing at the end
Cost of testing
Here’s a detailed and exam-oriented explanation of Cost of Testing:
📘 Cost of Testing in Software Engineering
1. Introduction
Cost of Testing refers to the total expenses involved in planning, designing, executing,
and managing testing activities in software development.
👉 It is a part of the overall Cost of Quality (CoQ).
👉 Important idea:
Spending on testing reduces bigger losses caused by failures
2. Components of Cost of Testing
\🔹 1) Prevention Cost
Description:
Cost incurred to prevent defects before they occur
Activities:
Training developers/testers
Process improvement
Quality planning
Tool selection
👉 Example: Training team on coding standards
🔹 2) Appraisal Cost
Description:
Cost of evaluating and testing the software
Activities:
Test case design
Test execution
Reviews and inspections
Test automation
👉 Example: Running test cases and analyzing results
🔹 3) Internal Failure Cost
Description:
Cost of defects found before delivery
Activities:
Bug fixing
Re-testing
Debugging
👉 Example: Fixing errors during testing phase
🔹 4) External Failure Cost
Description:
Cost of defects found after delivery to users
Activities:
Customer support
Maintenance
Patching
Reputation loss
👉 Example: App crashes after release → users complain
3. Cost of Testing Structure
👉 Total Cost of Testing =
Prevention Cost
Appraisal Cost
Failure Cost (Internal + External)
4. Graph Concept (Important Idea)
👉 As testing effort increases:
Prevention & appraisal cost increases slightly
Failure cost decreases significantly
👉 Key concept:
Invest more in testing → reduce overall cost
5. Importance of Cost of Testing
Helps in budget planning
Reduces risk of failures
Improves software quality
Prevents expensive post-release fixes
6. Cost of Testing vs Cost of Not Testing
Cost of Testing Cost of Not Testing
Controlled expense Unpredictable losses
Prevents defects Leads to failures
Improves quality Damages reputation
👉 Example:
Fixing a bug in development = ₹100
Fixing after release = ₹10,000+
7. Factors Affecting Cost of Testing
Project size
Complexity of software
Testing tools used
Team experience
Time constraints
Type of application (critical systems cost more)
8. Example (Real-Life)
Case: E-commerce Website
Prevention: Train team on secure coding
Appraisal: Test payment gateway
Internal Failure: Fix bugs before launch
External Failure: Refund users due to errors
👉 External failures are the most expensive
9. Advantages of Proper Testing Investment
Early defect detection
Reduced maintenance cost
Better customer satisfaction
High reliability
10. Key Insight (Exam Point ⭐)
👉 Cost of fixing defects increases as development progresses
Stage Cost
Requirement phase Low
Design phase Medium
Testing phase High
After release Very High
\11. Conclusion
Testing is an investment, not an expense
Proper testing reduces overall project cost
Ignoring testing leads to huge losses
👉 Final idea:
“Pay now for testing, or pay much more later for failures”
Types of testing
Here’s a detailed and well-structured explanation of Types of Testing—very important
for exams:
📘 Types of Software Testing (In Detail)
1. Introduction
Software Testing Types are different ways to test software based on:
Purpose
Level
Technique
Execution
👉 Goal: Ensure software is correct, reliable, and efficient
🔷 2. Types of Testing Based on Levels
🔹 1) Unit Testing
Description:
Testing individual components or modules
Performed by:
Developers
Example:
Testing a login function
👉 Advantage: Early bug detection
🔹 2) Integration Testing
Description:
Testing interaction between modules
Types:
Top-down
Bottom-up
Hybrid
Example:
Login + Database connection
🔹 3) System Testing
Description:
Testing the complete system
Focus:
Functional and non-functional requirements
Example:
Full application testing
🔹 4) Acceptance Testing
Description:
Testing by end users
Types:
Alpha Testing
Beta Testing
Example:
User testing before release
🔷 3. Types of Testing Based on Technique
🔹 1) Black Box Testing
Description:
Testing without knowing internal code
Focus:
Input and output
👉 Example: Checking login functionality
🔹 2) White Box Testing
Description:
Testing with knowledge of internal code
Focus:
Logic, conditions, loops
🔹 3) Grey Box Testing
Description:
Combination of black and white box
🔷 4. Types of Testing Based on Execution
🔹 1) Manual Testing
Done by humans without tools
🔹 2) Automation Testing
Done using tools/scripts
👉 Faster and repeatable
🔷 5. Types of Functional Testing
🔹 1) Smoke Testing
Basic check to see if build works
🔹 2) Sanity Testing
Quick test after minor changes
🔹 3) Regression Testing
Re-testing after changes
🔹 4) Interface Testing
Testing interaction between systems
🔹 5) End-to-End Testing
Testing complete workflow
🔷 6. Types of Non-Functional Testing
🔹 1) Performance Testing
Checks:
Speed
Response time
Stability
🔹 2) Load Testing
Tests system under expected load
🔹 3) Stress Testing
Tests system beyond limits
🔹 4) Security Testing
Checks vulnerabilities and threats
🔹 5) Usability Testing
Checks ease of use
🔹 6) Compatibility Testing
Tests software on different devices/browsers
🔷 7. Other Important Testing Types
🔹 1) Alpha Testing
Internal testing by developers
🔹 2) Beta Testing
Testing by real users
🔹 3) Exploratory Testing
Testing without predefined test cases
🔹 4) Ad-hoc Testing
Random testing without planning
🔹 5) Installation Testing
Checks installation process
📊 8. Summary Table
Category Types
Levels Unit, Integration, System, Acceptance
Technique Black Box, White Box, Grey Box
Execution Manual, Automation
Functional Smoke, Sanity, Regression
Non-Functional Performance, Security, Usability
🎯 9. Example (Easy Understanding)
Case: Online Shopping App
Unit: Test add-to-cart
Integration: Cart + payment
System: Full app
Acceptance: User testing
Performance: Check speed
Security: Protect payment data
📌 10. Conclusion
Different types of testing ensure complete quality coverage
Each type focuses on specific aspects of software
Combination of all types → high-quality software
Unit no.2
Writing test cases
Functional Testing
Non-functional testing
Performance testing
UI testing. Pre- paring test data
Writing Unit test
Integration test and User Acceptance Tests
Preparing test scenar- ios from Software requirements
Writing test cases
✅ What is a Test Case?
A test case is a set of conditions, inputs, steps, and expected results used to verify whether a
software feature works as intended.
👉 In simple words:
It tells “what to test, how to test, and what result is expected.”
🧩 Components of a Test Case
A standard test case contains the following fields:
1. Test Case ID
Unique identifier (e.g., TC_01, LOGIN_001)
2. Test Case Title / Description
Short explanation of what is being tested
3. Preconditions
Conditions that must be satisfied before executing the test
Example: User must be registered
4. Test Steps
Step-by-step actions to execute the test
5. Test Data
Input values required for testing
6. Expected Result
The correct output/behavior of the system
7. Actual Result
Result obtained after execution
8. Status
Pass / Fail
9. Priority
High / Medium / Low
10. Severity
Impact of failure on the system
🧩 Example of Test Case (Login
Functionality)
📌 Test Case 1: Valid Login
Test Case ID: TC_LOGIN_01
Title: Verify login with valid credentials
Precondition: User is registered
Steps:
1. Open login page
2. Enter valid username
3. Enter valid password
4. Click login button
Test Data:
Username: user123
Password: pass123
Expected Result:
User should be redirected to the dashboard
Actual Result:
User redirected successfully
Status: Pass
📌 Test Case 2: Invalid Password
Test Case ID: TC_LOGIN_02
Title: Verify login with invalid password
Steps:
1. Enter valid username
2. Enter wrong password
3. Click login
Expected Result:
Error message: “Invalid credentials”
Status: Fail (if login succeeds unexpectedly)
🧩 Types of Test Cases
1. Functional Test Cases
Verify system functionality
Example: Login, Signup, Payment
2. Negative Test Cases
Test invalid inputs
Example: Empty password field
3. Boundary Test Cases
Test limits
Example: Password length (min/max)
4. UI Test Cases
Check interface (buttons, layout)
5. Performance Test Cases
Check speed, load handling
6. Security Test Cases
Check authentication, data protection
✍️ How to Write Good Test Cases
✔️ 1. Clear and Simple Language
Avoid ambiguity
✔️ 2. One Test Case = One Scenario
Don’t combine multiple checks
✔️ 3. Include Expected Result
Must be measurable and specific
✔️ 4. Reusable
Design test cases that can be reused
✔️ 5. Traceable
Link test cases with requirements
⚠️ Common Mistakes
Writing vague steps
Missing expected results
Not covering edge cases
Combining multiple scenarios
Not updating test cases
🔄 Test Case vs Test Scenario
Test Case Test Scenario
Detailed steps High-level idea
Specific inputs General functionality
Example: Login with valid data Example: Test login feature
🧩 Test Case Template
Test Case ID:
Title:
Preconditions:
Steps:
Test Data:
Expected Result:
Actual Result:
Status:
Priority:
Severity:
📌 Conclusion
Writing effective test cases:
Improves software quality
Helps detect bugs early
Ensures requirement coverage
Makes testing structured and repeatable
Functional Testing
✅ Functional Testing (in Detail)
Functional Testing is a type of software testing where the system is tested against the
functional requirements/specifications. It checks whether each feature of the application
works correctly as expected.
👉 In simple words:
Functional testing answers — “Is the system doing what it is supposed to do?”
🎯 Objectives of Functional Testing
Verify all features work according to requirements
Ensure correct input → correct output
Validate business logic
Detect functional defects (bugs)
Ensure system behavior is as expected
🧩 Key Characteristics
Based on requirements & specifications
Focuses on what the system does (not how it works internally)
Mostly Black Box Testing
Does not require programming knowledge
Covers user interactions and workflows
🔍 Types of Functional Testing
1. Unit Testing
Tests individual components or modules
Usually done by developers
👉 Example: Testing a login function separately
2. Integration Testing
Tests interaction between modules
👉 Example: Login module + Database connection
3. System Testing
Tests the complete system as a whole
👉 Example: Full application workflow
4. User Acceptance Testing (UAT)
Done by end users or clients
Ensures system meets business needs
5. Smoke Testing
Basic testing to check if build is stable
👉 Example: App opens, login works
6. Sanity Testing
Quick testing after minor changes
👉 Example: Check if bug fix works
7. Regression Testing
Ensures new changes don’t break existing features
⚙️ Functional Testing Process
1. Requirement Analysis
Understand functional requirements
Identify test scenarios
2. Test Planning
Define scope, tools, resources
3. Test Case Design
Write detailed test cases
Include positive & negative scenarios
4. Test Environment Setup
Prepare system, tools, data
5. Test Execution
Run test cases
Record results
6. Defect Reporting
Log bugs if found
7. Retesting & Regression
Verify fixes
Re-run affected test cases
🧩 Example of Functional Testing (Login
Page)
✅ Scenario: User Login
Test Case 1: Valid Credentials
Input: Correct username & password
Expected Output: Login successful
Test Case 2: Invalid Password
Input: Correct username + wrong password
Expected Output: Error message
Test Case 3: Empty Fields
Input: No username/password
Expected Output: Validation message
📊 Functional vs Non-Functional Testing
Functional Testing Non-Functional Testing
Tests features Tests performance, usability
What system does How system performs
Example: Login Example: Load testing
🧩 Techniques Used in Functional Testing
1. Equivalence Partitioning
Divide inputs into valid/invalid groups
2. Boundary Value Analysis
Test edge values
👉 Example: Password length (min/max)
3. Decision Table Testing
Test combinations of inputs
4. State Transition Testing
Test system behavior for different states
✔️ Advantages
Ensures application works correctly
Detects functional bugs early
Improves software quality
Validates user requirements
❌ Limitations
Cannot detect performance issues
Depends heavily on requirements quality
May miss hidden internal defects
📌 Real-Life Example
Think of an ATM machine:
Enter PIN → Validate
Withdraw money → Check balance
Show error if insufficient funds
👉 Functional testing ensures all these actions work correctly.
🧩 Conclusion
Functional Testing is essential because:
It verifies core functionality
Ensures user requirements are met
Builds confidence in the system
Non-functional testing
✅ Non-Functional Testing (in Detail)
Non-Functional Testing is a type of software testing that evaluates how well a system
performs, rather than what it does.
👉 In simple words:
It answers — “How does the system behave under different conditions?”
🎯 Objectives of Non-Functional Testing
Measure performance, speed, and stability
Ensure security and reliability
Evaluate usability and user experience
Check system behavior under stress and load
Improve overall quality of software
🧩 Key Characteristics
Focuses on system behavior & performance
Based on non-functional requirements
Includes quality attributes like speed, scalability
Often requires special tools
Complements functional testing
🔍 Types of Non-Functional Testing
1. Performance Testing
Checks system speed and responsiveness
Includes:
Load Testing → Normal user load
Stress Testing → Beyond limits
Spike Testing → Sudden traffic increase
Endurance Testing → Long-duration usage
👉 Example: Website handling 10,000 users
2. Security Testing
Ensures system is protected from threats
Checks:
Authentication
Authorization
Data protection
👉 Example: Prevent unauthorized login
3. Usability Testing
Tests how easy the system is to use
👉 Example: Is navigation user-friendly?
4. Compatibility Testing
Checks performance across:
o Devices
o Browsers
o Operating systems
👉 Example: App works on Android & iOS
5. Reliability Testing
Ensures system works without failure over time
6. Scalability Testing
Checks ability to handle increased load
👉 Example: Increasing users from 1k to 1M
7. Availability Testing
Measures uptime of system
👉 Example: 99.9% uptime requirement
8. Maintainability Testing
Evaluates ease of fixing bugs and updating system
9. Portability Testing
Checks if software can run in different environments
⚙️ Non-Functional Testing Process
1. Requirement Analysis
Identify non-functional requirements (performance, security)
2. Test Planning
Select tools (e.g., JMeter, LoadRunner)
Define metrics (response time, throughput)
3. Test Design
Create test scenarios and scripts
4. Test Environment Setup
Prepare real-world conditions
5. Test Execution
Run tests and collect data
6. Result Analysis
Compare with expected benchmarks
7. Reporting
Identify bottlenecks and issues
🧩 Example of Non-Functional Testing
📌 Scenario: Website Performance
Test Case:
Input: 5000 users accessing simultaneously
Expected Result: Response time < 3 seconds
📌 Scenario: Security Testing
Test Case:
Input: Wrong password attempts
Expected Result: Account locked after 5 attempts
📊 Functional vs Non-Functional Testing
Functional Testing Non-Functional Testing
What system does How system performs
Based on features Based on quality
Example: Login works Example: Login speed
🧩 Important Metrics
Response Time → Time to respond
Throughput → Requests handled per second
CPU/Memory Usage
Error Rate
Uptime/Availability
✔️ Advantages
Improves system performance
Ensures security and reliability
Enhances user experience
Helps in scalability planning
❌ Limitations
Requires specialized tools
Time-consuming
Expensive compared to functional testing
📌 Real-Life Example
Think of an e-commerce app:
Functional → Can you place an order?
Non-functional → How fast does it load during a sale?
🧩 Conclusion
Non-Functional Testing is important because:
It ensures the system is fast, secure, and stable
Improves user satisfaction
Prevents system failures under load
Performance testing
🚀 Performance Testing (in Detail)
Performance Testing is a type of non-functional testing that checks how a system performs
in terms of speed, responsiveness, stability, and scalability under different workloads.
👉 In simple words:
It answers — “How fast and stable is the system under load?”
🎯 Objectives of Performance Testing
Measure response time of the system
Check system stability under load
Identify bottlenecks (slow parts)
Ensure scalability for future growth
Validate system behavior under real-world conditions
🧩 Key Characteristics
Focuses on performance metrics
Tests system under various loads
Requires tools and simulation
Helps improve user experience
Conducted after functional testing
🔍 Types of Performance Testing
1. Load Testing
Tests system under expected user load
👉 Example: 1,000 users using an app simultaneously
2. Stress Testing
Tests system beyond its limits
👉 Example: 10,000 users when capacity is 5,000
✔️ Goal: Find breaking point
3. Spike Testing
Tests sudden increase/decrease in load
👉 Example: Flash sale traffic surge
4. Endurance Testing (Soak Testing)
Tests system for long duration
👉 Example: Running system for 24–48 hours
✔️ Checks memory leaks, degradation
5. Volume Testing
Tests system with large amount of data
👉 Example: Database with millions of records
6. Scalability Testing
Checks ability to scale up/down
👉 Example: Adding more users gradually
⚙️ Performance Testing Process
1. Requirement Analysis
Identify performance goals
Example: Response time < 2 seconds
2. Test Planning
Select tools
Define workload mode
3. Test Design
Create scenarios (user login, search, payment)
4. Environment Setup
Configure hardware, network, servers
5. Test Execution
Simulate users and monitor performance
6. Monitoring & Analysis
Collect metrics
Identify slow components
7. Reporting
Document findings
Suggest improvements
🧩 Example of Performance Testing
📌 Scenario: E-commerce Website
Test Case:
Users: 5,000 simultaneous users
Action: Browse products & checkout
Expected Results:
Page load time < 3 seconds
No crashes
Error rate < 1%
📊 Performance Metrics
🔹 1. Response Time
Time taken to respond to a request
🔹 2. Throughput
Number of requests handled per second
🔹 3. Latency
Delay before response starts
🔹 4. Error Rate
Percentage of failed requests
🔹 5. CPU & Memory Usage
Resource utilization
🔹 6. Concurrent Users
Number of active users
🛠️ Tools Used for Performance Testing
Apache JMeter – Open-source tool for load testing
LoadRunner – Enterprise-level tool
Gatling – High-performance testing tool
NeoLoad – Continuous testing tool
✔️ Advantages
Improves system speed & efficiency
Prevents system crashes
Enhances user experience
Helps in capacity planning
❌ Limitations
Requires specialized tools & skills
Can be time-consuming
Needs realistic environment setup
📌 Real-Life Example
Think of apps like Amazon or Flipkart during big sales:
Millions of users log in at once
Performance testing ensures:
o Pages load fast
o Payments don’t fail
o App doesn’t crash
🧩 Conclusion
Performance Testing is critical because:
It ensures fast, stable, and scalable systems
Prevents failures during high traffic
Improves customer satisfaction
UI testing. Pre- paring test data
🎨 UI Testing (User Interface Testing) – In Detail
UI Testing verifies that the visual elements and user interactions of an application work
correctly and provide a smooth user experience.
👉 In simple words:
It answers — “Does the application look right and behave correctly from the user’s
perspective?”
🎯 Objectives of UI Testing
Ensure correct layout and design
Validate user interactions (clicks, inputs)
Check consistency across screens
Verify responsiveness (mobile, tablet, desktop)
Improve user experience (UX)
🧩 What is Tested in UI Testing?
🔹 1. Visual Elements
Buttons, text fields, labels, images
Fonts, colors, alignment
🔹 2. Navigation
Menus, links, page transitions
🔹 3. Input Controls
Forms, dropdowns, checkboxes
🔹 4. Responsiveness
Layout on different screen sizes
🔹 5. Error Messages
Correct and clear validation messages
🔍 Types of UI Testing
1. Manual UI Testing
Tester checks UI manually
Useful for visual and usability checks
2. Automated UI Testing
Uses tools/scripts to test UI
Popular Tools:
Selenium
Cypress
TestComplete
3. Cross-Browser Testing
Checks UI in different browsers
👉 Chrome, Firefox, Edge
4. Responsive Testing
Tests UI on different devices
👉 Mobile, tablet, desktop
⚙️ UI Testing Process
1. Requirement Analysis
Understand UI design (mockups, wireframes)
2. Test Case Design
Create UI-specific test cases
3. Environment Setup
Set up devices, browsers
4. Test Execution
Perform manual/automated testing
5. Defect Reporting
Log UI issues (misalignment, broken buttons)
🧩 Example of UI Testing
📌 Scenario: Login Page UI
Test Cases:
Check login button is visible and clickable
Verify placeholder text in input fields
Check alignment of username/password fields
Validate error message for empty fields
✔️ Advantages
Improves user satisfaction
Ensures attractive and consistent UI
Detects visual defects early
❌ Limitations
Time-consuming (manual testing)
Automation can be complex
Frequent UI changes require updates
📌 Real-Life Example
Apps like Instagram or WhatsApp:
Buttons must be correctly placed
Navigation should be smooth
UI must look good on all devices
👉 UI testing ensures this experience.
🧩 Conclusion (UI Testing)
UI Testing is essential because:
It ensures good look and feel
Improves usability
Enhances overall user experience
📊 Preparing Test Data (in Detail)
✅ What is Test Data?
Test Data is the set of input values used to execute test cases.
👉 In simple words:
It is the data you use to test your application.
🎯 Objectives of Test Data Preparation
Ensure accurate testing
Cover all scenarios (positive & negative)
Validate real-world conditions
Improve test coverage
🧩 Types of Test Data
1. Valid Test Data
Correct input values
👉 Example:
Username: user123
Password: pass123
2. Invalid Test Data
Incorrect or unexpected inputs
👉 Example: Wrong password
3. Boundary Data
Edge values
👉 Example: Password length = 8 (min limit)
4. Null/Empty Data
No input
👉 Example: Empty username
5. Large Data Sets
Used for performance testing
⚙️ Methods of Test Data Preparation
1. Manual Creation
Tester creates data manually
Suitable for small projects
2. Automated Generation
Tools generate large datasets
3. Production Data (Masked)
Real data with sensitive info hidden
4. Data Subsetting
Use a small portion of large data
🧩 Example of Test Data (Login System)
Scenario Username Password Expected Result
Valid login user1 pass1 Success
Wrong password user1 wrong Error
Empty fields "" "" Validation
Boundary case user 12345678 Check limit
🧩 Best Practices for Test Data Preparation
Use realistic data
Cover all edge cases
Avoid sensitive data (use masking)
Keep data reusable
Maintain separate test datasets
✔️ Advantages
Improves test accuracy
Ensures better defect detection
Helps simulate real-world scenarios
❌ Challenges
Managing large datasets
Maintaining data consistency
Protecting sensitive information
📌 Conclusion (Test Data)
Preparing good test data:
Ensures effective testing
Improves software quality
Helps identify hidden bugs
Writing Unit test
✅ Unit Testing (in Detail)
Unit Testing is a type of software testing where individual components (units) of a
program are tested separately to ensure they work correctly.
👉 In simple words:
It answers — “Is this small piece of code working correctly?”
🎯 Objectives of Unit Testing
Verify correctness of individual functions/methods
Detect bugs early in development
Ensure code reliability
Simplify debugging
Improve code quality
🧩 What is a “Unit”?
A unit is the smallest testable part of software, such as:
A function
A method
A class
A module
👉 Example:
A function that calculates the sum of two numbers.
🔍 Key Characteristics
Done by developers
Performed during coding phase
Mostly white-box testing
Fast and easy to automate
Independent of other modules
⚙️ Unit Testing Process
1. Identify Units
Select functions or methods to test
2. Write Test Cases
Define inputs and expected outputs
3. Set Up Test Environment
Use testing frameworks/tools
4. Execute Tests
Run test cases
5. Compare Results
Check expected vs actual output
6. Fix Bugs
Correct errors and retest
🧩 Example of Unit Testing
📌 Function: Add Two Numbers
int add(int a, int b) {
return a + b;
}
✅ Unit Test Cases:
Test Case Input Expected Output
TC1 (2, 3) 5
TC2 (-1, 1) 0
TC3 (0, 0) 0
🛠️ Unit Testing Tools
JUnit (Java)
TestNG
NUnit
PyTest
💻 Example Using JUnit
import static [Link].*;
import [Link];
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, [Link](2, 3));
}
}
👉 Here:
@Test defines a test method
assertEquals() checks expected vs actual result
🔄 Types of Unit Testing
1. Manual Unit Testing
Tester manually checks code
Rarely used
2. Automated Unit Testing
Uses tools/frameworks
Fast and efficient
🧩 Important Concepts
🔹 Test Stub
Dummy module that simulates called functions
🔹 Test Driver
Simulates calling module
👉 Used when full system is not ready
🔹 Mock Objects
Fake objects used to simulate real ones
📊 Unit Testing vs Integration Testing
Unit Testing Integration Testing
Tests single unit Tests combined modules
Done by developers Done by testers
Early stage After unit testing
✔️ Advantages
Early bug detection
Easy debugging
Improves code quality
Supports refactoring
Saves cost
❌ Limitations
Cannot detect integration issues
Requires programming knowledge
Time-consuming for large systems
📌 Real-Life Example
Think of a calculator app:
Unit testing checks:
o Addition function
o Subtraction function
o Multiplication function
👉 Each is tested individually
🧩 Conclusion
Unit Testing is important because:
It ensures each part works correctly
Helps build reliable software
Reduces future defects
Integration test and User Acceptance Tests
🔗 Integration Testing (in Detail)
Integration Testing is a level of software testing where individual modules are combined
and tested together to verify their interaction.
👉 In simple words:
It answers — “Do different parts of the system work correctly when combined?”
🎯 Objectives of Integration Testing
Verify data flow between modules
Detect interface defects
Ensure modules interact correctly
Validate API communication
🧩 Why Integration Testing is Needed?
Even if individual modules (unit testing) work perfectly, errors can occur when they interact.
👉 Example:
Login module works
Database module works
❌ But login fails due to wrong data exchange
🔍 Types of Integration Testing
1. Big Bang Integration Testing
All modules are integrated at once
Testing done after full integration
✔️ Simple
❌ Hard to find bugs
2. Top-Down Integration Testing
Testing starts from top-level modules
Uses:
Stubs (dummy lower modules)
✔️ Early validation of main logic
3. Bottom-Up Integration Testing
Starts from lower-level modules
Uses:
Drivers (simulate higher modules)
✔️ Easy to detect low-level issues
4. Incremental Integration Testing
Modules integrated step-by-step
✔️ Most effective approach
⚙️ Integration Testing Process
1. Identify Modules
Determine components to integrate
2. Design Test Cases
Focus on interfaces & data flow
3. Setup Environment
Use stubs/drivers if needed
4. Execute Tests
Run integration scenarios
5. Log Defects
Identify communication errors
6. Retesting
Fix and re-test
🧩 Example of Integration Testing
📌 Scenario: E-commerce App
Modules:
Login
Product Page
Payment Gateway
Test Case:
1. User logs in
2. Selects product
3. Proceeds to payment
Expected Result:
Data flows correctly between modules
Payment is processed successfully
✔️ Advantages
Detects interface errors early
Ensures module compatibility
Improves system reliability
❌ Limitations
Complex setup
Requires stubs/drivers
Time-consuming
📌 Real-Life Example
Apps like Amazon:
Login → Product → Cart → Payment
👉 Integration testing ensures smooth flow between all modules
🧩 Conclusion (Integration Testing)
Integration Testing is important because:
It verifies module interaction
Prevents system failures
Ensures smooth workflow
👤 User Acceptance Testing (UAT) – In
Detail
User Acceptance Testing (UAT) is the final level of testing where the end users or clients
validate the system to ensure it meets business requirements.
👉 In simple words:
It answers — “Does the system meet user needs and expectations?”
🎯 Objectives of UAT
Validate business requirements
Ensure system is ready for production
Gain client approval
Identify real-world issues
🧩 Key Characteristics
Performed by end users or clients
Happens after system testing
Based on real-world scenarios
Final step before release
🔍 Types of UAT
1. Alpha Testing
Performed at developer’s site
Internal users test the system
2. Beta Testing
Performed by real users in real environment
👉 Example: App released to limited users
3. Business Acceptance Testing (BAT)
Validates business processes
4. Contract Acceptance Testing (CAT)
Checks system against contract requirements
5. Regulatory Acceptance Testing
Ensures compliance with laws
⚙️ UAT Process
1. Requirement Analysis
Understand business needs
2. Test Planning
Define scope and scenarios
3. Test Case Creation
Based on real-world usage
4. Test Execution
Users perform testing
5. Defect Logging
Report issues
6. Approval/Sign-off
Client approves system
🧩 Example of UAT
📌 Scenario: Banking Application
Test Case:
1. User logs in
2. Transfers money
3. Checks balance
Expected Result:
Transaction successful
Balance updated correctly
✔️ Advantages
Ensures customer satisfaction
Validates real-world usability
Reduces risk of failure after release
❌ Limitations
Depends on user involvement
May miss technical defects
Time-consuming
📌 Real-Life Example
Apps like Paytm:
Users test:
o Payments
o Recharge
o Wallet usage
👉 UAT ensures everything works as expected before launch
📊 Integration Testing vs UA
Integration Testing UAT
Tests module interaction Tests user requirements
Done by testers Done by users/clients
Technical focus Business focus
Before system testing Final stage
🧩 Final Conclusion
🔗 Integration Testing:
Ensures modules work together
👤 UAT:
Ensures system satisfies users
👉 Both are critical for delivering high-quality, reliable software
Preparing test scenar- ios from Software requirements
🧩 Preparing Test Scenarios from Software Requirements (in Detail)
Test Scenarios are high-level descriptions of what to test, derived directly from the
Software Requirements Specification (SRS) or user stories.
👉 In simple words:
They answer — “What all situations should be tested?”
🎯 Objectives of Test Scenario Preparation
Ensure complete requirement coverage
Identify all possible use cases
Simplify test planning
Provide a high-level testing view
Help in creating detailed test cases
📄 What is Software Requirement?
Software requirements describe:
Functional requirements (features)
Non-functional requirements (performance, security)
👉 Example:
User should be able to login
System should respond within 2 seconds
🧩 What is a Test Scenario?
A Test Scenario is a one-line statement describing a functionality to be tested.
👉 Example:
Verify login functionality
Verify password reset
🔄 Steps to Prepare Test Scenarios from
Requirements
1. 📖 Understand the Requirements
Read SRS carefully
Identify:
o Features
o Inputs
o Outputs
👉 Focus on user actions and system behavior
2. 🧩 Identify Testable Areas
Break requirements into:
Functional modules
User workflows
👉 Example (E-commerce):
Login
Product search
Add to cart
Payment
3. ✍️ Create High-Level Scenarios
Write simple, clear scenarios
👉 Use format:
“Verify that…”
“Check whether…”
4. 🔍 Cover All Possible Cases
Include:
Positive scenarios
Negative scenarios
Edge cases
👉 Example:
Valid login
Invalid login
Empty fields
5. 🔗 Map Scenarios to Requirements (Traceability)
Ensure every requirement has at least one scenario
👉 Use RTM (Requirement Traceability Matrix)
6. 🧩 Review and Refine
Remove duplicates
Ensure clarity and completeness
🧩 Example: Login Requirement
📄 Requirement:
User should be able to login using username and password.
✅ Test Scenarios:
1. Verify login with valid credentials
2. Verify login with invalid password
3. Verify login with invalid username
4. Verify login with empty fields
5. Verify password masking
6. Verify error message display
7. Verify “Forgot Password” functionality
🧩 Example: E-commerce Requirement
📄 Requirement:
User can purchase products online.
✅ Test Scenarios:
Verify product search
Verify product details page
Verify add to cart
Verify checkout process
Verify payment functionality
Verify order confirmation
🧩 Techniques for Identifying Test Scenarios
1. Use Case Analysis
Analyze user interactions
2. Business Process Flow
Follow step-by-step workflow
3. Requirement Breakdown
Divide into smaller parts
4. Mind Mappin
Visualize scenarios
📊 Test Scenario vs Test Case
Test Scenario Test Case
High-level Detailed
What to test How to test
One-line Step-by-step
✔️ Best Practices
Keep scenarios simple and clear
Cover all functionalities
Avoid too much detail
Use user perspective
Ensure traceability
❌ Common Mistakes
Missing edge cases
Writing too detailed scenarios
Ignoring negative testing
Not linking to requirements
📌 Real-Life Example
Apps like Amazon:
Requirement → “User can place an order”
Test Scenarios:
Verify product selection
Verify cart functionality
Verify payment options
Verify order confirmation
🧩 Conclusion
Preparing test scenarios from requirements:
Ensures complete testing coverage
Helps identify all possible user interactions
Forms the foundation for test cases
UnitNo.3
Test execution
Test Oracles
Test planning
Test strategy including when to stop testing
Test-coverage Traceability matrix
JIRA
Bugzilla and other bug tracking tools
Test data mining
Test reporting.
Test execution
Test Execution (Software Testing) – Detailed Explanation
Test Execution is a crucial phase in the Software Testing Life Cycle (STLC) where the
actual testing of the software is performed by executing test cases on the application to
identify defects.
1. What is Test Execution?
Test Execution is the process of:
Running test cases on the software
Comparing actual results with expected results
Identifying defects (bugs)
Reporting issues to developers
👉 In simple words:
It is the phase where testing becomes practical instead of theoretical.
2. Objectives of Test Execution
Validate that the software works as per requirements
Detect defects/bugs
Ensure system stability and performance
Verify functionality, usability, and reliability
3. Pre-requisites for Test Execution
Before starting test execution, the following must be ready:
✔️ Test Plan approved
✔️ Test Cases written and reviewed
✔️ Test Data prepared
✔️ Test Environment set up
✔️ Build (software version) received from developers
4. Test Execution Process (Step-by-Step)
Step 1: Understand Test Cases
Tester reviews test cases
Understands expected results and steps
Step 2: Set Up Test Environment
Configure hardware and software
Ensure tools and data are available
Step 3: Execute Test Cases
Run test cases one by one
Provide input and observe output
Step 4: Compare Results
Match actual result with expected result
👉 If match → Pass
👉 If mismatch → Fail
Step 5: Log Defects
If test fails, log a defect (bug)
Include:
o Steps to reproduce
o Expected result
o Actual result
o Screenshots
Step 6: Retesting
After bug is fixed, test again
Step 7: Regression Testing
Ensure new changes didn’t break existing features
Step 8: Update Test Status
Mark test cases as:
o Pass
o Fail
o Blocked
o Skipped
5. Test Execution Status Types
Status Meaning
Pass Expected = Actual
Fail Expected ≠ Actual
Blocked Cannot execute due to issue
Skipped Not executed
In Progress Currently running
6. Defect Life Cycle in Test Execution
1. Tester finds bug
2. Logs defect
3. Developer fixes it
4. Tester retests
5. If fixed → Closed
6. If not → Reopened
7. Types of Testing During Execution
Functional Testing
Integration Testing
System Testing
Regression Testing
Performance Testing
User Acceptance Testing (UAT)
8. Entry and Exit Criteria
Entry Criteria
Test cases ready
Environment setup
Build available
Exit Criteria
All test cases executed
Defects logged and resolved
Test summary report prepared
9. Test Execution Metrics
Used to measure progress:
Number of test cases executed
Pass/Fail percentage
Defect density
Test coverage
10. Challenges in Test Execution
Unstable test environment
Incomplete requirements
Time constraints
Frequent changes in build
Poor test data
11. Best Practices
Execute high-priority test cases first
Maintain proper documentation
Use automation tools where possible
Report defects clearly
Perform regular regression testing
12. Test Execution Deliverables
Test Execution Report
Defect Reports
Test Logs
Metrics Report
Conclusion
Test Execution is the heart of software testing where:
The system is actually tested
Bugs are identified and fixed
Software quality is validated
Without proper test execution, even well-designed test cases are useless.
Test Oracles
Test Oracles – Detailed Explanation
1. What is a Test Oracle?
A Test Oracle is a mechanism used in software testing to determine whether the output of a
test case is correct or incorrect.
👉 In simple words:
A test oracle answers the question:
“Is the result of the test correct?”
2. Why Do We Need a Test Oracle?
During testing, after executing a test case, we get an actual result.
But how do we know if it is correct?
➡️ That’s where a Test Oracle is used:
It provides the expected result
Helps compare expected vs actual output
Decides Pass or Fail
3. Example of Test Oracle
Test Case: Login functionality
Input: Username = "admin", Password = "1234"
Expected Result: Login successful
👉 Oracle: Requirement document or expected behavior
If system allows login → ✅ Pass
If not → ❌ Fail
4. Types of Test Oracles
1. Specification-based Oracle
Based on requirement documents (SRS, design docs)
Most common type
👉 Example:
Requirement: “Password must be at least 8 characters”
Oracle checks if system follows this rule
2. Derived Oracle
Expected results are calculated manually or using logic
👉 Example:
Input: 2 + 3
Expected: 5
3. Regression Oracle
Uses previous version results as reference
👉 If old version output = X
👉 New version should also give X
4. Consistency Oracle
Compares outputs from different systems or versions
👉 Example:
Same input in two systems → results should match
5. Human Oracle
A person manually verifies the result
👉 Example:
Checking UI design correctness
6. Heuristic Oracle
Based on experience, intuition, or rules of thumb
👉 Example:
“App should not crash on invalid input”
5. Sources of Test Oracles
Test oracles can come from:
Requirement specifications
Design documents
User manuals
Previous versions of software
Domain knowledge
Industry standards
6. Characteristics of a Good Test Oracle
✔️ Accurate
✔️ Reliable
✔️ Consistent
✔️ Easy to use
✔️ Clearly defined
7. Challenges of Test Oracles
Difficult to define for complex systems
Ambiguous requirements
Lack of documentation
Dynamic or unpredictable outputs (e.g., AI systems)
8. Oracle Problem
What is Oracle Problem?
It is the difficulty in determining the correct expected result.
👉 Occurs when:
No clear requirements
Complex calculations
Non-deterministic systems
9. Test Oracle vs Expected Result
Aspect Test Oracle Expected Result
Meaning Mechanism to decide correctness Specific output
Scope Broader Specific
Example Requirement document "Login successful"
10. Role of Test Oracle in Testing
Helps in test validation
Ensures accuracy of results
Reduces ambiguity
Improves test reliability
11. Real-World Examples
Example 1: Calculator App
Input: 10 ÷ 2
Oracle: Mathematical rule
Expected: 5
Example 2: E-commerce Website
Add item to cart
Oracle: Requirement
Expected: Item appears in cart
Example 3: UI Testing
Oracle: Design guidelines
Expected: Proper alignment and color
Conclusion
Test Oracles are essential because they:
Define what is correct behavior
Help determine test success or failure
Improve software quality
👉 Without a test oracle, testing becomes guesswork instead of verification.
Test planning
Test Planning (Software Testing) – Detailed Explanation
Test Planning is one of the most critical phases in the Software Testing Life Cycle
(STLC). It defines how testing will be carried out, ensuring a structured and efficient
testing process.
1. What is Test Planning?
Test Planning is the process of:
Defining testing strategy
Identifying resources, scope, schedule, and tools
Preparing a Test Plan document
👉 In simple words:
It is a blueprint of the entire testing process.
2. Objectives of Test Planning
Ensure proper test coverage
Define roles and responsibilities
Estimate time, cost, and effort
Identify risks and mitigation strategies
Plan testing activities systematically
3. When is Test Planning Done?
After requirement analysis
Before test case design and execution
👉 It is done early to avoid confusion later.
4. Test Planning Process (Step-by-Step)
Step 1: Requirement Analysis
Study Software Requirement Specification (SRS)
Identify testable requirements
Step 2: Define Test Strategy
Decide:
o Testing types (functional, performance, etc.)
o Testing techniques (manual/automation)
Step 3: Define Scope
What will be tested
What will NOT be tested
Step 4: Resource Planning
Assign testers
Define roles:
o Test Manager
o Test Engineer
o Automation Engineer
Step 5: Test Environment Setup Plan
Hardware and software requirements
Tools required
Step 6: Schedule Planning
Define timelines for:
o Test design
o Test execution
o Bug fixing
Step 7: Risk Analysis
Identify possible risks:
o Lack of resources
o Tight deadlines
o Unstable build
👉 Plan mitigation strategies
Step 8: Test Deliverables
Define outputs:
o Test Plan
o Test Cases
o Test Reports
Step 9: Approval
Test plan reviewed and approved by stakeholders
5. Test Plan Document
A Test Plan is the main output of test planning.
Contents of Test Plan
1. Introduction
2. Objectives
3. Scope (In-scope / Out-of-scope)
4. Test Strategy
5. Test Environment
6. Resources & Roles
7. Schedule & Milestones
8. Test Deliverables
9. Risk & Mitigation
10. Entry & Exit Criteria
11. Tools to be used
6. Types of Test Plans
Master Test Plan
Test Level Plan (Unit, Integration, System)
Agile Test Plan
Regression Test Plan
7. Entry and Exit Criteria
Entry Criteria
Requirements finalized
Resources available
Environment ready
Exit Criteria
All test cases executed
Critical defects fixed
Test objectives achieved
8. Test Planning Techniques
Risk-based planning
Requirement-based planning
Resource-based planning
9. Challenges in Test Planning
Changing requirements
Limited time
Lack of skilled resources
Poor communication
10. Best Practices
Start early
Keep plan flexible
Update regularly
Communicate clearly
Use tools (JIRA, TestRail, etc.)
11. Role of Test Manager in Planning
Prepares test plan
Allocates resources
Monitors progress
Handles risks
12. Importance of Test Planning
Provides clear direction
Reduces risk and confusion
Improves quality and efficiency
Ensures timely delivery
Conclusion
Test Planning is the foundation of successful testing.
A well-prepared test plan ensures:
Better organization
Efficient execution
High-quality software
👉 Without proper planning, testing becomes unstructured and ineffective.
Test strategy including when to stop testing
Test Strategy (Including When to Stop Testing) – Detailed
Explanation
1. What is Test Strategy?
A Test Strategy is a high-level document that defines the overall approach to testing in a
project.
👉 In simple words:
It answers:
“How will we test the software?”
It is usually prepared by a Test Manager and is often part of or linked to the Test Plan.
2. Objectives of Test Strategy
Define testing approach
Ensure quality standards
Provide guidelines for testing activities
Improve consistency and efficiency
3. Key Components of Test Strategy
1. Scope and Objectives
What features will be tested
What will not be tested
2. Test Levels
Unit Testing
Integration Testing
System Testing
User Acceptance Testing (UAT)
3. Test Types
Functional Testing
Non-functional Testing (Performance, Security, Usability)
4. Testing Approach
Manual Testing
Automation Testing
Risk-based Testing
5. Test Environment
Hardware, software, network setup
Tools and configurations
6. Tools Used
Test management tools (e.g., JIRA)
Automation tools (e.g., Selenium)
7. Resource Planning
Roles and responsibilities
Skill requirements
8. Risk Management
Identify risks
Define mitigation strategies
9. Test Data Management
How test data will be created and maintained
10. Defect Management Process
How bugs will be reported, tracked, and resolved
4. Types of Test Strategies
1. Analytical Strategy
Based on risk analysis
👉 Focus on high-risk areas
2. Model-Based Strategy
Uses models (flowcharts, state diagrams)
3. Methodical Strategy
Follows predefined standards or checklists
4. Process-Oriented Strategy
Based on standards like ISO
5. Reactive Strategy
Testing after development is completed
6. Regression-Averse Strategy
Focus on avoiding regression issues
5. Difference Between Test Plan and Test Strategy
Aspect Test Plan Test Strategy
Level Detailed High-level
Focus What, when, who How
Prepared by Test Manager Test Manager/Organization
Changes Frequently updated Rarely changed
6. When to Stop Testing (Exit Criteria)
This is one of the most important parts of test strategy.
👉 Testing cannot go on forever, so we define stop conditions.
1. Exit Criteria Definition
Exit criteria are the conditions that must be satisfied to stop testing.
2. Common Conditions to Stop Testing
1. All Test Cases Executed
100% or acceptable percentage completed
2. Defect Rate is Acceptable
No critical or high-priority bugs remain
Remaining bugs are minor
3. Test Coverage Achieved
Requirements coverage meets target (e.g., 95%)
4. Deadline Reached
Project timeline ends
5. Risk is Acceptable
Remaining risks are low and manageable
6. Pass Rate Achieved
Example: 95% test cases passed
7. Stakeholder Approval
Client or manager approves release
7. Example of Exit Criteria
100% test cases executed
95% passed
No critical defects open
All high defects fixed
Test report prepared
8. Challenges in Deciding When to Stop Testing
Time pressure
Budget constraints
Incomplete requirements
Hidden defects
👉 So, stopping testing is a decision based on risk, quality, and time.
9. Best Practices for Test Strategy
Define clear entry and exit criteria
Use risk-based testing
Balance manual and automation testing
Continuously review strategy
Align with business goals
10. Importance of Test Strategy
Provides clear direction
Reduces confusion
Improves test efficiency
Ensures high-quality software
Conclusion
A Test Strategy is the backbone of testing that defines:
How testing will be performed
What approach will be used
When testing should stop
👉 Especially, defining when to stop testing ensures:
Efficient use of time
Controlled quality
Timely product release
Test-coverage Traceability matrix
Test Coverage & Traceability Matrix – Detailed
Explanation
1. Test Coverage
What is Test Coverage?
Test Coverage is a measure that describes:
👉 How much of the software is tested
It ensures that:
All requirements are tested
All features are verified
No part of the system is left untested
Objectives of Test Coverage
Ensure complete testing of requirements
Identify missing test cases
Improve software quality
Reduce risk of defects
Types of Test Coverage
1. Requirement Coverage
Checks if all requirements are tested
👉 Example:
If there are 10 requirements → all 10 should have test cases
2. Code Coverage
Measures how much code is executed during testing
Types:
Statement Coverage
Branch Coverage
Path Coverage
3. Functional Coverage
Verifies all functionalities are tested
4. Risk Coverage
Focuses on high-risk areas
Test Coverage Formula
[
\text{Test Coverage} = \frac{\text{Number of items tested}}{\text{Total items}} \times 100
]
👉 Example:
Tested requirements = 90
Total requirements = 100
Coverage = 90%
Importance of Test Coverage
Avoids missing features
Ensures complete validation
Improves confidence in software
Helps in release decisions
Limitations of Test Coverage
100% coverage does not guarantee zero defects
Can be time-consuming
May ignore quality of test cases
2. Traceability Matrix (RTM – Requirement Traceability Matrix)
What is a Traceability Matrix?
A Traceability Matrix (RTM) is a document that maps:
👉 Requirements ↔ Test Cases
It ensures that:
Every requirement has test cases
Every test case is linked to a requirement
Purpose of RTM
Track requirement coverage
Ensure no requirement is missed
Help in impact analysis
Improve test management
Types of Traceability
1. Forward Traceability
Requirement → Test Cases
👉 Ensures all requirements are tested
2. Backward (Reverse) Traceability
Test Cases → Requirement
👉 Ensures no unnecessary test cases
3. Bidirectional Traceability
Both forward and backward
👉 Best practice
Structure of RTM
Requirement ID Requirement Description Test Case ID Status
R1 Login functionality TC1, TC2 Pass
R2 Registration TC3 Fail
R3 Logout TC4 Not Executed
Example of RTM
Requirements
R1: User login
R2: Add to cart
Test Cases
TC1: Valid login
TC2: Invalid login
TC3: Add item
👉 Mapping ensures all requirements are covered.
Benefits of Traceability Matrix
✔️ Ensures 100% requirement coverage
✔️ Helps in change impact analysis
✔️ Improves test transparency
✔️ Useful for audits and documentation
RTM in Testing Lifecycle
Created during test planning/design
Updated during test execution
Used during reporting
Difference Between Test Coverage & RTM
Aspect Test Coverage Traceability Matrix
Meaning Measurement Document
Purpose Check completeness Map requirements
Output Percentage Table
Usage Quality metric Tracking tool
Challenges in RTM
Maintaining updates
Handling requirement changes
Large projects → complex matrix
Best Practices
Keep RTM updated
Use automation tools
Maintain bidirectional traceability
Link defects also (advanced RTM)
Conclusion
Test Coverage ensures how much is tested
Traceability Matrix ensures what is tested and mapped
👉 Together, they:
Guarantee complete testing
Reduce risk
Improve software quality
JIRA
JIRA – Detailed Explanation
1. What is JIRA?
JIRA is a popular project management and issue tracking tool developed by Atlassian.
👉 In simple words:
It is used to:
Track bugs (defects)
Manage tasks and projects
Plan and monitor software development
2. Key Features of JIRA
1. Issue Tracking
Track bugs, tasks, and improvements
Each issue has:
o ID
o Description
o Status
o Priority
2. Agile Project Management
Supports:
o Scrum
o Kanban
👉 Helps teams manage sprints and workflows
3. Custom Workflows
Define steps like:
o To Do → In Progress → Done
4. Reporting & Dashboards
Visual reports:
o Burndown charts
o Velocity charts
5. Integration
Works with tools like:
o GitHub
o Jenkins
o Confluence
3. Important Terminologies in JIRA
1. Issue
A single task, bug, or feature
2. Project
Collection of related issues
3. Issue Types
Bug
Task
Story
Epic
4. Workflow
Lifecycle of an issue
👉 Example: Open → In Progress → Resolved → Closed
5. Sprint
Fixed time period to complete work (usually 2 weeks)
6. Backlog
List of pending tasks
4. JIRA Issue Lifecycle
1. To Do → Issue created
2. In Progress → Work started
3. In Review → Under checking
4. Done/Closed → Completed
5. How JIRA is Used in Testing
1. Bug Tracking
Testers log defects
Developers fix them
2. Test Case Management (Indirect)
Link test cases to issues
3. Traceability
Connect:
o Requirements
o Test Cases
o Bugs
4. Reporting
Track:
o Number of bugs
o Severity levels
o Test progress
6. Steps to Create a Bug in JIRA
1. Go to project
2. Click Create Issue
3. Select Bug
4. Fill details:
o Summary
o Description
o Steps to reproduce
o Expected result
o Actual result
5. Set priority & assign
6. Submit
7. Fields in a JIRA Bug
Issue ID
Summary
Description
Priority (High, Medium, Low)
Status
Assignee
Reporter
Attachments
8. Advantages of JIRA
✔️ Easy bug tracking
✔️ Supports Agile methodology
✔️ Customizable workflows
✔️ Strong reporting features
✔️ Team collaboration
9. Disadvantages of JIRA
❌ Complex for beginners
❌ Expensive for small teams
❌ Requires setup and configuration
10. JIRA vs Other Tools
Feature JIRA Other Tools
Flexibility High Medium
Agile Support Excellent Limited
Customization High Low
11. Real-Life Example
👉 E-commerce Website Testing
Tester finds bug: “Add to cart not working”
Logs bug in JIRA
Developer fixes it
Tester retests
Bug marked Closed
12. Best Practices
Write clear bug descriptions
Use proper priority levels
Update issue status regularly
Link related issues
Use dashboards for tracking
Conclusion
JIRA is one of the most widely used tools for:
Bug tracking
Project management
Agile development
👉 It improves:
Team collaboration
Transparency
Software quality
Bugzilla and other bug tracking tools
Bugzilla and Other Bug Tracking Tools – Detailed
Explanation
1. What is Bugzilla?
Bugzilla is an open-source bug tracking tool originally developed by Mozilla Foundation.
👉 In simple words:
It is used to:
Report bugs
Track defects
Manage software issues
2. Key Features of Bugzilla
1. Bug Tracking
Create, update, and track bugs easily
Each bug has a unique ID
2. Advanced Search
Search bugs using filters:
o Status
o Priority
o Assignee
3. Email Notifications
Automatic alerts when bug status changes
4. Custom Fields
Add fields based on project needs
5. Reporting
Generate reports for:
o Bug status
o Progress tracking
3. Bugzilla Terminology
1. Bug
A defect or issue
2. Product
Software or system being tested
3. Component
Sub-part of a product
4. Version
Specific release of software
5. Severity vs Priority
Severity → Impact of bug
Priority → Urgency to fix
4. Bug Lifecycle in Bugzilla
1. New → Bug reported
2. Assigned → Assigned to developer
3. In Progress → Fixing
4. Resolved → Fixed
5. Verified → Tested
6. Closed → Completed
5. Steps to Report a Bug in Bugzilla
1. Login to Bugzilla
2. Select product
3. Click New Bug
4. Enter:
o Summary
o Description
o Steps to reproduce
o Severity & Priority
5. Submit bug
6. Advantages of Bugzilla
✔️ Free and open-source
✔️ Highly customizable
✔️ Strong search capabilities
✔️ Reliable and stable
7. Disadvantages of Bugzilla
❌ Outdated UI
❌ Not very user-friendly
❌ Requires technical setup
2. Other Popular Bug Tracking Tools
1. JIRA
Features:
Agile project management (Scrum/Kanban)
Custom workflows
Integration with many tools
👉 Best for: Large teams and Agile projects
2. MantisBT (Mantis Bug Tracker)
Features:
Simple interface
Email notifications
Role-based access
👉 Best for: Small to medium projects
3. Redmine
Features:
Open-source
Supports multiple projects
Gantt charts & calendars
👉 Best for: Project + bug tracking together
4. YouTrack
Features:
Smart search queries
Agile boards
Time tracking
👉 Best for: Development teams
5. Zoho BugTracker
Features:
Cloud-based
Easy UI
Integration with Zoho apps
👉 Best for: Business teams
6. Trello
Features:
Card-based system
Easy drag-and-drop
Visual task management
👉 Best for: Simple bug tracking
3. Comparison of Bug Tracking Tools
Feature Bugzilla JIRA MantisBT Redmine
Cost Free Paid Free Free
UI Basic Advanced Simple Moderate
Customization High Very High Medium High
Agile Support Limited Excellent Limited Moderate
4. Key Features of a Good Bug Tracking Tool
Easy bug reporting
Workflow management
Notifications
Reporting & analytics
Integration support
5. Importance of Bug Tracking Tools
Track all defects systematically
Improve communication between teams
Ensure bugs are not missed
Improve software quality
6. Real-Life Example
👉 During testing of a mobile app:
Tester finds bug → App crashes on login
Logs bug in Bugzilla
Developer fixes it
Tester verifies → Marks as closed
Conclusion
Bugzilla is a powerful open-source bug tracking tool
Many modern tools like JIRA, YouTrack, and Trello offer advanced features
👉 Choosing a tool depends on:
Project size
Budget
Team requirements
Test data mining
Test Data Mining – Detailed Explanation
1. What is Test Data Mining?
Test Data Mining is the process of:
👉 Extracting useful test data from large datasets (like databases, logs, production data) for
use in software testing.
👉 In simple words:
It means finding and preparing realistic data from existing sources to test software
effectively.
2. Why is Test Data Mining Important?
Provides realistic test data
Improves accuracy of testing
Helps identify hidden defects
Saves time in manual data creation
Supports performance and security testing
3. Sources of Test Data Mining
1. Production Data
Real user data from live systems
👉 Most accurate but needs masking
2. Database Systems
SQL databases (tables, records)
3. Application Logs
Error logs, usage logs
4. Data Warehouses
Large structured datasets
5. External Data Sources
APIs, third-party systems
4. Process of Test Data Mining
Step 1: Identify Data Requirements
What data is needed?
Example:
o Valid inputs
o Invalid inputs
o Boundary values
Step 2: Data Extraction
Extract data from:
o Databases
o Logs
o Files
Step 3: Data Filtering
Remove irrelevant data
Keep only useful records
Step 4: Data Transformation
Convert data into required format
Example:
o Date formats
o Data types
Step 5: Data Masking (Important)
Protect sensitive data:
o Passwords
o Credit card numbers
Step 6: Data Validation
Ensure data is:
o Correct
o Complete
o Consistent
Step 7: Data Storage
Store prepared data for testing use
5. Types of Test Data
Positive Data → Valid inputs
Negative Data → Invalid inputs
Boundary Data → Edge values
Volume Data → Large datasets
Random Data → Unpredictable inputs
6. Techniques Used in Test Data Mining
1. Data Subsetting
Extract a smaller dataset from large data
2. Data Masking
Hide sensitive information
3. Data Profiling
Analyze structure and quality of data
4. Data Generation
Generate synthetic data when real data is unavailable
5. Pattern Recognition
Identify patterns in data
7. Tools Used for Test Data Mining
SQL tools (MySQL, Oracle)
ETL tools (Informatica)
Data analysis tools (Python, Excel)
Test tools (JIRA, TestRail for tracking)
8. Challenges in Test Data Mining
Data privacy issues
Large data volume
Data inconsistency
Complex data formats
Time-consuming process
9. Best Practices
Use data masking for security
Maintain data quality
Automate data extraction
Use realistic and diverse data
Regularly update test data
10. Real-Life Example
👉 Banking Application Testing
Extract customer data from database
Mask sensitive info (account number)
Use data to test:
o Transactions
o Login
o Balance updates
11. Difference: Test Data Mining vs Test Data Generation
Aspect Test Data Mining Test Data Generation
Source Existing data Artificial data
Accuracy High Medium
Risk Privacy issues Safe
Usage Real scenarios Edge cases
Conclusion
Test Data Mining is essential for:
Creating realistic test scenarios
Improving test effectiveness
Detecting complex defects
👉 It ensures that testing is done with high-quality, relevant, and secure data.
Test reporting
Test Reporting – Detailed Explanation
1. What is Test Reporting?
Test Reporting is the process of:
👉 Collecting, analyzing, and presenting testing results to stakeholders.
👉 In simple words:
It tells:
What testing was done
What defects were found
What is the quality of the software
2. Objectives of Test Reporting
Communicate testing progress
Show quality status of the product
Help in decision-making (release or not)
Provide transparency to stakeholders
3. Types of Test Reports
1. Test Summary Report (Final Report)
Prepared at the end of testing
Includes overall results and conclusions
2. Test Progress Report
Prepared during testing
Shows daily/weekly progress
3. Defect Report
Details about bugs found
4. Test Execution Report
Shows execution status of test cases
4. Components of a Test Report
1. Test Overview
Project name
Testing objectives
Scope
2. Test Environment
Hardware and software details
3. Test Execution Summary
Total test cases
Executed test cases
Passed/Failed
4. Defect Summary
Total defects
Severity-wise defects
Status of defects
5. Test Coverage
Percentage of requirements tested
6. Risks and Issues
Any problems faced during testing
7. Recommendations
Suggestions for improvement
8. Conclusion
Final decision about software quality
5. Test Reporting Metrics
1. Test Case Metrics
Total test cases
Passed
Failed
Blocked
2. Defect Metrics
Defect density
Severity distribution
Defect leakage
3. Execution Metrics
Execution rate
Test coverage percentage
6. Test Reporting Process
Step 1: Data Collection
Gather data from:
o Test execution
o Defect tracking tools
Step 2: Data Analysis
Analyze:
o Pass/fail rate
o Defect trends
Step 3: Report Preparation
Prepare report with charts and tables
Step 4: Review
Validate report accuracy
Step 5: Sharing
Share with stakeholders:
o Managers
o Clients
o Developers
7. Sample Test Report Format
Metric Value
Total Test Cases 100
Executed 95
Passed 85
Failed 10
Blocked 5
8. Defect Summary Example
Severity Count
Critical 2
High 5
Medium 8
Low 3
9. Tools Used for Test Reporting
JIRA
TestRail
Zephyr
Excel / Google Sheets
10. Importance of Test Reporting
Helps in release decisions
Improves communication
Tracks testing performance
Identifies quality issues
11. Challenges in Test Reporting
Incomplete data
Miscommunication
Lack of standard format
Time constraints
12. Best Practices
Use clear and simple format
Include visual data (charts, graphs)
Keep reports updated
Focus on key metrics
Avoid unnecessary details
13. Real-Life Example
👉 Mobile App Testing
200 test cases executed
180 passed, 20 failed
5 critical bugs found
📊 Report shows:
App is mostly stable
But critical bugs must be fixed before release
Conclusion
Test Reporting is essential because it:
Summarizes testing activities
Shows product quality
Helps stakeholders make decisions
👉 Without proper reporting, testing results are useless and unclear.
Unit no. 4
Test Automation
When not to automate
Writing simple automated test cases
Learn and practice any one automated testing framework like Selenium
Why automation
Test Automation
🔧 Test Automation — Detailed Explanation
📌 What is Test Automation?
Test Automation is the process of using software tools and scripts to automatically execute
test cases, compare expected vs actual results, and generate reports—without manual
intervention.
Instead of manually checking features again and again, automated tests do it faster, more
accurately, and repeatedly.
🎯 Objectives of Test Automation
Reduce manual effort
Improve test coverage
Increase speed of testing
Ensure consistency and accuracy
Enable continuous testing in CI/CD pipelines
🧩 Types of Test Automation
1. Functional Testing
Verifies application features against requirements
Example: Login, Signup, Payment flow
2. Regression Testing
Ensures new updates don’t break existing features
Most commonly automated
3. Unit Testing
Tests individual functions/methods
Done by developers
Tools: JUnit, TestNG
4. Integration Testing
Tests interaction between modules
5. UI Testing
Tests user interface elements (buttons, forms, navigation)
Tool: Selenium
6. Performance Testing
Checks speed, scalability, load
Tool: JMeter
⚙️ Test Automation Frameworks
1. Linear Framework (Record & Playback)
Simple scripts
No reuse
Beginner-friendly
2. Modular Framework
Breaks application into modules
Reusable scripts
3. Data-Driven Framework
Test data stored separately (Excel, CSV)
Same script runs with multiple inputs
4. Keyword-Driven Framework
Uses predefined keywords (like "click", "login")
Non-programmers can understand
5. Hybrid Framework
Combines multiple approaches (most used in industry)
🛠️ Popular Test Automation Tools
🌐 Selenium Suite
Supports multiple languages (Java, Python, C#)
Automates browsers
⚡ Other Tools
Appium → Mobile apps testing
Cypress → Fast frontend testing
Playwright → Modern automation tool
UFT → Enterprise tool
🔄 Test Automation Process
1. Test Planning
o Identify scope and objectives
o Select tools
2. Test Design
o Create test cases and scripts
3. Environment Setup
o Configure tools, browsers, devices
4. Test Execution
o Run automated scripts
5. Result Analysis
o Compare expected vs actual results
6. Maintenance
o Update scripts when UI or logic changes
📊 Advantages of Test Automation
🚀 Faster execution
🔁 Reusable scripts
📈 Better coverage
🧪 Early bug detection
🧪 Works with CI/CD (like Jenkins)
⚠️ Limitations
Initial setup cost is high
Requires programming knowledge
Maintenance needed when UI changes
Not suitable for exploratory testing
🧩 When to Use Test Automation?
Use automation when:
Tests are repetitive
Large regression testing
Need fast feedback
Application is stable
Avoid when:
Requirements change frequently
One-time testing tasks
UI is unstable
🧩 Example (Simple Automation Flow)
1. Open browser
2. Navigate to website
3. Enter username & password
4. Click login
5. Verify dashboard
This can be automated using Selenium + Java/Python.
Why automation
. 🤖 Why Test Automation? (Detailed Explanation)
Test automation isn’t just about replacing manual work—it’s about making software testing
faster, smarter, and more reliable, especially for large or frequently updated applications.
🚀 1. Speed & Efficiency
Manual testing takes time because a tester has to execute each step again and again.
Automated scripts run much faster.
Hundreds of test cases can run in minutes
Parallel execution possible (multiple tests at once)
Faster release cycles
👉 Example: A login test that takes 2 minutes manually can run in seconds using Selenium.
🔁 2. Reusability of Test Scripts
Once you create an automated test script, you can reuse it multiple times.
Same script can run for different inputs (data-driven testing)
Useful for regression testing
Saves long-term effort
🎯 3. Improved Accuracy
Humans can make mistakes, especially during repetitive tasks. Automation ensures
consistency.
No skipped steps
No calculation errors
Same steps executed every time
📈 4. Better Test Coverage
Automation allows you to test more scenarios than manual testing.
Multiple browsers, devices, environments
Large datasets
Edge cases
👉 Tools like Playwright or Cypress can run tests across environments efficiently.
🔄 5. Continuous Testing (CI/CD Integration)
Automation integrates with CI/CD pipelines.
Tests run automatically after every code change
Immediate feedback to developers
Supports DevOps practices
👉 Example: Using Jenkins, tests run after each build.
🧩 6. Early Bug Detection
Automated tests can be executed early and frequently.
Bugs found in early stages
Reduces cost of fixing defects
Improves software quality
💰 7. Cost Efficiency (Long-Term)
Initial setup is expensive, but over time automation saves money.
Less manual effort needed
Faster testing cycles
Reduced defect fixing cost
🌙 8. 24/7 Execution Capability
Automation doesn’t need rest.
Tests can run overnight
Continuous execution without human presence
Faster delivery timelines
🔍 9. Detailed Reporting & Logs
Automation tools generate detailed reports.
Pass/fail results
Screenshots on failure
Logs for debugging
📊 10. Supports Complex Testing
Some tests are difficult manually but easy with automation.
Performance testing → JMeter
API testing
Load testing
⚠️ When Automation is NOT Ideal
Automation is not always the best choice:
Frequently changing UI
One-time testing
Exploratory testing
Small projects
🧩 Simple Real-Life Example
Imagine testing a shopping website:
Manual:
Add item → Checkout → Payment → Repeat 100 times ❌
Automation:
Script runs the same flow automatically 100 times ✅
🏁 Conclusion
Automation is important because it:
Saves time 🧪
Improves accuracy 🎯
Increases coverage 📈
Supports continuous delivery 🔄
It is a must-have in modern software development, especially for large and fast-changing
systems.
When not to automate without image
❌ When NOT to Use Test Automation (Detailed
Explanation)
Automation is powerful, but using it everywhere is a mistake. There are situations where
manual testing is more effective, cheaper, and practical. Here’s a detailed explanation of
when you should avoid automation:
🔄 1. Frequently Changing Requirements
If the application is still evolving:
UI and functionality change often
Automated scripts break frequently
High maintenance effort
👉 Result: You spend more time fixing scripts than testing.
🧩 2. Exploratory Testing
Exploratory testing depends on human thinking and creativity.
Tester explores the app without predefined steps
Finds unexpected bugs
Requires intuition and experience
👉 Automation tools like Selenium cannot “think” or explore like humans.
🧩 3. One-Time Testing Tasks
If a test case is executed only once or very rarely:
Writing automation script takes more time than manual testing
No return on investment (ROI)
👉 Example: Testing a temporary feature.
💸 4. Small Projects or Tight Budget
Automation has high initial cost:
Tool setup
Framework design
Skilled resources required
👉 For small projects, manual testing is more cost-effective.
🎨 5. UI/UX Testing (Visual Aspects)
Automation is weak in judging visual quality:
Look and feel
Color combinations
User experience
👉 Humans can better evaluate design and usability.
🔧 6. Unstable Application (Early Development Stage)
If the application is not stable:
Features are incomplete
Frequent bugs and crashes
Scripts fail often
👉 Automation becomes unreliable and wasteful.
🔐 7. Complex Scenarios Requiring Human Judgment
Some tests need decision-making:
CAPTCHA handling
OTP verification
Multi-step human validation
👉 Automation struggles with these cases.
🌐 8. Tests Requiring Real User Interaction
Certain actions are hard to automate:
Gesture-based mobile actions
Hardware interactions
Real-time human feedback
📉 9. Low Priority Test Cases
Not all test cases are worth automating:
Rarely used features
Low-risk functionalities
👉 Focus automation on critical and frequently used areas.
🛠️ 10. Lack of Skilled Resources
Automation requires programming knowledge.
Team lacks coding skills
Poorly written scripts become hard to maintain
👉 In such cases, tools like Cypress or Playwright still need expertise.
⚖️ Summary (Quick View)
Situation Why Not Automate
Changing requirements High maintenance
Exploratory testing Needs human thinking
One-time tests No ROI
Small projects High cost
UI/UX testing Needs human judgment
Unstable app Scripts fail often
Complex validation Hard to automate
Situation Why Not Automate
Low priority tests Not worth effort
🏁 Conclusion
Automation should be used strategically, not blindly. The goal is to balance:
🧪 Automation for repetitive & critical tasks
👨💻 Manual testing for creative & dynamic scenarios
Using the right approach at the right time ensures efficient, cost-effective, and high-quality
testing.
Writing simple automated test cases
✍️ Writing Simple Automated Test Cases (Detailed Guide)
Writing automated test cases means converting manual test steps into clear, structured
scripts that a tool can execute automatically.
📌 1. What is an Automated Test Case?
An automated test case is a set of instructions written in code that:
Performs actions on the application
Verifies expected results
Reports pass/fail status
👉 Example: Logging into a website and checking if the dashboard appears.
🧩 2. Basic Structure of an Automated Test Case
Every automated test case generally follows this structure:
🔹 1. Test Case ID
Unique identifier (e.g., TC_01)
🔹 2. Test Scenario
What you are testing
👉 Example: Login functionality
🔹 3. Preconditions
Conditions before execution
👉 Example: User account must exist
🔹 4. Test Steps
Actions to perform
🔹 5. Expected Result
What should happen
🔹 6. Actual Result (generated during execution)
🔹 7. Status
Pass / Fail
🧩 3. Example: Manual vs Automated Test Case
✅ Manual Test Case
Open browser
Go to login page
Enter username & password
Click login
Verify dashboard
🧩 Automated Version (Conceptual Flow)
Launch browser
Navigate to URL
Input credentials
Click login button
Assert dashboard is visible
⚙️ 4. Writing Simple Automated Test (Code Example)
Using Selenium with Java
import [Link];
import [Link];
import [Link];
public class LoginTest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
// Step 1: Open website
[Link]("[Link]
// Step 2: Enter username
[Link]([Link]("username")).sendKeys("testuser");
// Step 3: Enter password
[Link]([Link]("password")).sendKeys("password123");
// Step 4: Click login
[Link]([Link]("loginBtn")).click();
// Step 5: Verify result
boolean isDashboardDisplayed =
[Link]([Link]("dashboard")).isDisplayed();
if (isDashboardDisplayed) {
[Link]("Test Passed");
} else {
[Link]("Test Failed");
}
[Link]();
}
}
🧩 5. Key Points While Writing Automated Test Cases
🎯 Keep it Simple
Avoid unnecessary complexity
Focus on one functionality per test
🔁 Make Tests Reusable
Use functions/methods
Avoid repeating code
📊 Use Assertions
Validate expected vs actual results
Example:
assert isDashboardDisplayed;
🧩 Use Proper Naming
Test names should describe purpose
👉 Example: testValidLogin()
📂 Separate Test Data
Store data in files (Excel/CSV/JSON)
Helps in data-driven testing
🔄 6. Test Case Design Techniques
Positive Test Case → Valid input
Negative Test Case → Invalid input
Boundary Test Case → Edge values
👉 Example:
Valid login ✅
Wrong password ❌
Empty fields ⚠️
🛠️ 7. Tools for Writing Automated Tests
Selenium → Web automation
TestNG → Test execution & reporting
JUnit → Unit testing
⚠️ Common Mistakes to Avoid
Writing very long test cases
Hardcoding values
Ignoring error handling
Not maintaining scripts
🧩 Simple Real-Life Example
Testing ATM withdrawal:
Automated steps:
1. Insert card
2. Enter PIN
3. Select withdrawal
4. Enter amount
5. Verify cash dispensed
👉 Automation simulates these steps and checks results.
🏁 Conclusion
Writing simple automated test cases involves:
Clear steps
Proper validation
Clean and reusable code
Learn and practice any one automated testing framework like Selenium
Start small, then gradually build complex automation.
🚀 Learn & Practice an Automation Framework:
Selenium
Selenium is one of the most popular tools for automating web applications. If you’re
preparing for exams or placements, learning Selenium (especially with Java or Python) is a
great choice.
📌 1. What is Selenium?
Selenium is an open-source automation tool used to:
Test web applications
Automate browser actions
Perform regression testing
👉 It works with browsers like Chrome, Firefox, Edge.
🧩 2. Components of Selenium
Selenium WebDriver → Main tool to control browser
Selenium IDE → Record & playback (beginner)
Selenium Grid → Run tests on multiple machines
👉 Most important: WebDriver
⚙️ 3. Prerequisites to Learn Selenium
Before starting:
Basic Java or Python
OOP concepts
Basic HTML (id, class, xpath)
🛠️ 4. Setup Selenium (Java + Chrome)
🔹 Step 1: Install Tools
Install Java (JDK)
Install IDE (Eclipse/IntelliJ)
Download ChromeDriver
🔹 Step 2: Add Selenium Libraries
Add Selenium dependencies using Maven or manually.
🧩 5. First Simple Selenium Program
✅ Example: Open Google
import [Link];
import [Link];
public class FirstTest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
// Open website
[Link]("[Link]
// Print title
[Link]([Link]());
[Link]();
}
}
👉 This is your first automation script 🎉
🔍 6. Locators in Selenium
Locators help find elements on a webpage:
id
name
className
tagName
xpath
cssSelector
Example:
[Link]([Link]("username")).sendKeys("admin");
🧩 7. Practice Example: Login Test
import [Link];
import [Link];
import [Link];
public class LoginTest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
[Link]("[Link]
[Link]([Link]("username")).sendKeys("user");
[Link]([Link]("password")).sendKeys("pass");
[Link]([Link]("loginBtn")).click();
boolean success =
[Link]([Link]("dashboard")).isDisplayed();
if(success) {
[Link]("Login Successful");
} else {
[Link]("Login Failed");
}
[Link]();
}
}
🔄 8. Use with Testing Frameworks
To make testing more powerful, combine Selenium with:
TestNG → Test execution, reports
JUnit → Unit testing
👉 Example (TestNG):
@Test
public void testLogin() {
// test steps
}
📚 9. Practice Plan (Very Important)
🗓️ Day-wise Plan:
Day 1–2 → Setup + basic program
Day 3–4 → Locators + actions
Day 5–6 → Forms, buttons, waits
Day 7 → Login automation project
🎯 Practice Tasks
Try these:
1. Open website & print title
2. Search something on Google
3. Automate login page
4. Fill a registration form
5. Handle alerts & dropdowns
⚠️ Common Mistakes
Using wrong locators
Not using waits (causes failure)
Hardcoding values
Not closing browser
🏁 Conclusion
Learning Selenium gives you:
Practical automation skills
Industry relevance
Strong base for testing career
Start with simple scripts → practice daily → build small projects.
Unit no.5
Quality and Defect management
Code reviews
Quality tools
Change management
Version control
Quality and Defect management
Here’s a clear, detailed explanation of Quality and Defect Management (useful for exams
like RGPV 👇):
1. Quality Management (QM)
Definition
Quality Management is the process of ensuring that software meets specified requirements,
standards, and customer expectations.
It focuses on building quality into the product, not just detecting defects later.
Objectives of Quality Management
Deliver high-quality software
Meet customer requirements
Reduce defects and rework
Improve process efficiency
Ensure reliability and performance
Components of Quality Management
1. Quality Planning
Identify quality standards and requirements
Define processes to achieve quality
Activities:
Define quality goals
Select testing strategies
Prepare quality metrics
2. Quality Assurance (QA)
Focuses on process improvement
Prevents defects before they occur
Examples:
Process audits
Standards implementation (ISO, CMMI)
Code reviews
👉 QA is process-oriented
3. Quality Control (QC)
Focuses on product quality
Detects defects
Examples:
Testing (manual & automated)
Inspections
Validation
👉 QC is product-oriented
4. Continuous Improvement
Improve processes over time
Techniques:
PDCA Cycle (Plan-Do-Check-Act)
Six Sigma
Root cause analysis
Quality Metrics
Used to measure software quality:
Defect density
Test coverage
Mean Time to Failure (MTTF)
Customer satisfaction
2. Defect Management
Definition
Defect Management is the process of identifying, tracking, fixing, and preventing defects
(bugs) in software.
What is a Defect?
A defect is a mismatch between:
Expected result ❌
Actual result ✔
Types of Defects
Functional defects
Performance defects
UI defects
Security defects
Logical errors
Defect Life Cycle (Bug Life Cycle)
Stages:
1. New
o Defect is found and logged
2. Assigned
o Assigned to developer
3. Open
o Developer starts working
4. Fixed
o Issue resolved in code
5. Retest
o Tester verifies fix
6. Closed
o Defect is fixed successfully
7. Reopened
o If issue still exists
8. Deferred
o Fix postponed
9. Rejected
o Not a valid defect
Defect Severity vs Priority
Severity (Impact of defect)
Critical – system crash
Major – major functionality affected
Minor – small issue
Cosmetic – UI issue
Priority (Urgency to fix)
High – fix immediately
Medium – normal fix
Low – can wait
Defect Tracking Process
1. Identify defect
2. Log defect in tool
3. Assign to developer
4. Fix and update status
5. Retest
6. Close defect
Defect Tracking Tools
JIRA
Bugzilla
Redmine
Defect Metrics
Defect density
Defect leakage (missed defects)
Defect removal efficiency (DRE)
Defect aging
3. Relationship Between Quality & Defect
Management
Quality Management Defect Management
Prevents defects Detects & fixes defects
Process-focused Product-focused
Proactive Reactive
Long-term improvement Short-term correction
4. Best Practices
For Quality Management
Follow coding standards
Use automation testing
Conduct regular audits
Implement CI/CD
For Defect Management
Write clear defect reports
Prioritize correctly
Perform root cause analysis
Maintain proper tracking
5. Conclusion
Quality Management ensures software is built correctly from the start
Defect Management ensures issues are identified and fixed effectively
Both together ensure high-quality, reliable software
Code reviews
Here’s a complete, exam-ready explanation of Code Reviews in detail 👇
Code Reviews (Software Testing & Quality)
Definition
Code review is the process of systematically examining source code by developers (peers)
to identify:
Bugs ❌
Security issues 🔐
Performance problems ⚡
Poor coding practices
👉 Goal: Improve code quality before testing/execution
Objectives of Code Review
Detect defects early (before testing)
Improve code readability & maintainability
Ensure coding standards are followed
Share knowledge among team members
Improve overall software quality
Types of Code Reviews
1. Formal Code Review (Inspection)
Structured and planned
Follows defined process
Includes roles like moderator, reviewer, author
👉 Very effective but time-consuming
2. Informal Code Review
Casual discussion between developers
No strict process
👉 Fast but less thorough
3. Peer Review
Code reviewed by fellow developers
Most common in industry
4. Walkthrough
Author explains code step-by-step
Reviewers ask questions
5. Tool-Based Review
Done using tools like:
o GitHub (Pull Requests)
o GitLab
o Bitbucket
Code Review Process
1. Planning
Define scope (what to review)
Select reviewers
Set guidelines
2. Preparation
Reviewers study the code individually
Understand logic and functionality
3. Review Meeting (Optional)
Discuss issues
Suggest improvements
4. Defect Logging
Record issues found:
o Bugs
o Code smells
o Violations of standards
5. Rework
Developer fixes issues
6. Follow-up
Verify fixes
Close review
Code Review Checklist
1. Functionality
Does the code meet requirements?
Are all cases handled?
2. Code Quality
Readable and clean code?
Proper naming conventions?
3. Performance
Any unnecessary loops?
Optimized logic?
4. Security
Input validation?
Protection from vulnerabilities?
5. Standards
Follows coding guidelines?
Proper documentation?
Advantages of Code Review
Early defect detection
Improved code quality
Better team collaboration
Knowledge sharing
Reduced debugging time
Disadvantages
Time-consuming
Requires skilled reviewers
May create conflicts if not handled properly
Best Practices for Code Reviews
Keep reviews small and focused
Review code regularly (not at end)
Use automated tools where possible
Be constructive (no personal criticism)
Follow coding standards
Limit review time (30–60 mins ideal)
Common Code Review Metrics
Number of defects found
Review coverage
Time taken for review
Defect density
Code Review vs Testing
Code Review Testing
Static (no execution) Dynamic (execution required)
Early stage Later stage
Finds logic/design issues Finds runtime issues
Conclusion
Code reviews are a powerful quality assurance technique that:
Prevents defects early
Improves maintainability
Enhances team collaboration
👉 It is one of the most cost-effective ways to improve software quality.
Quality tools
Here’s a clear, detailed explanation of Quality Tools (without diagrams)—perfect for
exam writing 👇
Quality Tools (Software Quality
Management)
Definition
Quality tools are techniques used to:
Analyze problems
Identify defects
Improve processes
Ensure high-quality software
👉 They support data-driven decision-making and continuous improvement
Objectives of Quality Tools
Identify root causes of problems
Reduce defects and errors
Improve efficiency and productivity
Enhance customer satisfaction
Support continuous improvement
1. Basic Quality Tools (7 QC Tools)
1. Cause-and-Effect Diagram (Fishbone / Ishikawa)
Used to identify the root cause of a problem
Breaks problem into categories like:
o Man (people)
o Machine
o Method
o Material
o Measurement
o Environment
👉 Helps in root cause analysis
2. Pareto Chart
Based on 80/20 rule (80% problems from 20% causes)
Helps identify most critical defects
👉 Focus efforts on high-impact issues
3. Histogram
Represents frequency distribution of data
Shows variation in process
👉 Useful for understanding:
Data spread
Patterns in defects
4. Check Sheet
Used for data collection and recording
Simple structured format
👉 Helps in:
Counting defects
Tracking occurrences
5. Control Chart
Monitors process stability over time
Contains:
o Upper Control Limit (UCL)
o Lower Control Limit (LCL)
👉 Detects:
Abnormal variations
Process instability
6. Scatter Diagram
Shows relationship between two variables
👉 Helps identify:
Positive correlation
Negative correlation
No relationship
7. Flowchart
Graphical representation of process steps
👉 Helps in:
Understanding workflow
Identifying bottlenecks
2. Advanced Quality Tools
1. Root Cause Analysis (RCA)
Identifies actual cause of defects
Techniques:
o 5 Whys
o Fishbone method
2. Six Sigma
Data-driven methodology
Focus: reduce defects and variation
3. Benchmarking
Comparing processes with best industry practices
4. Failure Mode and Effects Analysis (FMEA)
Identifies possible failures
Evaluates risk and impact
5. Statistical Process Control (SPC)
Uses statistical methods to monitor and control processes
3. Benefits of Quality Tools
Improved product quality
Better decision-making
Reduced defects
Increased efficiency
Continuous process improvement
4. Limitations
Requires accurate data
Needs skilled interpretation
Time-consuming in some cases
5. Conclusion
Quality tools play a vital role in:
Defect prevention and detection
Process improvement
Maintaining high software quality
👉 The 7 QC tools are most important for exams and practical applications.
Change management
Here’s a complete, exam-ready explanation of Change Management in detail 👇
Change Management (Software
Engineering / Quality Management)
Definition
Change Management is the structured process of:
Requesting
Analyzing
Approving
Implementing
Tracking
changes in a software system.
👉 Goal: Ensure changes are made efficiently with minimal risk and disruption
Objectives of Change Management
Control and manage changes systematically
Reduce risk and system failures
Maintain system stability
Ensure traceability of changes
Improve communication among stakeholders
Types of Changes
Corrective Change – Fix defects (bug fixes)
Adaptive Change – Adjust to new environment (OS, hardware)
Perfective Change – Improve performance or usability
Preventive Change – Avoid future issues
Change Management Process
1. Change Request (CR)
A formal request is submitted for change
Includes:
o Description
o Reason
o Priority
👉 Logged using tools like JIRA
2. Impact Analysis
Analyze effect of change on:
o Cost
o Time
o Resources
o System performance
👉 Helps decide whether change is feasible
3. Change Approval
Reviewed by Change Control Board (CCB)
Decision:
o Approve
o Reject
o Defer
4. Planning
Define:
o Implementation steps
o Timeline
o Resources
5. Implementation
Developers make required changes in code
6. Testing
Perform:
o Unit Testing
o Integration Testing
o Regression Testing
👉 Ensures no new defects are introduced
7. Deployment
Release updated version to users
8. Review & Closure
Verify success of change
Update documentation
Close request
Change Control Board (CCB)
Definition
A group of stakeholders responsible for reviewing and approving changes.
Members may include:
Project Manager
QA Lead
Developers
Business Analysts
Change Management Plan
A document that defines:
Change process
Roles and responsibilities
Tools used
Risk management strategy
Change Management Tools
JIRA – Track change requests
ServiceNow – Enterprise change management
Git – Track code changes
Key Concepts
1. Version Control
Maintains different versions of software
2. Configuration Management
Controls software components and changes
3. Traceability
Track changes from request to implementation
Benefits of Change Management
Controlled and systematic changes
Reduced risks and failures
Improved quality
Better communication
Increased customer satisfaction
Challenges
Resistance to change
Poor impact analysis
Lack of communication
Delays in approval
Best Practices
Maintain proper documentation
Perform impact analysis carefully
Use automation tools
Communicate clearly with stakeholders
Test thoroughly before deployment
Change Management vs Configuration
Management
Change Management Configuration Management
Focuses on managing changes Focuses on managing versions
Controls change process Controls system components
Process-oriented Product-oriented
Conclusion
Change Management ensures that:
Changes are controlled and documented
Risks are minimized
Software quality and stability are maintained
👉 It is essential for successful software development and maintenance
Version control
Here’s a complete, exam-ready explanation of Version Control in detail 👇
Version Control (Software Engineering)
Definition
Version Control is a system that helps developers:
Track changes in source code
Manage multiple versions of files
Collaborate efficiently in teams
👉 It allows you to go back to previous versions if something goes wrong
Objectives of Version Control
Maintain history of changes
Enable team collaboration
Prevent data loss
Manage multiple versions
Support parallel development
Why Version Control is Important
\
Multiple developers can work on the same project
Easy to track who made changes and when
Helps in debugging (rollback feature)
Maintains code integrity
Types of Version Control Systems
1. Local Version Control System
Stores versions on a local computer
Example: RCS
👉 Simple but not suitable for teams
2. Centralized Version Control System (CVCS)
Examples:
Subversion (SVN)
CVS
Features:
Central server stores all versions
Developers access from server
👉 Disadvantage: Server failure risk
3. Distributed Version Control System (DVCS)
Examples:
Git
Mercurial
Features:
Each developer has full copy of repository
Works offline
Faster and more flexible
👉 Most widely used today
Key Concepts in Version Control
1. Repository (Repo)
Storage location of project files and history
2. Commit
Saving changes to repository
Includes message describing changes
3. Branch
Separate line of development
Used for new features or fixes
4. Merge
Combine changes from different branches
5. Clone
Copy entire repository to local system
6. Pull / Push
Pull → Get latest changes
Push → Upload local changes
7. Checkout
Switch between versions or branches
Working of Version Control (Basic Flow)
1. Developer edits code
2. Adds changes to staging area
3. Commits changes
4. Pushes to repository
5. Other developers pull updates
Popular Version Control Tools
Git – Most popular DVCS
GitHub – Cloud-based Git hosting
GitLab – CI/CD + version control
Bitbucket – Atlassian platform
Advantages of Version Control
Easy collaboration
Full history tracking
Backup and recovery
Supports branching and merging
Improves productivity
Disadvantages
Learning curve for beginners
Merge conflicts may occur
Requires proper management
Version Control vs Backup
Version Control Backup
Tracks changes Stores copies
Supports collaboration No collaboration
Maintains history Limited history
Best Practices
Commit frequently
Write meaningful commit messages
Use branches properly
Pull latest changes before working
Resolve conflicts carefully
Conclusion
Version Control is essential for:
Managing code efficiently
Enabling teamwork
Maintaining software quality
👉 Tools like Git have become a standard in modern software development