What is Manual Testing?
Testing an application without any tool is called Manual Testing.
The test cases or scenarios are executed manually by testers one by one, without any tools, and the results are then verified.
Advantages of Manual Testing
- It is less expensive, as you don’t need to spend your budget on automation tools and processes.
- While testing a small change, automation requires coding, which can be time-consuming — whereas doing it manually can be easy.
- Manual testing is slow, but its strength is that it better handles complex scenarios.
Disadvantages of Manual Testing
- It is less reliable because it is conducted by humans; therefore, mistakes and errors are likely.
- The manual testing process can’t be recorded, so test cases cannot be reused.
- Certain tasks are difficult to perform manually, which may require additional time in the software testing phase.
- When there are many test cases, running tests manually is very time-consuming.
- Load testing and performance testing are impractical in manual testing.
What is Automation Testing?
Testing the application using tools such as Selenium/QTP is called Automation Testing.
In automated software testing, testers write code/test scripts that run automatically to compare actual results with the expected results.
For that, testers use appropriate automation tools to develop the test scripts and validate the software.
The advantage is that test execution can be completed more quickly.
Advantages of Automation Testing
- Automated tests help you find more bugs than manual testers do.
- Most of the process is automated, enabling a speedy, efficient workflow.
- The automation process can be recorded, allowing the reuse and execution of the same test cases.
- It can easily increase productivity by providing fast, accurate test results.
- Automated testing supports various applications.
- Through automated testing, coverage can be increased because automated testing tools never forget to check even the smallest unit.
Disadvantages of Automation Testing
- Automated testing requires coding skills and maintenance — but on the plus side, it is much faster and covers more scenarios.
- It is expensive, as it requires tools.
- It cannot handle complex scenarios.
- As we use tools, there are some limitations: we cannot automate CAPTCHA and cannot read barcodes.
- It is difficult to test UI aspects such as colors, fonts, sizes, contrast, and button sizes through automated testing.
Manual Testing vs Automation Testing: Which is Best?
There is a key difference between manual testing and automation testing. In manual testing, we execute tests step by step without scripts.
In automation testing, tests are executed automatically via test automation frameworks, along with other tools and software.
That means automation testing is faster than manual testing.
When to Use Manual Testing
- When we have to do exploratory testing.
- When complex test scenarios cannot be automated.
- When we have to do testing only once.
- Manual testing is suitable for exploratory, usability, and ad-hoc testing.
- It should also be used where the AUT (Application Under Test) changes frequently.
When to Use Automation Testing
- When test cases are executed repeatedly.
- Test cases that are time-consuming.
- For all regression test cases.
- Test cases that must run across multiple builds.
- Automation testing is suited for regression testing, performance testing, load testing, or highly repeatable functional testing.
Preconditions to Automate Test Cases
A test case should be automated if the following criteria apply:
- The task will be repeated.
- It is going to save time.
- The requirements, tests, or tasks are low-risk, stable, and unlikely to change frequently.
- The test is subject to human error.
- The test is time-consuming.
- The test has significant downtime between steps.
- The test is repetitive.
Test Cases Not Suitable for Automation
- Test cases that are newly designed.
- Test cases that have not been executed manually at least once.
- Test cases for which the requirements are frequently changing.
- Test cases that are executed on an ad-hoc basis.
How to Perform Manual Testing
- Read and understand the software specification documentation/guides. Also, study the Application Under Test (AUT) if available.
- Draft test cases that cover all the requirements mentioned in the documentation.
- Review the test cases with the team lead and client (if applicable).
- Execute the test cases.
- Report the bugs.
- Once bugs are fixed, rerun the failing test cases to verify that they pass.
Steps to Test an Application Manually
Step 1
First, gather the requirements using the requirement analysis step. Once we gather and understand the requirements, we know the expected behavior, what we need to test, and when to say we have found a defect.
Step 2
Once we understand the requirements, we identify and draft the test cases that cover all the requirements in the project documentation. The test cases help us follow a sequence to test functionality and various test scenarios, ensuring we cover the entire application and verify expected results.
Step 3
Once the test cases are ready, the tester reviews them with the team leader and senior members. By examining the test cases, we identify any glitches or errors and correct them before execution.
Step 4
After reviewing, we set up the test environment and execute the test cases one by one.
Each test case will have one of the following states:
- Passed: The scenario works as expected.
- Failed: The scenario is not as expected.
- Skipped: The test cannot be completed, possibly due to some limitation or unforeseen circumstance.
Step 5
As the test cases execute, we report the identified bugs and defects to the concerned developer and submit a bug report.
Step 6
Finally, we create a detailed test report that includes:
- Number of defects/bugs found
- Number of test cases that need to be rerun
- Number of test cases that failed
- Number of test cases that were skipped
Once the bugs and defects are fixed, we run the test cases that verify the fixes.