Here's a clear and structured explanation of all the topics you've written, organized for Day 1 of
Functional Testing learning, covering both Manual and Automation Testing in simple terms:
✅ Software Testing
Definition:
Software testing is the process of checking if the software (application/website) works correctly and
meets the customer’s requirements. Identify the correctness, completeness and quality of sw,
identifying errors and correcting before release.
It involves:
Verifying the functionality (whether features work as expected)
Comparing expected vs actual results
Finding and fixing bugs or errors
✅ What is Software?
Software is any application or program like:
Facebook
Amazon
Flipkart
WhatsApp
These programs perform specific functions or tasks to solve user needs.
✅ Functionality of an Application
Functionality means the operations or tasks the application can perform.
For example: ATM Functionality
Inserting card
Entering PIN
Choosing language
Selecting menu
o Withdraw cash
o Check balance
o Change PIN
Receiving receipt
Removing card
All these are functionalities and should be tested.
✅ Requirements
Requirements are what the customer or user expects from the software.
Example:
A bank may say:
"I want an ATM machine that lets users withdraw money, check balance, and change PIN."
These are requirements → which we then test.
✅ Two Ways of Testing
1. Manual Testing
o Testing without using any tools
o Performed by humans step-by-step
o Example: Manually checking ATM screen after inserting card
2. Automation Testing
o Testing with the help of tools
o Faster and reusable
o Best for repeated or complex tests
Popular Tools:
Selenium
Playwright
Cypress
Appium
JMeter
Rest Assured
LoadRunner
Protractor
Most real-world projects use both manual and automation testing.
✅ Why Use Automation?
For regression testing (repeating same tests after changes)
For large and complex projects
Saves time and reduces manual effort
✅ Black Box Testing vs White Box Testing
Black Box Testing White Box Testing
Tester does not know internal code Tester knows the code and logic
Focus on functionality Focus on code structure
Done by testers Done by developers
Example (Login Page):
Black box: Enter username/password and check if login works
White box: Developer checks the login function code and logic
✅ Positive and Negative Testing
Positive Testing: Test with valid inputs
→ Ex: correct username and password
Negative Testing: Test with invalid inputs
→ Ex: correct username but wrong password
Every positive test should be supported with a negative test to check how the app handles errors.
✅ Static vs Dynamic Testing
Static Testing Dynamic Testing
Done without running the application Done by running the application
Example: Requirement review, code review Example: Executing test cases
Goal: Prevent defects early Goal: Find defects during execution
✅ Verification vs Validation
Verification (Static) Validation (Dynamic)
Are we building the product right? Are we building the right product?
Example: Checking documents, reviews Example: Running tests, checking behavior
✅ Product-based vs Project-based Companies
Product-Based Company Project-Based Company
Build products for the market Build software for clients/customers
Examples: Google, WhatsApp, Amazon Examples: TCS, Wipro, Infosys
One product, many users Many projects, different clients
✅ Quality in Testing
Quality = Customer Satisfaction
A software product is of good quality if:
It works correctly
Meets the customer's needs
Has fewer bugs
✅ Quality Control vs Quality Assurance
Quality Control (QC) Quality Assurance (QA)
Focus on defect detection Focus on defect prevention
Done by testers Done by process auditors
Checks the actual product Improves the testing process
Example: Finding bugs during test Example: Defining test strategy
✅ Levels of Testing
Definition:
Levels of testing define the order or stage-wise process of testing a software application — from
smallest parts (unit) to complete system (UAT).
There are 5 main levels of testing:
1. Unit Testing
2. Integration Testing
3. System Testing
4. System Integration Testing
5. User Acceptance Testing (UAT)
1️⃣ Unit Testing
Also called: Module Testing or Component Testing
Testing individual parts (units) of the application
Done by developers
Usually White Box Testing
Example: IRCTC Login Module
Check:
o Username field
o Password field
o "OK" button
o "Cancel" button
o "Forgot Password" link
Other IRCTC Modules (Units):
Search Trains
Check Availability
Booking
Cancellation
Print Ticket
Logout
Each of these is tested individually during unit testing.
2️⃣ Integration Testing
Combines two or more units/modules and tests them together.
Checks data flow and communication between modules.
Done by developers and testers together.
Example:
After login, user searches for a train → this needs integration between Login Module and
Search Module
Booking module integrates with payment gateway
3️⃣ System Testing
Testing the entire application as a whole.
Done by testers
Covers both:
o ✅ Functional Testing (Are features working?)
o ❌ Non-Functional Testing (Speed, security, performance, etc.)
Example:
IRCTC full workflow from login → booking → payment → print ticket
4️⃣ System Integration Testing (SIT)
Testing integration between different systems or applications.
Done by testers
Ensures that our system works with external apps or services
Examples:
Redbus → connects with HDFC for payment, Airtel for wallet, Gmail for ticket mail
MakeMyTrip → integrates flight systems, hotel APIs, payment systems
Amazon → integrates with courier, banks, and customer support systems
5️⃣ User Acceptance Testing (UAT)
Final testing done by customers or end-users
Checks if the application meets real-world expectations
Focus on both functional & non-functional behavior
✅ Goal:
To see if the application is acceptable for release
🔍 Types of UAT
🔸 Alpha Testing
Done in company’s environment
Client (e.g., CTS Chennai) does testing on behalf of the customer
Example: CTS tests banking software for UK bank in CTS's setup
🔸 Beta Testing
Done in customer's real environment
Final users (real customers) test it before public release
Example: Bank staff uses the software in their actual branch before full launch
Different Environments in Testing
Environment Who Uses It Purpose
Development Developers Build and unit test the app
Testing (QA) Testers Execute test cases
UAT Clients/End-users Customer validation
Pre-Production Testers + DevOps Final checks before going live
Production (Live) Real Users Actual application in use
Agile Methodologies
Que 1. What is Agile, and why do teams use it?
✏️Improved Answer:
Agile is a software development methodology that focuses on faster delivery of software with small
and frequent updates. It uses an iterative and incremental approach, where the product is developed
in small cycles called iterations or Sprints, usually lasting 2 to 4 weeks.
After each iteration, the team delivers a usable part of the software and gathers feedback from users,
which helps to refine requirements and improve the product continuously.
The main purpose of Agile is to make the development process flexible so teams can quickly adapt to
changing user needs and deliver value faster.
Teams use Agile because it:
Encourages continuous collaboration between developers, testers, and business
stakeholders.
Makes the process flexible and able to handle changes, even late in development.
Focuses on delivering value quickly, rather than waiting until the very end.
Promotes transparency and regular feedback, which improves quality and reduces risk.
Que 2. What are the core values of the Agile Manifesto
The Agile Manifesto defines four core values that guide Agile development:
People (Individuals and interactions) over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a fixed plan
Que 3. What is SCRUM
Scrum is an Agile framework used for managing product development. It organizes work into
Sprints (usually 2–4 weeks long), with roles like Scrum Master, Product Owner, and Development
Team and artifacts like Product Backlog, Sprint Backlog, and Increment.
✅ Q: What is the difference between iterative and incremental development?
Iterative: We repeatedly improve the same part of the system until it meets the
requirements (e.g., refine design, fix issues).
Incremental: We build the product piece by piece (increments). Each increment adds new
functionality.
In Agile, we usually combine both: build small parts (increments) and refine them over
iterations.
✅ Q: What is a Burndown Chart, and why is it useful?
A Burndown Chart is a graph that shows how much work remains in a Sprint or project over time.
The vertical axis = remaining work (usually in story points or hours).
The horizontal axis = time (days of the Sprint).
It helps the team track progress daily, see if they’re on track, and spot if they’re ahead or
behind schedule.
✅ Q: What are some common Agile frameworks you know?
Scrum: Uses Sprints, roles (Scrum Master, Product Owner), and artifacts.
Kanban: Uses visual boards and focuses on continuous flow.
Extreme Programming (XP): Focuses on engineering practices like TDD and pair
programming.
Lean: Focuses on reducing waste and improving efficiency.
Crystal, DSDM, SAFe (for scaling Agile): Other frameworks used in specific contexts.
✅ Q: What is the difference between Scrum and Kanban?
Aspect Scrum Kanban
Work Time-boxed Sprints Continuous flow
Roles Defined roles (Scrum Master, PO) No mandatory roles
Backlog Sprint Backlog & Product Backlog Work items pulled as capacity allows
Metrics Velocity, Burndown chart Lead time, cycle time
Change Scope is fixed during Sprint Changes allowed anytime
✅ Q: What is backlog grooming (refinement)?
It’s a regular meeting where the Product Owner and team review and update the Product Backlog:
Clarify user stories
Add details or acceptance criteria
Break large stories into smaller ones
Re-estimate or reprioritize items
This keeps the backlog organized, clear, and ready for future Sprint Planning.
See other Agile PDF…..
✅ Manual Testing – Questions & Detailed, Interview-Ready Answers
1️⃣ What is software testing?
Software testing is the process of evaluating a software application or system to check if it
meets specified requirements and to find defects (bugs).
It involves executing the application under controlled conditions, comparing actual results
with expected results, and ensuring the product is reliable, usable, and performs well.
2️⃣ What is the difference between verification and validation?
Verification is about reviewing and checking artifacts like requirement documents,
design, and code to make sure the product is being built correctly. It answers: “Are
we building the product right?”
Validation is actual testing done by executing the software to ensure it meets user
needs and requirements. It answers: “Are we building the right product?”
3️⃣ What are functional and non-functional testing?
Functional testing checks if specific features or functions of the software work as
intended, like login, search, checkout. It is based on business requirements.
Non-functional testing focuses on how the system performs: speed, scalability,
security, usability, compatibility, etc.
4️⃣ What is the difference between test case and test scenario?
Test case: A detailed document with inputs, steps, expected results, and actual
results. Used to verify a particular requirement.
Test scenario: A high-level idea describing what to test; it helps identify test cases.
Example:
Test scenario: “Verify user login with valid credentials.”
Test cases: Positive login, negative login, SQL injection, blank fields, etc.
5️⃣ What is a defect/bug?
A defect or bug is a mismatch between expected and actual behavior of the software. It
could come from wrong logic, incorrect implementation, or missing requirements.
6️⃣ What is boundary value analysis (BVA)?
BVA is a black-box test design technique focusing on boundary values where defects often
occur.
For example, if input is valid from 1–100, test with: 0, 1, 2, 99, 100, 101.
7️⃣ What is equivalence partitioning?
It divides input data into partitions or groups where test cases can cover the entire group
with a single value.
Example: For age input 18–60:
Valid partition: 18–60 → test with 30
Invalid partitions: below 18 → test with 15, above 60 → test with 65
8️⃣ What is smoke testing?
A quick set of basic tests to check if the critical functionalities of the application work. It
ensures the build is stable enough for deeper testing. Sometimes called “build verification
testing.”
9️⃣ What is sanity testing?
A focused testing done after small changes or bug fixes to confirm that the specific
functionality works as expected. It is narrow and deep, unlike smoke testing which is broad
and shallow.
🔟 What is regression testing?
Re-running previously executed test cases to check that recent code changes haven’t broken
existing functionality. Important after new builds, enhancements, or bug fixes.
1️⃣1️⃣ What is retesting?
After a defect is fixed, testers run the same test cases that previously failed to verify if the
issue is really resolved.
1️⃣2️⃣ What is a traceability matrix?
A document mapping requirements to their corresponding test cases. It helps ensure every
requirement is tested and makes tracking easier when requirements change.
1️⃣3️⃣ What is UAT (User Acceptance Testing)?
Testing performed by end users or clients to validate that the software meets business needs
and is ready for production. It is usually the last phase before release.
1️⃣4️⃣ What is alpha testing and beta testing?
Alpha testing: Done by internal teams or testers at the developer’s site before
external release.
Beta testing: Done by real users in their environment to catch issues in real-world
usage before final release.
1️⃣5️⃣ What is exploratory testing?
Unscripted testing where testers actively explore the application, design tests on the fly, and
use domain knowledge to find unexpected bugs.
1️⃣6️⃣ What is ad hoc testing?
Similar to exploratory testing but even less formal; testers randomly test the application
without planning or documentation, mainly to uncover hidden issues.
1️⃣7️⃣ What is the defect life cycle?
Typical stages:
New → Assigned → Open → Fixed → Retest → Closed
Defects might also become Deferred (fix later), Reopened (bug still exists), or
Rejected (not valid).
1️⃣8️⃣ What is severity and priority?
Severity: How badly the defect affects the system (e.g., crash vs. minor UI issue).
Priority: How quickly the defect needs to be fixed from a business view.
Example: A typo (low severity) on a homepage may get high priority to fix.
1️⃣9️⃣ What is the difference between test plan and test strategy?
Test plan: Project-specific document with scope, objectives, schedule, resources, and
responsibilities.
Test strategy: Organization-level document describing overall testing approach,
standards, and methodologies.
2️⃣0️⃣ What are the different levels of testing?
1. Unit testing – by developers
2. Integration testing – combined modules
3. System testing – whole system
4. Acceptance testing – by users/clients
2️⃣1️⃣ What is compatibility testing?
Verifying the application works correctly on different devices, browsers, OS, and network
conditions.
2️⃣2️⃣ What is usability testing?
Checking if the application is user-friendly, easy to navigate, and intuitive.
2️⃣3️⃣ What is acceptance testing?
Final testing (like UAT) done by clients/users to confirm software meets business
requirements.
2️⃣4️⃣ What is the difference between black box and white box testing?
Black box: Tests functionality without knowing internal code.
White box: Tests with knowledge of internal logic and code (often by developers).
2️⃣5️⃣ What is grey box testing?
Testing done with partial knowledge of the code or system architecture. Often done by
testers with technical background.
2️⃣6️⃣ What is meant by test data?
Input data prepared and used to run test cases. Includes valid, invalid, boundary, and
random data to cover all scenarios.
2️⃣7️⃣ What is a test summary report?
A document created after testing that summarizes:
What was tested
How many test cases passed/failed
Defects found and status
Overall assessment of product quality
2️⃣8️⃣ What are entry and exit criteria in testing?
Entry criteria: Conditions to start testing (e.g., test environment ready, test data
prepared).
Exit criteria: Conditions to stop testing (e.g., all test cases executed, major defects
closed).
2️⃣9️⃣ What are positive and negative test cases?
Positive: Test valid inputs to check correct behavior.
Negative: Test invalid inputs to ensure system handles them gracefully.
3️⃣0️⃣ What is risk-based testing?
Prioritizing testing based on risk of failure or business impact to focus efforts where defects
would cause the most harm.
3️⃣1️⃣ What is a deferred defect?
A defect agreed to be fixed in a later release, usually because it’s low impact or time isn’t
enough now.
3️⃣2️⃣ What are the common fields in a bug report?
Bug ID, Title, Description, Steps to reproduce, Expected result, Actual result, Severity,
Priority, Status, Environment, Reported by, Assigned to.
3️⃣3️⃣ What tools have you used for bug tracking?
Popular ones: Jira, Bugzilla, Mantis, HP ALM, Redmine.
3️⃣4️⃣ What is the difference between static and dynamic testing?
Static testing: Reviews, walkthroughs; no code execution.
Dynamic testing: Executing the software to find defects.
3️⃣5️⃣ What is configuration management in testing?
Managing test artifacts, code, environments, and documents to keep versions organized and
track changes.
3️⃣6️⃣ What do you do if you find a bug during UAT?
Log it in the bug tracking tool with details, inform the team, and discuss fix/release impact.
3️⃣7️⃣ How do you prioritize test cases?
Based on:
Business criticality
Risk of failure
Frequently used features
Complexity
3️⃣8️⃣ When do you stop testing?
When:
Exit criteria are met
No high-priority defects remain
Coverage goals achieved
Deadlines reached
Test effort gives diminishing returns
3️⃣9️⃣ How do you handle unclear requirements?
Discuss with BA, Product Owner, or client; ask questions; document assumptions and get
them reviewed.
4️⃣0️⃣ What is meant by a blocker defect?
A severe defect that prevents further testing or use of a critical part of the application.