0% found this document useful (0 votes)
5 views152 pages

Software Testing

The document provides an extensive overview of software quality, including definitions, objectives, characteristics, and the importance of verification and validation in software engineering. It discusses various quality perspectives, testing terminology, and outlines the Software Testing Life Cycle (STLC) with its phases and objectives. Overall, it emphasizes the significance of maintaining high software quality through structured processes and methodologies.

Uploaded by

harshitshri21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views152 pages

Software Testing

The document provides an extensive overview of software quality, including definitions, objectives, characteristics, and the importance of verification and validation in software engineering. It discusses various quality perspectives, testing terminology, and outlines the Software Testing Life Cycle (STLC) with its phases and objectives. Overall, it emphasizes the significance of maintaining high software quality through structured processes and methodologies.

Uploaded by

harshitshri21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like