Why Bother with Automated Testing?
Automated testing is trendy and in high-demand, but is it cost efficient? Can you actually cut costs by using automated testing tools instead of paying for manual work? What is the future of automated testing? We try our best to answer the question of whether the results are worth the initial effort (TL;DR — Yes).
A manual tester works 8 hours and goes home. Automated testing works all the time.
But does it actually work?
We are not going to say that automated testing is or should be your number-one option. It doesn’t work for each project, and anyone telling you otherwise is simply wrong. Human intuition is often everything since there are complex user scenarios to evaluate and predict.
Let’s cross these intuitive types of testing of our list right away, before we get started with building a strategy and assembling a team.
AUTOMATED TESTING DOESN’T WORK FOR
Interface evaluation
Robots are great, but there is a long way to go before algorithms reach the level of understanding high enough to determine whether something looks ‘pretty’. Same goes for things like haptic feedback or sounds.
Strategic Development and User Patterns
When we create software for humans, it’s only humans who can determine user behavior. How to predict what button a user will press? Will they find it in the first place? Algorithms might be smart, but they lack intuition. Humans know humans best.
Testing complex scenarios
It’s not that it’s impossible to write an automated test for complex user scenario, but even if you could, you really shouldn’t. Teaching human logic in a complex action to a machine is a long and tiresome process. AI and machine learning isn’t quite there yet.
Robots are no humans, and often it is a disadvantage. Not all the time though. Algorithms don’t stress out, never get bored, or lose focus. If a test case requires a number of dull repetitive actions, wasting a perfectly good team of manual testers is unreasonable.
That said, let’s see where automated testing is not only helpful but absolutely necessary.
AUTOMATED TESTING WORKS FOR
Regression testing
You know that situation when only one piece of code is changed but the functionality stops working altogether? To avoid that ‘this-shouldn’t-have-happened’ situation, regression testing is performed. You verify that the system works fine after previously made edits, software patches, or setting changes. It’s repetitive work which can and should be done by machines, not humans.
Functional Testing
Here the testing team’s task is to evaluate whether every software function works. It’s a routine task, but a crucial one — every little operation needs to be performed, assessed and documented (sometimes multiple times).
GUI Functional Testing
It’s not about evaluating the attractiveness of the interface but only about its functionality. Algorithms will assess whether GUI objects work the way they were designed to.
Smoke testing
Smoke testing is a type of functional testing that verifies and assesses the most important system functionality. Test cases analyze main user scenarios that necessarily will be performed by actual users.
Every software is like a building. There are cornerstones which work as the foundation for the entire architecture. If these are broken, there is no point in moving on to smaller errors. That’s why smoke testing is the first to be done.
Load and performance testing
This is the stage where you prepare your project for success. If it gets popular, you better be sure the product will survive the traffic load. For that, the automated testing team writes tests to create an environment as if 10,000, 100,000, 1,000,000 people are using the service at the same time.
Let’s answer the most important question. Why automate? Couldn’t it all just be performed by a bunch of manual testers?
Just because it could be, doesn’t mean it should be. The golden rule of all tech progress ever achieved says: what could be automated, shouldn’t be done manually. That’s the reason we have technology in the first place. Why bore humans with dull repetitive actions if there are dozens of tools and frameworks to do the work for them?
Imagine yourself being a manual functional (for instance) tester. Every day, you have dozens of functions to run, assess, and fix what went wrong. Hundreds of bugs, 8 hours a day, every day. The same bugs. The same functions. At this point, I wouldn’t blame you if you started looking for the easiest path, the one requiring the least amount of effort on your part. I also wouldn’t blame you if, from time to time, things got missed. It’s a lot to stay on top day today, right?
Algorithms, luckily, do not get tired or bored. This is what makes them not just a tech-savvy innovation but a necessity.
Will automated testing replace manual testing?
Not fully but likely, in most testing fields, teams will switch to automation. When you work with technology on daily basis, automation is a logical thing to do. Also, the number of testing market and testing cases grows every year.
According to Statista.com, in 2019, the proportion of the budget allocated to quality assurance and testing as a percentage of IT spend will top 40%. Just for comparison, in 2012, it was only 18%.
To handle more projects at the same time, testers will switch to automation, cooperate with developers and create new algorithms to make them do manual work.
The article was originally published on QArea blog.