Website loading

Manual Testing vs. Automated Testing: An Intro to Effective QA

Blogpost-featured-image
publisher-image
Dragos
QA Specialist
Mar 16, 2022 • 6 min

As humankind constantly evolves, we explore and invent new ways to make our lives easier. Even if we are talking about something simple like washing machines or more complex things like self-driving cars (we can see a pattern here), humans like to automate.

Before we dive straight into the subject, let us define the two types of testing.

What is Manual Testing? 💪

If human resources are used to perform testing, we can consider that, Manual Testing. In other words, QAs execute tests manually, in an individual manner.

What is Automation Testing? 🦾

Automation testing is the process of writing code/test scripts to make the test execution faster, cheaper, and more efficient.

With the definitions out of the way, we will come up with a realistic example so you can get a feel of how manual and automated testing happens and how well they play off each other.

Manual vs Automation Testing in Action 💥

Manual testing and automated testing framework typically include a test plan, test cases, test scripts, test data, test results, and defect tracking. 

To better understand the role both processes have in the bigger picture, let us imagine a simple and fun app, something like a Dog Routine tracker. (because who doesn't like dogs, am I right? 🐶)

Let’s say that the main features of this app are:

  • The dog’s profile
  • The dog’s routine tracking (walks, playtime, sleep time, eating intervals, food amount, etc.)
  • Tips and tricks (section with photos and videos)

At first, we would want to mostly familiarise ourselves with the app’s screen and elements, and test the app’s main functionalities and UI based on the designer’s or client’s vision. As this is early development, things might change, which can create build instabilities and crashes. Here is where manual testing comes into place.

In this regard, looking back at our fictional app, we can test the following sections from a manual testing perspective:

  • Testing the account creation of our sweet dog’s profile
  • Testing if the information is represented correctly on the “dog profile” screen
  • Testing if the elements on the dog profile are in line with the vision
  • Testing the functionality of the tracking feature for adding or removing tracks
  • Testing the UI of the tracking options
  • Checking if the videos in the “tips and tricks” section can be played
  • Checking if the photos/videos are in the right place and are not overlapping
  • Checking if the photos/videos are right for each section

These are just a few examples of the testing we can perform in the app’s early stages when there can be many uncertainties and change requests. Starting with manual testing will grant us a better understanding of the app's elements and how everything ties up together.

A few sprints later… ⏰

Some time has passed, the app's vision has changed, and we ended up with an app that is targeting dogs and cats (double the serotonin 🐶 🐱). Looking back, we can say that it’s a good thing we did not start the automation process back then.

Well, now that we have a clear vision of what the app wants to be and what it would look like, this is the best time to start our automation process.

First, we want to analyze the parts that can be automated and what would be most efficient (from a time/effort point of view). After getting that out of the way, we can start creating automation tests for the app’s main functionalities. A few examples would be:

  • Automate the creation flow for both dog and cat profiles
  • Check if the correct information was stored on the profile
  • Create automation tests for the tracking functionality of the different activities for dogs and cats
  • Create automation tests for the videos “play” and “stop” functionalities

Suppose we are to compare the two processes. In that case, we notice that the automation tests avoid the UI tests and instead focus on the more tedious flows like account creation and information check. This approach can take a long time to test manually and, if there are a lot of elements, can lead to human error as well. 

Difference between manual and automated testing 🧑 🤖

There are some significant differences between automated testing and manual testing. In manual testing, a human performs the tests step by step, without test scripts.

In contrast, with the automation approach, the tests are executed automatically via test automation frameworks and multiple tools and software.

For Manual Testing, the testers' skills, knowledge, and experience play essential roles in the testing process. For Automation testing, these factors are not as relevant, as most of the procedures will be autonomous and require little to no human input.

Advantages and Disadvantages ➕ ➖

Both types of testing come with pros and cons, so we cannot really side with one or the other.

For Manual Testing, the advantages are:

  • It allows for ad-hoc testing (unstructured software testing)
  • You spend less time and expenses to begin productive manual testing
  • It's advantageous for projects with frequent requirement changes
  • You have more flexibility in the performed actions

And the disadvantages are: 

  • It’s time-consuming, mainly while doing regression testing
  • It's less reliable due to the possible human errors
  • It's more expensive in the long run

 

On the other hand, here are the pros of Automation Testing:

  • It's faster in execution
  • It's cheaper in the long run
  • It's more reliable since there is no human error involved

While the cons are:

  • It's limited to stable products
  • It has limitations on specific tests (captchas, visual aspects of UI)
  • You need more maintenance time

 

Can Automation testing replace Manual testing?⚙️

I think that this is the most asked question on the subject so let me make this simple: No, automation testing will never fully replace manual testing.

Yes, automation testing is a step forward in the software testing business, and automated tests improve the efficiency of manual tests. Still, nothing can replace the human side of the testing process, which handles the more complex part of testing and allows for ad-hoc testing.

Conclusion 🧠

There are QA testing elements that continue to be best handled by human engineers and manual testing, as we have tried to cover in this post. No one can deny the benefits of automation testing over manual testing, especially when saving time and improving test accuracy. But currently, it’s simply not possible to have a robust QA process by relying solely on automation.

The right mix between automation and manual tests is essential for a successful QA team. Neither of the two can replace the other entirely. Manual testing helps us understand the big picture and explore the different angles of tests with flexibility.

There’s no one size fits all solution. Balancing Manual and Automated testing depends on your project, vision, and QA team. That’s why it’s important to work with testers that understand your goals and the results you are aiming for, and that’s what Wolfpack Digital strives to be for all our partners.

Of course, in the app development industry, projects speak louder than words, so check out our work and see for yourself!

 

 

QA
manual-testing
automated-testing

tech insights & news

blog

Stay up to date with the tech solutions we build for startups, scale-ups and companies around the world. Read tech trends and news about what we do besides building apps.