Automated testing requires a higher initial investment but the reason why (if done right) the risk pays off, is because automation can lead to a higher return on investment- which is something that everyone is after. Besides the initial investment automating also requires training or skill in order to engineer the tests and codes. Being aware of these things and choosing the proper time to invest in automating can lead to success.
Deciding When to Automate Testing
Do not waste your time automating a test that won’t be worth your effort. This aspect is an important one, and as a tester it is an imperative skill to be able to determine this when writing your own tests. This means determining what tests are worth automating based on return on investment from your automating costs. Figuring this out will be covered in complete detail in this article with specific criteria a test should meet in order to be automated, along with specific criteria a test should meet that determines it shouldn’t be automated.
When Should You Automate?
Short answer – anytime you can! However, it is impossible to automate all testing, so it is important to determine what test cases are deemed worthy. To get the most amount of benefit out of your automation efforts start by automating the following:
Repetitive tests that run for multiple builds: When you are investing time in writing automated tests then you are losing time you could be using to find bugs manually. That lost time would pay off over time if your tests continue to be valid for an appropriate amount of time for it to be worth your while to automate.
Tests that require multiple data sets: For data driven testing it is beneficial to automate the process of testing applications where the same function must be tested and validated with large amounts of data inputs.
Tests that tend to have human error: This one is obvious, there are quite a few things that computers are just better at compared to humans. Humans make mistakes- while computers nearly do not. A simple spelling error or slip of a finger while typing will cause your script to be unrecognizable and unreadable. By typing in a phone number wrong by just one number, it becomes useless. This is when the monotonous detail should be left to automation where human error won’t cause you problems.
Tests that are impossible to perform manually: This means load and performance testing, which has no manual-testing alternative.
Regression Testing: For tests that pre-exist and call for retesting once new versions come out automation becomes very useful. Considering that the only time an application isn’t going to need regression testing is when it is a brand new app this means that the majority of apps use regression testing.
Tests that take a lot of effort and time to perform: There could be a simple test that would be extremely monotonous for a tester, causing grief for the user. Imagine having to test opening up 500 documents in order to check that the application doesn’t crash… Automation can take care of that task for you.
When NOT to Automate:
As we believe, it’s nearly always a good time to implement automation, but for those few times when it may not be the right time it always has to do with determining if the application is worth your effort. Here are things you should consider before automating:
Is the application at the end of its lifecycle and about to be discarded?
Are the manual tests are extremely simple? For example, if all it takes to run the test is to reload the browser then the cost of automation wouldn’t be worth it.
Is the code is already extremely simple and easy to follow? If it’s so simple then there should already be very few opportunities for bugs, and automation could be an unnecessary use of time.
Does the functionality of the software see a lot of changes and experiments? Is so, then it might not be worth it to have to continually change the automation code as the functionality changes.
Finally, there is one thing to consider that simply has to do with what a human can do that a computer cannot- Does the test require determining emotion? When doing a manual test you could easily recognize if the user interface is simple and easy to use, or if the webpage is aesthetically pleasing and has nice visuals. These types of things leave the user feeling happy with the product/site and that is something a computer wouldn’t be able to do. For instances like this one, it makes more sense to use human testing rather than automated testing.