April 20, 2015
Will automation kill the software tester?
Sound the alarm, software testers may soon be heading the way of the dinosaur!
At least, that’s what a quick search on the internet about the controversial topic of manual versus automated testing seem to suggest.
But how real is this threat to testers’ livelihood? Going by what’s out there, when the automation meteorite finally crashes, it will send us all back to oblivion and replace the buzz of the testing department with the quiet hum of a machine.
In this blog post I ask: Are testers about to go extinct, or could this be an opportunity to evolve?
More than a fighting chance
To answer the question I posed myself, I need first to attack a couple of fallacies that underpin some of the arguments that are made online, chief of which is that software testing can be regarded as single, homogenous activity.
In reality, testing can be split into many different types, each of which allows the possibility of a certain degree of automation to be applied. However, as we shall see, the balance between automated and manual testing can always be shifted one way or another, but no method can completely exist without the other.
Manual vs automated: Pros and cons
Manual testing
Pros | Cons |
Can be more affordable in the short-term. | Very time consuming and tedious. |
More flexible. | Uses large amount of resources. |
More capable of finding real user issues. | Human error can be a significant challenge. |
Allows for random insights and observations. |
Automated testing
Pros | Cons |
Extremely fast. | Tools can be expensive. |
Conserves resources. | Time can still be a problem if scripts take a long while to execute. |
More reliable. | Automated tools cannot pass subjective judgement on things like the effect of language, colour and images or user experience. |
Can be programmed to handle complex tests. | High maintenance costs |
Makes test happen earlier, which leads to earlier detection of bugs | Makes development take more time |
When to use manual and automated testing
Manual testing is best suited to the following testing types:
- In many situations where a company buys their systems from external suppliers. In this situation the testing is quite far away from development. It is expensive to automate acceptance testing and bugs are found very late.
- In maintenance of systems that have been in production for some time. Most of the bugs are already found, so the cost of automation is higher than the value that can be achieved.
- Exploratory Testing: Where the test is purposely left ambiguous and depends heavily on the combination of both logical and intuitive skills which only a human tester can truly provide.
- Usability Testing: Testing for user-friendly requires human testers to empathise with what the actual users will experience when using the software. Clearly, this is a task no machine can perform.
On the other hand, automated testing is the preferred choice in the following types of testing:
- Low-level testing, aka component or unit testing. When using modern development tools, this kind of testing is typically built-in into the development tools.
- Regression Testing: Automated testing makes it easier to the deal with code that changes frequently and ensuring that you avoid ‘runaway’ regression.
- Performance Testing: Automation is particularly useful here when you want to simulate the behaviour of many concurrent users and measure response time or the number of transactions which the system can handle optimally.
- Load Testing: Automated testing allows testers to complete load testing more efficiently than using manual method.
Take care of bug reports with automation
If you use test automation combined with you manual testing, you can connect the automation tool with your test management tool. For example using Selenium, you can make Selenium create bug reports in ReQtest and include screenshots as well if applicable. You do this by using our free API, called ReQtest Connect .
In summary
Testing automation is a remarkable achievement in our field and it can save huge amounts of time, money and human effort, allowing organisations to shift these resources to other mission-critical aspects of their activities which would benefit more from manual oversight.
It’s good to remind oneself, however, that automation is just only one method of certifying software and that it cannot be easily applied to certain types of testing activities which depend on subjective judgement as much as objective measurement.
Despite all the hype, human testers will always be required to manually enter the parameters into an automated script, maintain it over time and, in some cases, interpret and act upon the results it produces.
So testers the world over: you can sleep easy tonight because tomorrow will bring another bright day in our profession. With one foot in manual testing and another in automation, we’ve never had it better!
It’s time for you to weigh in. What do you think about the ongoing debate about manual vs automated testing and how the two method can be applied to different testing types? Leave your thoughts in the comments below.
Share article