Bugs and performance issues cost software owners’ reputation, users, and profit. So to test or not to test isn't a question at all. It's rather 'how to choose the right approach to testing'?
In this article, we’re comparing two approaches – manual vs. automation testing. Uncovering their benefits, drawbacks, and figuring out when to go for automation testing and when manual checks are just enough.
And, finally, deciding on how cost-effective this is – to write code to check code.
What is Manual Testing and Automation Testing?
But first, let's find out what manual and automation testing approaches stand for. Starting from the manual testing.
What is Manual Testing?
Manual tests are done by hand: quality assurance team checks how the software works by following conditions written in test cases.
If you’re picking this type of QA testing services, you’re paying for the time engineers spend on running checks. This works great on a short-time perspective: if the team needs to make a few simple checks, manual testing is a fast, accurate, and cost-effective solution.
Besides, even if there’s a need of automation testing, full automation is simply impossible. You can't skip the manual testing stage. What’s more, QA engineers have to test the software manually to make sure automated testing is possible.
What is manual software testing applicable for?
- Adhoc testing
- Exploratory testing
- Usability testing
Here’s an example of a usability check. QA engineer clearly sees that, for instance, the contrast between a button and the background in an app is too light. So it will be hard for users to see the button and figure out what it’s used for.
Automated testing wouldn't find any issues here at all.
There will be no issues if you choose first-rate UI/UX design services. Our experienced team of designers at your disposal!
Finally, the QA team’s feedback is closer to what you’ll hear from customers. Which is really helpful if you’re aiming at user-friendliness and better customer experience.
What is QA manual testing and how it works
What is QA Automation?
This far, we know that manual testing can’t be fully skipped. But if not, why we should consider QA automation? And what is software test automation all about?
Some checks are impossible or too complex to make manually. They mostly include load testing, but there also are processes like image comparison, simultaneous testing of several parts of the product from different devices, and so on. All these tasks become much easier with automated scripts.
What QA automation testing is used for?
- checking the UI, especially if lots of platforms or devices are supported
- for the main testing flows
- rarely changing cases
There's little use of creating autotest for features that constantly change. Or functionality that may be potentially updated (like business logic) as with the change of the functionality, there’s a need to change the tests.
Thus, we can name what test automation works for:
- GUI, API tests
- Unit tests
- Integration tests
- Smoke tests
- Regression testing
- Acceptance testing
- Load and performance testing
What are the limitations of automated testing? Only stable functionality, which was tested manually and approved by the product owner, is worth automating. Simply put, if you know that this part of the software won't be changed soon, go for QA automation.
As our experience shows, manual regression testing takes about 10h hours per platform, if we're talking about small-size products with simple functionality. But when it comes to large-scale ones, testing may take up to a week per one platform.
To reduce the time spent on regression testing, we apply autotests.
What is automation testing in QA?
Pros and Cons of Manual and Automated Testing
Today, QA engineers have testing frameworks that support almost all existing languages. Why they still do manual checks?
Cause there are lots of advantages of manual testing over automation! But the automated approach offers benefits too.
In the next sections, we’re taking a detailed look at pros and cons of both manual and automated testing.
Time to check them all out.
Advantages of Manual Testing
So, what pros come along with manual testing approach? And why it can't be fully skipped on a project of any scale?
1. Speed and flexibility
Let’s imagine you need to check one small change in the app. Wouldn’t it be faster and cheaper to test it manually on the fly? With no expenses on automation tools and processes.
Here’s another case: developers often get feedback from customers during the development process. What if clients don’t like how a feature works and want to change it before the release?
If you had software tests written, you'd have to rewrite them. But the time you’ll spend on updating the cases and autotests can be taken to update the feature.
This benefit of manual testing is especially true for mobile app development. Most apps are built in short sprints, and developers add new features on the fast track. And manual testing allows testers to give feedback as fast as possible.
2. Human feedback
Among the advantages of manual testing is that you’re getting the exact kind of feedback you'll hear from real users. If you can predict what they will or won't like in UI design (like a computer cannot), you can always make it better.
Automated testing won't let you check whether the new app's features are easy-to-use. Only QA engineers can do that.
In manual tests, you improvise, create new, crazy combinations of actions. They may or may not occur to app's users, but leave place for accidents.
New cases show up while testers ask themselves 'what-if' questions. That's how they find new ways of interacting with the app even when basic scenarios are missing them.
3. Visual feedback
When QA engineers interact with software as users would, they'll quickly notice usability issues and UI glitches. Autotests can only tell whether the UI is working as expected.
Scripts won’t pick up any visual issues nor provide feedback about how UI feels like. Or how it affects user experience.
But a qualified QA engineer can, and their comments will be the closest to the actual opinion of users.
Benefits of manual testing
Drawbacks of Manual Testing
Sounds good, but what are the cons? Does manual testing show one hundred percent accurate results? How cost-efficient is it on large-scale projects?
We got it covered too!
1. Number of errors
The biggest manual testing con is the human factor. As manual testing fully depends on the engineers that perform it, there’s a higher chance of errors. After all, testing results can only be as good as the testers are.
Plan to find a reliable software development company? Find out what it takes to choose a trustworthy tech vendor.
Let’s face it: with manual inspection, there's always a possibility QA specialists missed out some bugs. Any QA engineer may get lost in the process and skip a potential bug for a variety of reasons – from the lack of experience to family troubles.
2. Time-consuming process
You can set automated tests and leave them running in the background. Manual testing doesn't work this way.
QA team needs lots of time and resources to make sure the software is bug-free and has no performance issues.
Besides, QA engineers can't reuse manual tests. Which means with every new update in the product, the team has to start all over again. And make sure new changes won’t break the build (regression testing) even if they are minor.
3. Testing limitations
Some tests are hard to simulate manually, like stress testing. That's when the QA team tests an app under a heavy load to find its breaking points.
Mainly, stress testing requires hundreds or thousands of requests done in a short time frame.
For manual stress testing, you'd have to monitor a bunch of users connecting to the app at the same moment. For a single testing engineer, it's simply not possible to recreate this type of behavior manually.
Cons and limitations of manual testing process
Benefits of Automation Testing
When manual testing doesn't fit in, the automation approach comes to the rescue — time to check what advantages automated testing brings, and how testers benefit from it.
1. Test automation means cost savings
First, it's about finding bugs quickly. Here's a thing: the sooner you find the issue, the faster you fix it.
Among the main benefits of test automation over manual testing is that the latter allows developers to start checking code as soon as it's compiled. This way, engineers find and fix issues faster, cathing most of the issues at the Unit/API layers, long before the project moves into production.
Second, it's reducing the average cost of testing hours.
A QA engineer does manual checks for up to 8 hours per day. But a test automation specialists will spend twice less time on writing scripts. And then they leave the scripts running for the rest of the day, switching to other tasks.
Sure, it’s all individual and should be calculated according to project requirements, complexity, and so on. Besides, we should take into account the time needed for re-writing scripts and maintaining them.
2. Better coverage, accuracy, and resource allocation
With the product expansion, developers add new features on top of the existing functionality. That means more code and more work for the quality assurance team. Now they need to make sure that are no bugs in the new features that can break the software – this is the regression testing I’ve mentioned.
For large-scale projects, there are two ways out: leave some parts untested (and bear all the risks) or automate the process.
The importance of automation testing is that the QA team can launch many scripts and leave them running during off-work hours. Or while QA engineer is checking the part of the software not covered by autotests. These scripts go through the same steps as many times as needed; they don't get bored or tired.
In turn, the quality assurance team has enough time for in-depth manual testing, more challenging, and rewarding tasks.
3. Faster delivery
As the project grows, so does time needed for its testing.
As mentioned, in some cases, manual regression testing and eliminating bugs take up to 5 days per platform. Benefits of automation testing are obvious here: autotests reduce the number of days to a few.
Never worked with an outsourcing team? Check our 'In-House vs. Outsourcing Software Development' comparison to find out why the latter rocks.
This is crucial for any startup: the latter they launch a product, the more marking opportunities will slip through fingers. So while a company spends weeks on testing the software, their competitors might have already released a similar product.
4. Easier reporting
With moving to automated testing tools, you move to a fully new level of reporting.
Tools like Allure, UFT, Tricentis Tosca make full reports that show the results from all the tests processes in a single run. Any member of the QA team can check and identify the cause of an issue. There won't be any need to contact the test's creator. Which gives the quality assurance team a real-time picture of the app's stability.
Detailed reporting is one of the main benefits of automation testing
For example, if testers wrote scripts to check software on Google Chrome, they might be able to adapt them to other browsers. With very little time and effort.
The advantages of automation testing
Drawbacks of Automation Testing
Pros don’t come without cons, and automation testing has a few. Let’s take a closer look at them – and find out why QA teams don't automate everything at once.
1. Lack of human expertise
No autotest will give an unprejudiced mark on an app's UX or plan. It'll just check parts of the app against the parameters you set. To make sure your app has a decent look and feels right, you need to ask a QA engineer to check it out.
As I’ve said, autotests can't be applied everywhere – some tests can't be automated. Like app usability checks, layout verification, installation testing, and similar processes.
It may seem weird, but most bugs are found by accident or during exploratory testing. Probably because in each testing session, we check the app in different ways.
Automated testing always goes the set path, sometimes with the same sets of test data. This lowers the chance of finding new defects or bugs.
3. Expensive for small projects
Among the drawbacks of automation testing is its cost. To calculate the exact sum, development teams must consider three cost areas:
- test writing
- environment maintenance
- test maintenance
The final one – test maintenance cost – often gets skipped. But in the long run, test automation needs lots of resources to keep its efficiency.
Autotests require tech experts to watch over them and the environments in which these test run. And test automation experts are highly sought-after and well-paid. That’s why hiring a team to keep autotest running will cost you some.
When it comes to the cost, the European outsourcing market stays on top. In our 'IT outsourcing in Europe' guide we’re explaining why.
Experienced companies that provide software development services start the automation process only after calculating test automation ROI.
The main drawbacks of automation testing
Manual vs. Automation Testing: Full Comparison
More as human resources perform it
Less as software tools execute the tests
Depends on deployed human resources
Depends on the testing tools
Postman, Charlesproxy, Android studio, Swagger
Python, pytest, requests / Selenium web driver / Locust or Apache Jmeter
Exploratory, Usability, Adhoc testing
Regression testing, Performance testing, Load testing
In X hours
In X minutes
Prone to human errors
Higher accuracy due to computer-based testing
Ensures a high-end UX
Doesn't guarantee a good UX as machine lacks human observation
Bug reports, Improvements reports, Jira tasks
Alure reporting / Junit reports
So, which works better – automated or manual testing? They’re both great.
You can't pick manual or automation testing and turn down the other option. Automating all tests is unprofitable. AIOps have not reached the desired level yet, so manual testing will stay in demand.
The best idea for project managers is to find the exact balance between these two approaches. Figure out when there are more advantages of automation testing over manual testing (or vice versa) and implement the best-fitting testing approach.
Which approach works for you?
We’ll create a unique testing strategy according to your project requirements.
Manual testing is done by the QA team, by hand. Engineers manually test how the software works by following conditions written in test cases.
If the QA team decides to use automated testing that means they have to write test scripts and execute them.
Manual testing is done by hand (goes slower), automation – by executing test scripts (goes fast).
They’re both great. The main idea is combining these two approaches when needed and not sticking to one.
Manual testing works best for Exploratory, Usability, and Adhoc testing.
Automated testing – for checking the UI, the main testing flows, and rarely-changing cases.
Not likely. Automated testing has limitations – like lack of human expertise when testing UX app design, short-sightedness, and the cost (especially for small projects).
That's why experienced QA teams prefer to combine these two, or even skip automated testing on small projects.
Evgeniy Altynpara is a CTO and member of the Forbes Councils’ community of tech professionals. He is an expert in software development and technological entrepreneurship and has 10+years of experience in digital transformation consulting in Healthcare, FinTech, Supply Chain and Logistics
Give us your impressions about this article
Give us your impressions about this article