Understanding Software Testing Basics
Understanding Software Testing Basics
Mobile Applications :- Can download form the play store in the mobile , need internet connection
called Mobile applications ( What Sapp , Instagram , Facebook etc)
Desktop Applications : - Can get via file installing in the pc or lap these applications dose not need
internet no need servers no need to download (paint, word, calculator, notepad)
Testing each and every line of the source code is called White Box Testing.
It is done by development engineers.
White box Testing is the First Testing in the development environment
Developer’s will do only positive testing
It is also called as Unit Testing
Path Testing
In Path Testing, we write the flow graph and execute the program independently.
In path testing, we write the flow graph and execute the program independently.
There are fewer chances to miss the testing of some programs.
Hence, we can avoid repetitive testing of the same code.
2. Conditional Testing
In this testing, we check the program for both true and false conditions.
Example:
o if (a > b) – True path
o if (a < b) – False path
Types of Loops:
While loop
Do-while loop
For loop
int i = 1;
while (i <= 5) {
[Link](i);
i++;
}
White Box Testing (Memory Point of View)
This happens when we use the wrong logic, which increases the length of the code
unnecessarily.
Example: Wrong logic in nested loops or inefficient design patterns can increase
execution time and memory usage.
If we don’t use functions, the same code is repeated multiple times, leading to an
increase in the size of the code.
Functions help reduce redundancy and improve maintainability.
The lack of using inbuilt functions leads to writing extra code manually, which could
have been simplified.
Example: Sorting an array manually instead of using a built-in sorting function.
4. Because of Unused Variables and Functions
Performance issues can arise if the program is written inefficiently by the developer.
The time taken to run a program may be increased due to unnecessary steps in the
logic.
Example:
java
CopyEdit
if (a == b) {
print("Yes");
} else {
print("No");
}
If you’re using one condition, you can check it directly without extra code to save
execution time.
Optimizing if-else and loop conditions can significantly improve performance.
Scenarios:
→ Scenario is a one line description (or) high level description of a functionality that we use
to test the website.
1. Test case designing / drafting the test case (or) test design → understanding the
features.
2. Requirement review.
3. Manual testing: for daily activities.
Positive Scenarios ✅
1. Verify that the whiteboard marker writes smoothly on the whiteboard surface without
skipping ink.
2. Verify that the ink color matches the label on the marker (e.g., blue ink for a blue
marker).
3. Verify that the marker ink can be easily erased from the whiteboard using a dry
eraser.
4. Verify that the marker cap fits tightly to prevent ink from drying.
5. Verify that the marker can be used for a continuous duration (e.g., 2–3 minutes)
without fading.
Negative Scenarios ❌
1. Verify that the marker does not leave permanent stains on the whiteboard surface.
2. Verify that the ink does not smudge when touched immediately after writing.
3. Verify that the marker does not leak ink when stored horizontally or vertically.
4. Verify that the marker writes only on appropriate surfaces and not on glass or paper
(if not intended).
5. Verify that the marker does not emit a strong or unpleasant odor that causes
discomfort.
Positive Scenarios ✅
1. Verify that the mobile powers on successfully when the power button is pressed.
2. Verify that the touchscreen responds accurately to single and multi-touch gestures.
3. Verify that the device connects to Wi-Fi networks and can browse the internet.
4. Verify that calls can be made and received without call drops in a good network area.
5. Verify that the camera captures clear images according to its specifications.
Negative Scenarios ❌
1. Verify that the mobile does not overheat during normal usage.
2. Verify that the battery does not drain excessively in standby mode.
3. Verify that the mobile does not crash or freeze when multiple apps are running.
4. Verify that the mobile does not allow unauthorized access without a correct
password, PIN, or biometric authentication.
5. Verify that the mobile does not get damaged under minor accidental drops within safe
height limits.
Test cases
In major stage, it is the document which contains possible scenarios for a specific
requirement.
1. TC ID
2. Tittle of the Test Case
3. Pre Conditions
4. Test steps
5. Test Data
6. Expected Result
7. Actual Result
8. Status
9. Comment’s
Need & Advantages of test writing test cases
Engineer to identify all the possible scenarios and document these identify scenarios.
When the build comes you can immediately start executing the test cases.
We write test cases to have better consistency, if you have not documented the
scenarios by executing the scenarios you can make sure that you have executed all the
documented scenarios.
We write test cases so that we don’t have to hand over every new person to the
project.
We write test cases to depend on the project rather than the person.
Test cases act like proof document for the customer after testing the whole s/w we
will deliver all the test cases as proof to the customer.
Test cases act like a base document for writing the automation test scripts.
If we write test cases we don’t have to remember scenarios.
If we write test cases then test execution will be done in an organized way.
By writing test cases the time taken to execute will be less.
3. Pre-Conditions
Meaning: The specific setup or state the system must be in before executing the test.
Purpose: Ensures that the environment is ready for testing to avoid false failures.
Example: User must be registered and have a valid account; Browser must be open
on login page.
4. Test Steps
5. Test Data
6. Expected Result
7. Actual Result
9. Comments
1. Functionality testing
It is also know as component testing also called as field level testing
Testing each and every component of the application against whether it is meeting
requirement specification — we call it as functionality testing.
Components
Password →
Confirm Password →
Ways of Testing
1. Under Testing
2. Over Testing
3. Optimized Testing
Under Testing
Testing the application with insufficient scenarios we call it as under testing.
Example:
Phone →
Valid: 9876543210 (valid)
Invalid: ABCD, 123, !@#$$
Phone
Valid → 9876543210 (10 digits)
Invalid →
abcd
12345
abcd1234
!@#
Optimized Testing
Testing the application with sufficient scenarios we call it as optimized testing.
Phone
Valid: 9876543210 (valid)
Invalid:
Types of Testing:
1. Positive Testing
2. Negative Testing
Positive Testing
Testing the application or module with valid values we call it as positive testing.
Phone
Valid: 9876543210 (10 digits)
Negative Testing
Testing the application with invalid values we call it as negative testing.
Phone
Invalid:
Positive Scenarios ✅
1. Verify the phone number field accepts exactly 10 digits (e.g., 9876543210).
2. Verify the phone number field accepts a valid 10-digit number starting with 6, 7, 8, or
9.
3. Verify the phone number field accepts a valid 10-digit number pasted from the
clipboard.
4. Verify the phone number field accepts numbers without spaces or formatting
characters.
5. Verify the phone number field accepts numbers entered using a numeric keypad only.
Negative Scenarios ❌
1. Verify the phone number field rejects numbers with less than 10 digits.
2. Verify the phone number field rejects numbers with more than 10 digits.
3. Verify the phone number field rejects alphabetic characters.
4. Verify the phone number field rejects special characters.
5. Verify the phone number field rejects alphanumeric characters.
Integration Testing
Testing the data flow between two modules — we call it integration
testing.
Example:
Balance Page:
Your current balance is ₹10,000
FAN: 12345
TAN: 678910
Amount: 10,000
Example:
Balance Page:
Your current balance is ₹10,0000
FAN: 12345
TAN: 678910
Amount: 50,0001
Scenarios:
Drafts → Compose ✔
Drafts → Calendar ✔
All Mails →
Compose ✔️
Sent Items ✔️
Drafts ❌
Cal ❌
Fav ✔️
Fav →
Compose ✔️
Sent Items ✔️
Drafts ❌
Calendar ❌
All Mails ❌
Sent Items →
Compose ✔️
Drafts ❌
Fav ✔️
Calendar ❌
All Mails ❌
Calendar →
Compose ✔️
Sent Items ❌
Drafts ❌
Fav ❌
All Mails ❌
A↔B
Example: From edit user to delete user & delete user to edit user.
A → B
css
CopyEdit
A X B
3) System Testing
It is an end to end testing where in the test environment is similar to the product environment.
End-to-End Testing:
Navigating through all the features of the S/w, To check whether the end feature working
properly or not.
1: Eg Flipkart – Navigating thro all module
Login → Search Product → Add to cart → checkout → Address → Payments → Order
Confirm → My orders → Delivered → Feedback (End feature)
Scenario: Verify the user is able to Transfer ₹10,000 from one account to another
using NEFT.
Scenario: Verify the user is able to Create a Fixed Deposit of ₹50,000 for 1 year.
Scenario:Verify the user is able to Pay monthly EMI for an active personal loan.
Steps: Login → Loan Accounts → Select EMI Payment → Enter amount → Confirm
with OTP.
Expected Result: System should validate eligibility, calculate applicable fees &
interest, and confirm application submission.
Adhoc Testing
Definition:
Adhoc Testing is an informal and unstructured type of software testing performed without
any formal test planning or documentation. The main aim is to find defects through random
testing of the application’s functionality.
Key Points:
Tester uses their understanding of the application and intuition to find defects.
Can be done anytime during the testing phase but is most effective after the build is
stable.
Advantages:
Best Practices:
Exploratory Testing
Definition:
Exploratory Testing is a type of software testing where test design, test execution, and
learning happen simultaneously. The tester explores the application, learning about its
behaviour, and designs tests on the fly based on observations.
Key Characteristics:
Simultaneous process: Test planning, design, and execution are done together.
Learning-focused: The tester learns the application while testing it.
Unscripted but structured: Not based on pre-written test cases but follows certain
charters or goals.
Creative and adaptive: The tester adapts based on findings in real-time.
Disadvantages
Definition:
Usability Testing is a type of software testing used to evaluate how easy and user-friendly a
software application is for the end users. The goal is to identify any usability problems,
collect feedback, and improve the overall user experience.
When to Perform
Advantages
Disadvantages
Can be time-consuming.
May require special tools and labs.
Results depend on participant selection.
Smoke Testing
Definition:
Smoke Testing is a preliminary testing process performed to check whether the critical
functionalities of a software build are working correctly before proceeding with more detailed
testing. It is often called “Build Verification Testing (BVT)”.
When to Perform
Characteristics
Shallow and wide approach: Tests cover most major functionalities but not in depth.
Quick execution — usually 1–2 hours for small builds.
Can be manual or automated.
Advantages
Disadvantages
Globalization Testing
Definition:
Globalization Testing is a type of software testing performed to ensure that an application
works seamlessly across different languages, regions, and cultures without the need for code
changes. It verifies that the product can be global-ready and supports internationalization
(i18n) and localization (l10n) requirements.
Purpose
Advantages
Disadvantages
Definition:
Performance Testing is a type of non-functional testing that measures how well a software
application performs under a particular workload. The goal is to ensure the application is fast,
stable, and scalable.
Objectives
Advantages
Regression Testing
Definition:
Regression Testing is a type of software testing performed to ensure that a recent code
change or bug fix has not adversely affected the existing functionality of the application.
Purpose
When to Perform
Tests a specific region or group of related modules where the change occurred.
Ensures the modified module works well with its closely connected modules.
Broader than unit regression, but not full application testing.
Example: If a “Fund Transfer” feature changes, regional regression will test transfer
module, account balance update, and transaction history — but not unrelated modules
like “Loan Application.”
Entire application is tested to ensure no new changes have broken any functionality.
Usually performed before major releases.
Time-consuming and requires more resources.
Example: After a big system upgrade in a banking app, test all features like login,
fund transfer, bill payments, FD creation, and loan modules.
Advantages
Disadvantages
Types of defect
We get defects because of three scenarios:
1. Missing implementation
2. Wrong implementation
3. Extra implementation
Missing Implementation
Anything which is present in requirement specification but not present in the SRS we call it a
missing implementation.
Wrong Implementation
Anything which is present in the requirement specification but wrongly based on the info we
call it as a wrong implementation.
Extra Implementation
Anything which is present in the SRS but not present in the requirement we will call it as
extra implementation.
Req Sale page
[Link](number);
Example:
}
Rejected Status
1. New/Open
2. Assigned
3. Rejected Status
4. Deferred Defects
5. Duplicate Defects
6. Postponed Defects
7. Cannot be fixed Defects
8. Not reproducible Defects
9. RFE Defects
10. Fixed
11. Reopen
12. Closed
Meaning:
When a tester finds a defect and logs it into the defect tracking tool, it is initially
given the status New or Open.
Purpose:
Indicates that the defect has been reported but not yet reviewed by the developer or
triage team.
Next Step:
The development team will analyze it and decide whether it’s valid, needs fixing, or
should be rejected.
2. Assigned
Meaning:
Once the defect is reviewed and confirmed as valid, it is assigned to a specific
developer for fixing.
Purpose:
Shows responsibility has been given to a developer to work on resolving it.
Next Step:
The developer starts working on the code changes needed to fix the defect.
[Link] Status
Anything which is in Test Engineer phase (in defect progress) and found already reported
earlier in the same module or another module gets the status Duplicate.
The tester might log the same defect which already exists in the defect management
tool
Check the Advanced Search in the defect tracking tool before logging.
Search using keywords and description to ensure the defect is not already reported.
Communicate with team members to confirm defect existence before logging.
[Link] Status
Definition:
When a test engineer reports a defect, but the development team decides not to fix it
immediately and schedules it for a later release, the defect is marked as Postponed.
1. Time constraints – Developers don’t have enough time in the current sprint/release
cycle.
2. Low priority – The defect is not critical for current operations.
3. Dependency on future changes – The defect will naturally be fixed when another
module is updated.
Definition:
A defect is marked as Not Reproducible when the test engineer reports a bug, but the
development team cannot reproduce it in their environment — even after multiple attempts
using the same steps.
Definition:
RFE = Request for Enhancement.
When a developer or tester suggests an improvement or new feature which is not part of the
original requirements, it is called an RFE defect.
Example:
07. Fixed
Meaning:
The developer has made the necessary code changes and believes the defect is
resolved.
Purpose:
Indicates that the fix is ready for verification by the tester.
Next Step:
The tester will retest the defect to confirm the fix works and doesn’t cause new issues.
08. Reopen
Meaning:
If, during retesting, the tester finds that the issue still exists or the fix is incomplete,
the defect is reopened.
Purpose:
Sends the defect back to the developer for further investigation and fixing.
Next Step:
Developer reviews and fixes it again before sending back for retesting.
09. Closed
Meaning:
When the tester confirms that the defect is completely fixed and no longer
reproducible, it is closed.
Purpose:
Marks the defect’s life cycle as complete.
Next Step:
No further action required unless the issue resurfaces in the future.
[Link] Status
Anything which is in Test Engineer phase (in defect progress) is rejected. This means it is not
a valid defect and needs to be closed.
Severity
Levels of Severity
Minor defect
Any spelling mistake or colour change in the SRS — we consider it as a minor defect.
Priority
It is the importance given to the defect.
There are three levels of priority:
1. High (P1)
2. Medium (P2)
3. Low (P3)
Note:
Generally, all the blocker & critical defects get high priority.
All the major defects get medium priority.
All the minor defects get low priority.
But under other circumstances, the levels of severity & priority change from company
to company and project to project.
Example:
Minor defect with high priority – e.g., Company logo missing on login page.
Critical defect/blocker defect with low priority – e.g., A defect in a rarely used
feature that doesn’t impact immediate release.
Types into it
Key Idea
If an input field accepts values between min and max, you test:
Boundaries:
Minimum = 18
Maximum = 60
Equivalence Classes:
is a black-box test design technique used to test how a system behaves when transitioning
between different states in response to events or inputs.
The system has finite states (e.g., idle, processing, completed, error).
The output or behavior depends on the current state and the input received.
Key Concepts
1. State – A condition or situation during the life of an object/system (e.g., "Logged In",
"Logged Out").
2. Transition – A movement from one state to another caused by an event/input.
3. Event – A trigger that causes a transition (e.g., user clicks “Login”).
4. Action – The output/result that occurs during the transition.
Example
Transitions:
Advantages
When to Use
Login/logout flows
ATM operations
Elevator control systems
Online order status changes
Error Guessing
is a software testing technique where the tester uses experience, intuition, and prior
knowledge to guess the most probable areas where defects might occur.
It’s not based on formal design methods, but on the tester’s skills and understanding of
similar systems.
Key Idea
How It Works
Example
Advantages
Test Plan
A Test Plan is a document that contains all the features, testing activities, and details about
how testing will be done.
It may include:
1. Objective
2. Scope
3. Approach
4. Testing Methodology
5. Schedule
6. Effort Estimation
7. Assumptions
8. Criteria
9. Mitigation Plan (Backup Plan / Contingency Plan)
10. Entry and Exit Criteria
11. Test Case Creation
12. Test Automation
13. Defect Tracking
14. Deliverables
15. Roles & Responsibilities
16. Test Environment
17. Templates
1. Objective
2. Scope
In this stage, we decide which features to test and which features not to test.
3. Approach
In this stage, we decide what kind of approach or strategy to take for testing.
We outline:
4. Testing Methodology
✔ = Will be tested
✘ = Will not be tested
5. Schedule
6. Effort Estimation
7. Assumptions
1. All the test engineers will be working till the end of the project.
8. Risk
In this stage, we will create the recovery plan for all the risks when we are testing the
project.
Primary Owner
Test Engineer who is responsible at the time of the failure of the feature.
Secondary Owner
It is a backup option. In case the primary owner of the feature drops out or is not able to
perform.
Entry Criteria:
These are the conditions which need to be satisfied before starting the test flow.
Exit Criteria:
In this step, we will check all the closing conditions from when we will start the test
to project end, and exit conditions from which we will stop the test in that particular
project.
Entry Criteria
Blocker
Critical
Major
Minor
High
Medium
Low
How to establish or host a copy of the production environment, given by the customer, and
create all the necessary changes.
Necessary changes mean all the stakeholders involved and services which need to be added
or modified in the test environment.
(15) Deliverables
In this stage, we list all the documents which are to be delivered to the customer, along with
the S/W.
1. Test Plan
2. Test Scenarios
3. Test Execution Report
4. Traceability Matrix
5. Release Notes
6. Graphs and Charts
Release notes: An automated written document that contains the instructions and list of steps
to install the S/W in the production environment.
In this stage, we will also decide the tasks and activities which are to be completed by the
responsible test engineer.
(17) Templates
In this stage, we will decide the outlines of all the documents and formats of the documents
which we will be following in that project.
Agile Methodology
It is a step-by-step procedure to develop a software.
It is an incremental and iterative process of software development.
It was designed to overcome the drawbacks of traditional model (waterfall model) of
developing. The aim of agile model is to deliver the project quickly.
The agile model was developed for the SDLC (Software Development Life Cycle).
All the people involved in developing the S/w in the project of agile model are called Scrum
Team.
1. Core Team
2. Shared Team
Core Team
S/w engineers
Test engineers
Team lead
Scrum master
Shared Team
Business Analyst (BA)
Product Architect
UI/UX designer
Database Engineer
Product Owner
Core team consists of: Scrum master, development engineers, test engineers.
Shared team consists of: BA, product architect, UI/UX designer, database engineer, product
owner.
Product Owner
Product Backlog
Here, the entire team chooses the stories and tasks to be done from the Product
Backlog.
The Scrum Master will assign each story for development to team members.
The development engineers and Test engineers will estimate the duration to complete
that feature.
Sprint planning meeting usually completed within time box (max 8 hrs).
Sprint Backlog
It is a prioritized list of the stories which are to be completed during the sprint and is
created during Sprint Planning.
It is prepared by the entire Scrum team.
Daily Stand-up Meeting (Daily Scrum)
The problem will take longer time to solve than to resolve → make a note of it in the
Impediment Backlog.
Retrospective Meeting
After the release, the Scrum team meets and discusses whether the good process
followed and will tell the problems (if any) so that they can be corrected quickly.
Each member makes a note of all these points and finalizes them by a document
called a retrospect document.
Before starting the next sprint, we will look at the retrospect document and ensure that
all the best practices that were followed in the previous sprint and the good practices
were followed in the coming sprint too.
Employee Story Point Pending Story Point Ongoing tory Point Completed
Supreme 3 5 4
Ajith 1 2 1
Suriya 5 2 4
Ramesh 2 4 1
Kamlesh 3 1 2
Story Point
Chicken
It is the person who will observe how the entire scrum process is working; they will
not be doing any tasks.
Traceability Matrix
It is the document which ensures that each & every requirement has got at least one
requirement.
Requirement Table (Example)
Forward Traceability
Starting from the first requirement and going all the way to end of requirement and
forcing it with test case document is called forward traceability matrix.
Backward Traceability
Starting from the end requirement and tracing it until the first requirement is called
backward traceability matrix.
Bi-Directional Traceability
Starting from anywhere in between or covering from both the ends of the requirement
from start to last.