Manual Testing
Published: 2024-05-14 07:34:06

Manual Testing:

Manual testing is a software testing where testers manually test the software or application quality. Testers interact with the system like how an end user would do to identify bugs, defects, and issues in the software that create friction in user experience. It is great for small-scale testing and even for large-scale testing where there are thousands and millions of items and features to test, manual testing is still needed to some extent.  

During the software development lifecycle, when the application is still in build process, automation testing may not be practical or detailed enough. In such cases, manual testing is incredibly valuable as it offers a perspective that can only come from a human tester. This approach is especially useful for evaluating user interface (UI), user experience (UX), and overall software functionality from an end-user's viewpoint.
Mastering manual testing is crucial for both experienced professionals and beginners to ensure that application functions correctly and provides a seamless user experience.

Types of Manual Testing:

1. Exploratory testing
2. Ad-hoc testing
3. Usability testing
4. Functional Testing
5. Non-functional Testing
6. Unit Testing
7. UI Testing
8. Integration Testing

Manual testing process:

1. Understanding the requirements specifications.
2. Test plan development.
3. Test scenarios and case creation.
4. Setting up the test environment.
5. Executing test cases.
6. Logging defects.
7. Analysing results and reporting.
8. Retesting and Regression testing.


Advantages of manual testing:

- Human insight and intuition
Testers can use their experience and intuition to explore and evaluate the software. This human touch is beneficial in comprehending the user experience, pinpointing UI/UX issues, and providing feedback on the subjective aspects of the software, such as its appearance and feel.

- Flexibility and adaptability
Manual testing can be done in early stages of development, so testers can make a quick changes in their testing approach as and when the software evolves. Testers can easily adapt their test cases and approaches if there is any change in code or application.

- Cost-effectiveness for small-scale projects
Manual testing can be more cost-effective for smaller projects or those with limited budgets.

- Real-world application
In mobile application testing it is necessary to make sure the feel of the application, UI, gesture controls, and device-specific features are best evaluated manually.

Limitations of manual testing:

- Time consumption and resource intensity
Manual testing can be significantly more time-consuming than automated testing, especially for large and complex applications. It requires more human resources, and the time taken to execute test cases manually can lead to longer development cycles.

- Limitations in handling complex or large-scale testing scenarios
When dealing with complex or large-scale applications, manual testing may not be effective as testing every possible scenario or combination is infeasible, leading to gaps in test coverage.

- Potential for human error
Given the repetitive and sometimes monotonous nature of manual testing, there is a higher risk of human error. Testers might overlook bugs or inconsistencies, especially when dealing with extensive testing scenarios.

- Less effective in regression or performance testing
There are better approaches than manual testing for situations requiring regression testing performance testing. In these cases, automated testing is often more efficient and reliable.


Examples to Highlight importance of Manual Testing:

Example 1: In exploratory testing, testers should explore and interact with the application deeply before deep diving into the details and it makes uncover bugs that they don't even know of in the first place. It also makes the tester to know more about the application in detail. This knowledge will help them to create more efficient test cases.

Example 2: Initial requirement of the project can be very simple: to test the login functionality if it accepts valid username and password, but it may change in between to includes password strength verification. When doing the manual testing, testers only have to type in several combinations of passwords that meet and do not meet the password strength criteria to see how the system responds.

Example 3:  If we take an application like Whatsapp, it is necessary for tester to make sure the application is very handy to use, since in real world user will handle the application manually.