Manual Testing is the Software Testing Technique that is carried out using the functions and features of an application. In manual testing, a tester carries out tests on the software by following a set of predefined test cases. In this testing, testers make test cases for the codes and 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 chance of human errors.
Every new application must be manually tested before its testing can be automated. Manual Testing requires more effort rather than automation testing but is necessary to check automation feasibility. There is no requirement for knowledge of any testing tool in manual testing.
Characteristics of Manual Testing
- Manual testing is time-consuming.
- High chances of human error in manual testing.
- Possibility of exploratory testing.
- There is no need for programming language in manual testing.
- Manual testing doesn’t use frameworks.
- Less accuracy.
Why Need Manual Testing?
Below are some of the reasons why manual testing is required:
- The main goal of manual testing is to ensure that the application is bug-free, stable, in conformance with the requirements, and deliver a stable product to the customers.
- Manual testing helps the test engineers get more familiar with the product and get an end-user perspective. This helps them to write correct test cases for the software.
- Manual testing helps to ensure that the defects are fixed by the developer and that retesting has been done on the fixed defects.
Steps in Manual Testing
The below diagram lists the steps in the manual testing process:
- Requirement Analysis: Study the software project documentation, guides, and Application Under Test (AUT). Analyze the requirements from SRS.
- Test Plan Creation: Create a test plan covering all the requirements.
- Test Case Creation: Design the test cases that cover all the requirements described in the documentation.
- Test Case Execution: Review and baseline the test cases with the team lead and client. Execute the test cases on the application under test.
- Defect Logging: Detect the bugs, log and report them to the developers.
- Defect Fix and Re-verification: When bugs are fixed, again execute the failing test cases to verify they pass.
Types of Manual Testing
There are different methods to implement manual testing but it is broadly classified into three types of manual testing:
- Black Box Testing: In this technique, the tester or the QA analyst will only check the functionality of the particular module or particular method or sometimes the entire application by providing the different test cases manually. Here, the tester will give the input for the application and test it manually. If it returns the expected output then the tester will proceed with another set of inputs and report all the results to the team. If the input given by the user manually is failed during the testing then he/she will report this issue to the development team.
- White Box Testing: In this technique, the person will check the internal structure of the system like designs, coding, etc., manually. Here, the development team will review the entire coding part line by line to ensure the correctness of the code. If he/she finds anything dissimilarities or errors in the code, they will correct or fix the errors in the coding or designs. Here, the process is entirely carried out manually and the process is efficient since the checking code or design is manually checked by humans.
- Gray Box Testing: This technique is the combination of both white-box testing and black-box testing. Here, the internal structure of the application is partially known by the tester. The tester will check both the internal structure and the functionality of the application manually. The tester will check the coding part as well as test the application by providing different test cases manually. If the input fails at some stage the tester will then make the changes in the coding part.
Tools Used for Manual Testing
- TestLink: It is a web-based test management system that facilitates software quality assurance and it is one of the most user-friendly programs. It is available through a browser connected to the internet.
- Bugzilla: It is a web-based bug-tracking tool that is developed by Mozilla. It has a simple bug search that searches the complete text of the bug.
- Jira: It is a manual testing tool that helps teams assign, track, report, and manage work and bring teams together. This tool is compatible with agile software projects also.
- LoadRunner: It is one of the most widely used performance testing tools. The primary purpose of this tool is to categorize the most prevalent causes of performance problems.
- Apache JMeter: It is an open-source load testing tool for analyzing and measuring the performance of a variety of services. It has an easy-to-use user interface.
Manual Testing vs Automation Testing
Below are the differences between manual testing and automation testing:
Parameters | Manual Testing | Automation Testing |
---|---|---|
Definition | It is the process of manually testing the software. | It involves the usage of automation tools for executing the test cases. |
Test case execution | Test cases are executed manually by the QA Testers. | Test cases are executed automatically using automation tools and scripts. |
Efficiency | Manual testing is less-efficient and time-consuming. | Automation testing is more efficient and less time-consuming. |
Test coverage | It is difficult to ensure 100% test coverage. | More test coverage can be ensured in automation testing. |
Programming knowledge | There is no need to have programming knowledge, only product knowledge is required. | It is important to have programming knowledge to write test scripts. |
Advantages of Manual Testing
- Fast and accurate visual feedback: It detects almost every bug in the software application and is used to test the dynamically changing GUI designs like layout, text, etc.
- Less expensive: It is less expensive as it does not require any high-level skill or a specific type of tool.
- No coding is required: No programming knowledge is required while using the black box testing method. It is easy to learn for the new testers.
- Efficient for unplanned changes: Manual testing is suitable in case of unplanned changes to the application as it can be adopted easily.
Disadvantages of Manual Testing
- Less reliable: Manual testing is less reliable as it does not provide testing on all aspects of testing.
- Can not be reused: There is a need to develop separate test cases for each new software.
- Large human resources required: Manual testing requires a large number of human resources and there are some tasks that can’t be performed manually.
- Needs experience: The tester needs to know the application well. They develop test cases based on their experience, there is no proof that all the functions are covered or not.
- Time-consuming: If the project is large then the testing process is time-consuming.