Manual Testing
Tags: testing, manualtestin, whiteboxtesting, blackboxtesting
Published: 2023-10-24 15:07:04

**In this blog, we’ll see the basics of manual testing. We’ll also cover the advantages and disadvantages of manual testing. ** 

**What is manual testing? **


Manual Testing is a type of software testing, where testers will manually find defects and bugs. Test cases are executed manually, by humans, without any support from tools or scripts.

The goal of manual testing is to find errors, defects, and flaws in a software product. Manual testing is the most basic technology of all testing methods.

Manual testing is a process in which we compare the behavior of software (it can be a component, module, feature, etc.) with the expected behavior that we defined during the initial phases of SDLC.

**Why do we need manual testing?**

 The basic usability, look & feel of the application can be tested and evaluated by humans. Manual testing will be executed as per the user experience perspective.

Manual verification always gives a broader perspective of the overall application. In this testing, testers write test cases test the software, and give the final report about that software. Manual testing is time-consuming testing because it is done by humans and there is a greater chance of human errors. 

Every new application must be manually tested before it can be automated. Manual Testing requires more effort than automation testing because every time we need to retest the software when there is new functionality is added. When we do the regression testing, there are more chances to miss out on the test cases.

Automation testing can be done by tool/framework through the scripts. All the manual test cases will be defined through the code. Whenever testing needs to be done we can execute the scripts. With automation testing, we can reduce the total time of testing compared to manual testing. Here the chances of missing the bugs will be less. But all the test cases can't be automated, those test cases can be verified manually.

**Types of Manual Testing:**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hewnoa5wfdiickk7rs7u.png)

**- White Box Testing: **

White box testing is an approach that allows testers to inspect and verify the inner workings of a software system and checks the internal code/logic, infrastructure, and integrations with external systems. This type of testing of software is started after a detailed design document.

The white box testing contains various tests, which are as follows:

1. Path testing
2. Loop testing
3. Condition testing

White box testing mainly focuses on the looping statements, flow checks, whether the conditions are working fine, whether the exceptions are handled correctly or not., etc. 
 
**- Black Box Testing: **
The primary source of black box testing is a specification of requirements that are stated by the customer.

Here the testing will be done on the application from the user’s perspective without any knowledge of its implementation. Black box testing checks that the system as a whole is working as expected.

Black box testing mainly focuses on the requirements stated by the client. we verify the product/software end-to-end w.r.t test cases we designed. Here we test the behavior of the modules and boundaries.

**Grey Box testing**

The grey-box testing strategy combines white-box and black-box testing approaches. It involves access to internal coding to design test cases as white box testing and testing cases are done at the functionality level as black box testing.


Generally, Unit testing and integration come under Whitebox testing. System and Acceptance testing comes under black box testing. 

**Process of Manual testing: **

1. Analyzing the requirements
2. Creating the test plan and test description documents
3. Review of the test plan
4. Execute the test plan
5. Test report and bug tracking, after fixing the bug retesting the software.


Let's see some advantages and disadvantages of manual testing.

Advantages:
1. Manual testing of an application identifies most of the issues, including the look and feel issues of the application.
2. Components like text, layout, icons, and UI and UX issues can be easily detected.
3. It is well-suited in case we make some unplanned changes to the application as it is adaptable.
4. Humans can observe, judge, and also provide the test case of manual tests.

Disadvantages:

1. Manual testing is time-consuming.
2. It isn't easy to find size differences and color combinations of GUI objects using a manual test.
3. Nonperformance testing is very difficult to perform. 
4. Regression Testing cases are difficult to run in practical when there are continuous feature additions happening in the software.

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61fh11m9cdza8y571hv5.png)

Assume we need to test the login screen. We will write the test cases and execute them once the developer gives the build.

Advantages of manual testing
If we find any bugs like, text changes or error text is not appropriate, or the color mentioned by the customer and developed was different. 
We can check all these things when we look at and feel the UI and how comfortable or easy to use by the human.

Disadvantages:
When there are complex features in the software. Frequently we are adding features to the software, we need to check each screen/module manually. 
It will be difficult to check the same functionality in the repetitive builds, due to this we may miss some of the feature testing due to lack of time/deadlines we may commit.

 If the tester gives the QA signoff without completing the testing it may cause bugs to the Realtime users.

Conclusion
In this blog, we tried to cover the topic of manual testing. Types of testing and advantages and disadvantages of manual testing.