Manual testing is a testing process where software testers manually execute test cases without the use of automation tools. The goal of manual testing is to identify defects or bugs in the software and ensure that the application works as intended. Testers follow a set of predefined test cases, explore the software, and provide feedback on its usability, functionality, and overall user experience.
-
Test Planning:
- Testers plan the testing process by defining test objectives, test scenarios, and test cases based on the software requirements and specifications.
-
Test Case Design:
- Testers design test cases to cover various scenarios, including positive and negative test cases. These test cases serve as a guide for executing the testing process.
-
Test Execution:
- Testers manually execute the test cases on the software under test (SUT) and observe its behavior. They interact with the software as an end user would, checking different functionalities and features.
-
Defect Logging:
- If any defects or issues are identified during testing, testers log them in a defect tracking system, providing details such as steps to reproduce, expected behavior, and actual behavior.
-
Regression Testing:
- After fixing identified defects or making changes to the software, testers may perform regression testing to ensure that existing functionalities have not been negatively affected.
-
Ad Hoc Testing:
- Testers may also perform ad hoc testing, where they explore the software without predefined test cases, to identify any unexpected issues or potential areas of improvement.
-
Usability Testing:
- Manual testing often includes evaluating the user interface, user experience, and overall usability of the software to ensure it meets user expectations.
-
Exploratory Testing:
- Testers explore the software to find defects that may not be covered by existing test cases. This approach involves creative and dynamic testing to uncover hidden issues.
Manual testing is suitable for various types of testing, including functional testing, integration testing, system testing, and acceptance testing. While manual testing is effective in certain scenarios, it has some limitations, such as being time-consuming for repetitive tasks and lacking the scalability of automated testing. In many cases, a combination of manual and automated testing is employed to achieve comprehensive test coverage.