Note: This is our latest technical engineering post written by QA Engineers Regina Garcia and Carmelle Sadora. For more posts like this, check out our technical blogroll

We could start by saying that manual software testing is outdated, boring, tedious, and unreliable. But what most people may fail to realize is manual testing should be one of the most important parts of software delivery.

Manual testing has been around since the conception of software development. It is used to drive improved customer experience and satisfaction. So why can’t we replace manual testing with automation testing?

Manual testing executes test cases without any support from tools or script.

It requires a quality assurance engineer to play the role of an end-user where they validate the featured application to ensure correct behavior.

Automation testing executes test cases with the support of tools, script, and software. It is used to validate functionality and can run repeatedly over a long period of time. But, ultimately, automation does not catch what users will or won’t like.

Reasons when manual testing would be preferred over automation

1. When a new feature is implemented, initially running a manual test is essential to ensure functionality meets acceptance criteria. In order for a test script to be properly automated, the exact test steps need to be manually executed and documented.

2. Manual testing also includes exploratory testing which enables testers to find edge cases, weaknesses, and risks. This enables testers to determine which part of the application needs more testing. Manual testing is less expensive in the short-term. If you’re only testing a simple application once, and don’t expect lots of updates, manual testing doesn’t require you to invest in expensive tools or software.

This is considered flexible and on-the-fly testing. Automation testing requires you to write, program, and review test cases for your software. But, if you really only need to test one small change, you can manually test it faster than it would take to automate. This is beneficial when a high priority bug fix needs to go out to production immediately.

3. Manual testing provides the human element to make sure the feature is user-friendly. A manual tester could tell you that the contrast between a button and the background is too light, which makes it hard to see the button and understand what action needs to be taken. This type of user interface (UI) feedback is something automated testing wouldn’t find, making manual testing closer to the sort of feedback you might hear from actual customers.

Manual testing is valuable early in the development of features and user interfaces because layout and controls are often changing (almost daily) in response to design considerations and user feedback.

Being able to predict what your users will or won’t like—things a computer can’t give feedback on—ahead of time can influence your design and make it better from the bottom up.

4. Manual testing identifies bugs that can be found in areas users wouldn’t expect. Typically, these bugs are found by quality assurance teams who were looking for something other than the issue they found. Automation will not find errors it wasn’t scripted to find. It’s impossible to catch all bugs on the first round of testing, so manual testing is a faster “catch-all” for what could possibly be missed.

5. Manual testing is used to reproduce customer-found defects. This enables the quality assurance engineer to duplicate the steps and provide detailed information to the developer about browser related issues or data issues that might not be found by automation.

6. Often, in an agile environment, things are changing and features are being enhanced. This requires constant rewrites to the automation scripts and creates additional tasks for the team. Manual testing does not need increased work to be able to adapt to any new changes.

Automation testing is a benefit to any company, but manual testing should never be replaced. Manual testing is always going to find things automation won’t find.

If you’re interested in more background on SendGrid’s front end automation software, check out Choosing a Front-End Test Automation Framework.

Carmelle Sadora & Regina Garcia
Carmelle works as Quality Assurance Engineer at SendGrid, helping delivery team ship high-quality products to customers. Regina Garcia is a member of the Quality Assurance Team at Sendgrid. She has 15 years of experience with quality assurance and her passion to release solid working software is what continues to drive her career.