PAT Task 4
Published: 2024-03-27 14:07:18

## What is manual testing?

Manual testing is the software testing procedure which is being done by manually to ensure whether the application is working, as mentioned in the requirement document or not. In manual testing no automation tools used. 
Test cases will be written and executed manually. And it will cover almost 100% of the software application. Also, the reports are prepared manually.

Manual testing is the most fundamental technique to identify the defects in the software application. And it is very much needed since 100% of the software cannot be tested using automation tools.

Manual testing further classified as below

- White box testing
- Black box testing
- Grey box testing

## White box testing
	
White box testing will be done be the developers. In this, developers will test each and every line of the codes to ensure the internal code structure is working perfectly with given and inputs and expected output as per the requirements. 

In white box testing, code is visible to tester(developer), so it is also called **Clear box testing, Open box testing, Transparent box testing, Code-based testing,** and **Glass box testing**.

Once the developers completed white box testing then the software application will be sent to black box testing which will be done by testing team.

## Black box testing

Black box testing involves testing a software application with no prior knowledge of its internal workings. By giving an input, observes the output generated by the software application under test. This makes it possible to identify how the system responds to expected and unexpected user actions, its response time, usability issues and reliability issues.

In Black box testing code is not visible to tester, hence the tester act like end-users who don’t know how a software is coded, and expect to receive an appropriate response to their requests.

Black box testing classified to **Functional testing** and **Non-functional testing**.

## Functional testing
	
Functional testing is a type of testing that validates the software application against the functional requirements/specifications. The purpose of Functional tests is to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements.

Some types of Functional testing are **Unit testing, Integration testing, system testing etc**.,

## Non-functional testing

Non-Functional Testing is defined as a type of testing to check non-functional aspects (performance, usability, reliability, etc) of a software application. It is designed to test the readiness of a system as per non-functional parameters which are never addressed by functional testing. An excellent example of a non-functional test would be to check how many people can simultaneously login into a software.

Some types of Non-functional testing are **Performance testing, Usability testing, Compatibility testing** etc.,

## Advantages of Manual testing

- Manual testing can perform from the beginning stage of software development lifecycle even before development completed.
- Manual testing has no limitation in test case scripts. It can perform with unpredictable cases also.
- Manual testers can act as end-users and perform testing with user perspective where automation cannot perform in such a way.
- Manual testing can identify visual defects like style, color, alignment etc.,
- Manual testing is maintaining details documents with better test cases, test scenarios, data and result. It will increase quality and re-usability.

## Disadvantages of Manual testing

- Manual testing and result report take more time and effort especially for frequently repeated test cases. Automated tests provide faster test execution.
- Manual testing has limited test coverage compared to automation which can run much larger test suites.
- Manual testing is heavily dependent on individual tester skill. Automation provides consistent testing with pre-defined test handling.
- Adding new test scenarios and test data requires continuously updating manual test cases. Automated tests are easier to scale across parameters.
- Consolidated tracking, analysis and reporting of manual test execution status, progress, results etc. across teams can become highly complex.


_For example,_
	Let’s take any e-commerce website like Flipkart, Amazon and discuss the benefits and drawbacks of manual testing.

**Benefits of manual testing**

- If user type “micro” in search box then microwave oven, microphone, microscope can show in the results. However, if “Microscope” shown for the search of “microphone” then it can only identify in manual testing
- Visual things like picture of the product, alignment, color etc., are good to go with manual testing for better results.
- As act as end-user, we can test the software with all possibilities of user activities like sellers UI, customer UI or inappropriate use of user.

**Drawbacks of manual testing**

- If it is required to test the software with more number of login credentials like more than 1000 then it will take a long time in manual testing and automation testing can complete the task with minimum time consumption.
- Internal functional testing like offers for different types of cards and payment methods can be done in automation testing only.