DEV Community

Cover image for Manual Testing: The BackBone of QA
Shivani Saboji
Shivani Saboji

Posted on

Manual Testing: The BackBone of QA

One of the biggest advantages of manual testing is the human touch. Testers think like real users and evaluate how the application feels in real-world scenarios. They can detect issues related to usability, design, and user experience that automated tools cannot easily identify.

For example, a button might be technically working fine, but its placement or color may confuse users. A manual tester can quickly notice such issues.

In today’s fast-evolving digital world, software applications have become an essential part of our daily lives. From mobile apps to banking systems and e-commerce platforms, users expect applications to be reliable, user-friendly, and error-free.

Here what exactly manual testing is
🔵 Manual Testing - Testing the software or application repeatedly or again and again manually in order to find the defects in the software according to the customer.

Real time example for manual testing-
[Customer] ---->Google
|
[Requirements]----->[1000 page document] ---[MS -excel/Ms word]
|
software Company
1.BA (Business Analyst)
(Requirement Collection)
2.Developers
a. Developer will look into requirement and ------------>50 lakh line codes
write a code and develop the software or Application
b. Developer will compress code into exe-files /set-up files
| [gmail.exe]
| Install the gmail software
|
|
Developer will give url, username, password
Test Engineer will get url, username, password

➡️Test Engineers
1.Test Engineer will manually switch on the computer.
2.Test Engineer will manually check for internet.

  1. Test engineer manually open the browser. 4.Test Engineer will manually enter the url- www.gmail.com 5.Welcome login page is displayed. 6.Test Engineer will manually enter the username and password and click on login button 7.Home page is displayed. 8.Test Engineer will manually click on compose and enter values for all the fields and click on send button 9.Test Engineer manually click on ‘sent items’ | \ | \ | \ [Mail is not displayed] [Mail is displayed] If it shows blank-defect in it shows pass in manualtest manual testing

➡️Note:-While Testing software if test engineer finds any defect then TE communicate defect to the developers.

Developer will fix the defect and give new software.
Test Engineer or developer will uninstall the old software and install the new software.

And test engineer manually test defect is fixed or not.

➡️Difference between Developer and Test Engineers

Developer
1.Developer will look into requirement

Write the code and develop the software.

2.Developer will be fixing the defect.

Test

  1. Test Engineer look into the requirement
    And test the software.
    2.Test Engineer will be finding the defect.

                                                                                           🔵In the software development life cycle
    
  2. Waterfall model 2. Derived model

  3. Spiral model 4. Hybride model

  4. Verification and validation model 5. Agile model

  5. Prototype Model

🔵SDLC -- is a step by step procedure or standard procedure to develop a new software.

*When a person or a company wants to start with new project they should follow sdlc model.

➤In the condition if we don’t follow the sdlc model
1.We will no get to know how many engineers are required to work on the project.
2.We will not get to know how much cost should be invested to work on the project.
3.There might not be proper supporting requirement document.

🔵Stages of SDLC models BA(Business Analyst)

[Requirement Collection]
⬇ PA (Product Analyst)

[Feasibility Study]

⬇ [Archietect] -----------⭢ Archietect/Technical Architect

[Design]


[Coding]----------------------⭢Sr developer/Jr developer

[Testing] --------------------⭢ Sr Test engineer

[Installation/Implementation] ----------- ⭢ IT engineer
⬇ [Manitainanace]
⬇ Test engineer and developer

🔵Water fall model
Water fall model is a step by step procedure or standard procedure to develop a new software.

[Requirement Collection]

[Feasibility study]

[Design]

[coding]

[Testing]

[Installation]

[Maintainence]

➡️Requirement Collection- It is nothing but collection of requirement from the customer place it is done by BA or PA.

Ba from the company will go to customer place and collect the requirement in business language come back to company convert BL into software language and explain to developer, TE, Architect. This process is called Requirement Collection.

➡️Feasibility Study -Once after requirement collection is done then we go for feasibility study.

➤It is a team which consists of project manager, BA, Architect, finance team, HR team
➤This is the stage where company decides to take up the project or not.
➤This is the stage where company get to know if we take

➡️Roles of project Manger
Project manage will interact with the finance manager, HR team, Architect, BA and decide to take up the project or not.
*He will gather all the information regarding the project.
*HR Team and Finance team is optional.

➡️Role of Architect
Architech will think from technical point of view and he will also think technically is it possible to implement the project or not.
➤If we are able to implement which technology to be used such as java,c,python etc.

➡️Role of BA
He will be involved in requirement collection.

➡️Role of Finanace Team
Finance team will think from money point of view They will also think what is the operational cost required to work for the project
And If they invest money do they get profit or not.

➡️Role of HR Team
Hr team will think from hiring point of view.
They will check how many experience resource and how many fresher resource are requires for the project.

➡️Design
once after the feasibility study is completed company decided to take up the project then we go for design stage which is done by architech.
➤High level Design – Designing the architecture of the software is called as high level design
➤Low Level design – if you take any application then designing each and every indivual module in detail is called low level design.

➡️Coding
Once after design is completed then we go for coding stage. It is done by the sr developer and junior developer by looking into the requirement.

➡️Testing
Once after coding completed developers will give software to test engineer all the test engineer will start to test the software by entering all possible inputs into the software to find the defect in the software.

➡️Installation
Once after testing is completed software quality is good then we go for installation phase or stage it is done by IT

➡️Maintainance-
Once after installation is completed then we go for maintainance stages.

Software Testing
⬇ ⬇ ⬇
1.White box testing 2.grey box testing 3. Black box testing

  1. White box testing
    Testing each and every line of the code is called white box testing.

  2. Grey box Testing
    Combination of White box testing and Black box testing

3.Black box Testing
Testing the functionality of an application against customer requirement specification

🔷 Functional Testing
🔷 Integration Testing
🔷 System Testing
🔷 Acceptance Testing
🔷 Smoke Testing
🔷 Adhoc Testing
🔷 Globalization Testing
🔷 Compatibility Testing
🔷 Exploratory Testing
🔷 Regression Testing

🔷Functional Testing- Testing each and every component of an application thoroughly / Rigorously against the customer requirement specification called as a functional testing

Thoroughly / Rigorously -
Here we will take each and every individual components and try to enter all possible scenarios or inputs against customer requirement specification is called rigorously/ thoroughly.

Types of functional Testing
1) Overtesting / Exhaustive Testing
Testing each and every component of application by entering data or input which doesn't make any sense is called as overtesting

➤Drawbacks of Overtesting
1) Waste of time.

2)Under Testing
Testing each and every component of an application by entering insufficient set of data is called under testing.

ex-
Input --------------------> 1
100 TE missed to test 25
1275 2.475
blank 2rs
0 1000000

➤Drawback of under testing
1)TE will miss lot of scenarios.
2)TE will miss lot of defects
3)Software quality will not be good.

3)Optimised Tetsing
Testing each and every components of an application by entering the data which make sense is called optimised testing

➤Advantages of optimised testing
Test Engineers will not miss any scenarios.
Test Engineers will not miss any defect.
There will be no duplicates.
Time will not be wasted.
Software quality will be good.

🔷Integration Testing
Testing the dataflow between two or more modulus is called as integration testing

➤Types of Integration Testing
1.Incremental Integration Testing
2.Non-Incremental Integration Testing

1.Incremental Integration Testing
Incrementally adding the modulus and testing the dataflow between the modulus is called as incremental integration testing.

➤Two types of Incremental integration testing
a)Top down Incremental Integration Testing
b)Bottom up Incremental Integration Testing

a)Top down Incremental Integration Testing
Incrementally adding the modules and testing the dataflow between the modulus and ensure that the module your adding is child of the previous module is called Top down Incremental Integration module

a) [Parent] 2) [Compose]
|/ |/
[child1] [Draft]

b)Bottom up Incremental Integration Testing
Incrementally adding the modules and testing the dataflow between the modulus and ensure that the module your adding is parent of the previous module is called Bottom up Incremental Integration testing.

  [child]--> [Parent] 2)  [Trash]---> [Import]
Enter fullscreen mode Exit fullscreen mode

2.Non Incremental Integration Testing
Here we combine all the modules in one shot and test the dataflow between the modulus is called non-incremental integration testing.

➤When to go for non incremental integration testing

a) When we dono parent and child module when it is different to identify parent and child module.
b)When dataflow is very complex.

🔷System Testing-
It is an end to end testing done by the test engineer in testing server or testing environment which is similar to the production server/ environment server.

🔷Acceptance Testing -
It is an a end to end testing done by the enduser/customer where in they use software for real business for some particular period of time and check wheather software can handle all the real time business scenarios and situations.

🔷Smoke Testing
Testing the basic and critical features of an application before doing thorough/rigorous testing is called as a smoke testing.

➤When to do smoke testing

1)As soon as we get the build we should do smoke testing
2)When developer give the build to customer chances are there developer might miss to copy few of the files , so customer will do smoke testing to check weather files are copied properly and build/software is installed properly or not.
3)Release engineer/Build engineer will do smoke testing to check weather build/software is installed properly into testing server and production server.

➤Why to do smoke testing -
1)To check that whether software is testable or not
(When developer give the build or software to test engineer, first test engineer will do smoke testing while doing smoke testing if Test engineer fine more number of blocker defects then product is not eligible for testing. Test engineer will stop the testing and give the build/ product)

🔷Adhoc Testing-
Testing the application randomly without looking into the requirement is called adhoc testing.

🔷Globalization Testing-
Testing the software for different language is called globalization testing.

➤Types of globalization testing
a)Internationalization testing(I18N Testing)
b)Localization Testing-(LION Testing)

a)Internationalization testing- Testing the software for multiple languages is called I18N testing
b)Localization testing-Testing the software and check wheather application is developed as per the country standard is called localization testing.

🔷Compatibility Testing-
Compatibility testing is testing to ensure that software works correctly across different environments like browsers, devices, and operating systems.

🔷Regression Testing-
Testing the unchanged /old features to make sure that changes like adding a features and fixing the defect is not introducing any defects in the old/ unchanged feature is called regression testing.

➤When to go for full regression testing-
●When changes are more don't spend time in doing impact analysis just test the entire software by doing full regression testing.

●When the changes are done to the "Root of the Product" then we should test the entire product by doing regression tesing.

🔷Non-Functional Testing-
Performance Testing-
1.Load Testing
Load testing is testing how a system performs under expected user load.
ex-Imagine a website like an online shopping app.

10 users → Works fine ✅
1,000 users → Still working ✅
10,000 users → Slow or crash ❌

  1. Stress Testing- Stress testing is testing a system with very high load to find its breaking point. During ticket booking (like movies or travel):

Too many users try to book at the same time
Website hangs or crashes

👉 Stress testing helps identify this situation before release.

  1. Volume Testing Volume testing is testing how a system performs with a huge amount of data. example-Banking system:

Millions of transactions stored
Large customer data

👉 If data increases:

System may slow down
Reports may take time

👉 Volume testing helps avoid these issues.

  1. Endurance Testing Endurance testing is testing a system with normal load for a long duration to check stability example- 👉 Online streaming app:

Users watch videos for many hours
App should not crash or slow down

👉 Endurance testing ensures smooth long-term usage.

  1. Scalability Testing- Scalability testing checks how well a system can increase its capacity when load increases.

example-
👉 Social media app:

As users grow daily, the system should handle more traffic
If performance drops, scaling is required

👉 Scalability testing ensures future growth is supported.

  1. Security Testing-
    Security testing checks whether a system is protected from threats and unauthorized access.

  2. Usability Testing-
    Usability testing checks how easily a user can use an application.

🔵 ➡️ Boundary Value Analysis (BVA)

Boundary Value Analysis is a testing method where we mainly focus on checking the starting and ending limits of any input.

In most applications, inputs are given in a range (for example age, marks, amount, etc.). Instead of testing all values, we test the values at the edges because that is where most mistakes or bugs happen.

So, in this technique, we check:

●Value just below the minimum
●The minimum value
●Value just above the minimum
●Value just below the maximum
●The maximum value
●Value just above the maximum

➡️ Why We Use Boundary Value Analysis

We use BVA because:

Many errors happen at boundary values
It reduces the number of test cases
It helps find bugs quickly
It improves test coverage

➡️Example 1: Age 18 to 60
Test Case Age Expected Result
1 17 Invalid
2 18 ✅ Valid
3 19 ✅ Valid
4 59 ✅ Valid
5 60 ✅ Valid
6 61 Invalid

➡️Example 2: Age 25 to 40 (Insurance Policy)
Test Case Age Expected Result
1 24 Invalid
2 25 ✅ Valid
3 26 ✅ Valid
4 39 ✅ Valid
5 40 ✅ Valid
6 41 Invalid

➡️Example 3: Age 21 to 35 (Job Requirement)
Test Case Age Expected Result
1 20 Invalid
2 21 ✅ Valid
3 22 ✅ Valid
4 34 ✅ Valid
5 35 ✅ Valid
6 36 Invalid

➡️Example 4 -A booking system allows users to select dates from
1st April 2026 to 30th April 2026

👉 So:

Minimum date = 01-Apr-2026
Maximum date = 30-Apr-2026
✅ Boundary Values to Test

👉 Using BVA:
Min-1, Min, Min+1, Max-1, Max, Max+1

🧪 Test Cases
Test Case Date Expected Result
1 31-Mar-2026 Invalid (before range)
2 01-Apr-2026 ✅ Valid (minimum date)
3 02-Apr-2026 ✅ Valid (just above min)
4 29-Apr-2026 ✅ Valid (just below max)
5 30-Apr-2026 ✅ Valid (maximum date)
6 01-May-2026 Invalid (after range)

Example 5 : Online Course Registration Dates

When I was testing an online learning platform, there was a condition:

🔵 ➡️ Students can register only between 10th June 2026 and 25th June 2026

🧪 How I Applied Boundary Value Analysis

Instead of checking all dates, I focused on important edge values:

Test Case Date What I Checked Result
1 09-Jun-2026 Before registration starts Not allowed
2 10-Jun-2026 First day of registration ✅ Allowed
3 11-Jun-2026 Just after start ✅ Allowed
4 24-Jun-2026 Just before closing ✅ Allowed
5 25-Jun-2026 Last Day ✅ Allowed
6 26-Jun-2026 After closing Not allowed

Decision Table Technique--

The Decision Table Technique is a method used in testing to map out different input conditions and their corresponding actions. It helps ensure that all possible combinations of inputs are tested, making it easier to spot missing or incorrect logic in the system.

Example 1: Online Food Delivery Discount

While testing a food delivery app, I came across a condition:

🔵 ➡️ Discount is applied only if:

Order amount is more than ₹500
User is a premium member
🧪 Decision Table
Order > ₹500 Premium User Discount Applied
Yes Yes Yes
Yes No No
No Yes No
No No No

Example 2: ATM Cash Withdrawal

During ATM testing:

🔵 ➡️ Cash is dispensed only if:

Balance is sufficient
ATM has cash
🧪 Decision Table
Sufficient Balance ATM Has Cash Result
Yes Yes Cash Dispensed
Yes No Transaction Failed
No Yes Transaction Failed
No No Transaction Failed

🔵Example 3-Let’s take a login system:

Condition 1 → Username is correct or not
Condition 2 → Password is correct or not

Now we create a table:

Username Password Result
Correct Correct Login successful
Correct Wrong Error message
Wrong Correct Error message
Wrong Wrong Error message

🔵Example 4: Movie Ticket Booking

In a ticket booking system, booking depends on:

Seats available
Payment status
Seats Available Payment Result
Yes Success Ticket booked
Yes Failed Booking failed
No Success Seats not available
No Failed Booking failed

Future of Manual Testing in the Age of AI

In today’s fast-growing technology world, Artificial Intelligence (AI) and automation are becoming more popular in software testing. Because of this, many people think manual testing will lose its importance. But in reality, manual testing is still very important and will continue to be needed in the future.

Manual testing helps testers understand the application from a real user’s point of view. A human tester can easily identify issues related to usability, design, and user experience. These are areas where automation and AI tools cannot fully perform, because they do not have human thinking and judgment.

As AI is growing, the role of manual testers is also changing. Instead of only executing test cases, testers are now focusing more on exploratory testing, understanding user behavior, and analyzing the application deeply. This makes manual testing more skill-based and important.

Also, not all testing can be automated. Some applications change frequently, and writing automation scripts again and again can be time-consuming. In such cases, manual testing is more flexible and useful.

AI should be seen as a support system, not a replacement. It can help testers by reducing repetitive work and improving efficiency. But the final quality check still depends on human understanding.

In the future, testers who have both manual testing knowledge and basic understanding of automation or AI tools will have better career opportunities. The demand for skilled testers will always be there.

In conclusion, manual testing is not going away. It is evolving with technology. The combination of human intelligence and AI tools will help deliver better quality software.

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.