# Manual Testing
This testing technique involves manually executed test cases by a professional without any assistance from automated tools. The purpose of Manual Testing is to identify bugs, issues, and defects in the application. Manual software testing is the most primitive technique among all approaches and helps in identifying critical API bugs.
Any new application needs to be manually tested before it is automated. This technique requires more effort but is necessary to assess the automation feasibility.
The concept of manual testing does not require any knowledge of testing tools. One of the fundamentals of Software Testing is "100% automation is not possible," which makes the manual approach imperative.
# Objectives of Manual Testing
The key concept of manual testing is to ensure that the application is bug-free and works in compliance with functional business rules.
Test suites and test cases are developed during the testing phase and should have 100% coverage, ensuring that reported defects are fixed by developers and retesting is performed by testers on the fixed defects.
Basically, this technique checks the system's quality and delivers a bug-free product to the customer.
# Types of Manual Testing
The diagram represents the types of manual testing. In reality, any testing approach can be performed either manually or with an automation tool.
- Black Box Testing
- White Box Testing
- Unit Testing
- System Testing
- Integration Testing
- User Acceptance Testing
# How to Apply Manual Testing?
- Read and understand the software project documentation and its guidelines, also study the Application Under Test (AUT) if possible.
- Draft test cases covering all business rules mentioned in the documentation.
- Review and establish a test case baseline with Team Lead and the client (as applicable).
- Execute the test cases on the AUT.
- Report any bugs.
- Once the bugs are fixed, re-run the failed tests to verify if they pass.
# Manual Testing vs. Automated Testing
Manual Testing:
- Requires human intervention to execute tests.
- Requires specialized work, is time-consuming, and involves high costs.
- Any type of application can be manually tested; certain approaches are more suitable for manual execution.
- Manual testing can become repetitive and tedious.
Automated Testing:
- Automation involves the use of tools to execute test cases.
- Saves time, costs, and manpower. Once recorded, it's easier to execute a battery of automated tests.
- Automated testing is recommended only for stable systems and is mostly used for Regression Testing.
- The tedious part of executing repeated test cases is delegated to automated software.
# Tools for Manual Testing
- Citrus
- Zap
- NUnit
- Jira
- SonarQube
- JMeter
- BugZilla
- Mantis
- Tessy
- Loadrunner
โ Test Execution Automated Testing โ