Written by Suja Chinnaswamy, Automation Test Analyst
Q: Why do we automate testing?
A: You might think this is a silly question with an obvious answer….to save time — but there’s actually more to it than that.
With the proliferation of the agile delivery methodology in the software industry, we have been focussed on trying to solve problems which get in the way of delivering high quality software within a limited timescale.
So how does this affect testing? Testers are expected to check all new functionality developed and also ensure that the implementation has no other catastrophic impact. This can be a time consuming task when the right tools are not available. Automated tests solve this problem directly by executing functional tests continuously and repetitively, triggered by changes in the code base, ensuring high quality and also reducing the verification time.
Deciding what to automate is a completely different ball game and comes with many “ifs” and “buts”, however I’ve outlined the main reasons for automating below:
This is the most common reason to automate and as discussed earlier, the fast-paced world we live in has made us impatient and we need to look at alternatives to achieve expected results.
Computers execute the same tasks, the same way, every time. They don’t get inspired to do something in a more elegant or efficient way, and they don’t get bored or inattentive. Automated tests makes it easier for testers to check functionalities and they can rely on the outcome of the process, since automated tests are predictable.
Gain speed, momentum and velocity
The amount of work delivered by a team each iteration is determined by its velocity. Having automated tests running successfully, decreases the probability of fatal failures and enables the team to concentrate on newly developed features.
Reduce boring/monotonous tasks
There are always a number of recurring tasks which no one likes to do but are crucial to test the product. These scenarios are worth automating since it reduces the tester’s burden to perform them and also helps them to focus on other tasks which are more important.
Increase return on investment
Automating tests may need an initial investment to set up, but once they have been set up the returns from the investment made is greater than the returns of manual testing.
For example, a manual tester may run the tests eight hours a day. Testing then stops for rest of the day. With automated tests, tests can be run 16 more hours a day (in the best case scenario, of course) for the same cost, reducing the average cost of testing hours.
Increase test coverage
Automated tests can run simultaneously on any number of browsers and on different configurations simultaneously. They can also simulate thousands of user accesses to the system. Hence performing different types of testing (cross browser, mobile, load and stress) simultaneously.
With the above key points in mind, determining what and when to automate needs to be decided based on the nature of the system under test. It takes expertise and experience to determine areas which need to be automated, and how. It is also important to remember that automated tests cannot and will not replace manual testing efforts. Though there will be automated tests running, manual testing efforts will still be required to verify certain functionalities. These will need to work hand-in-hand to deliver quality software.