What kinds of tests can be automated?
- Unit tests / Component Tests – usually implemented by the developers on the code that they have implemented.
- Functional tests / Business rules – usually implemented by test automation engineers as a way of reducing repetitive manual work.
- Workflow tests (regression tests, black-box tests, integration tests, data-driven tests, smoke tests) – done manually most of the time, but with a huge return on investment if the needed resources are invested into automating these tests.
As the testing pyramid above defined by Mike Cohn (one of the contributors to the invention of the Scrum software development methodology) shows, having automated tests on all the levels is essential for having a reliable product.
Here are some of the advantages of test automation.
Reduces time and saves money
Yes, I know what you are going to say – you have to invest a lot in the beginning in setting everything up, getting technically skilled people for the job and so many other things. But, even though the initial investment may seem bigger, overall, the time needed for testing is much shorter if you have automated as many tests as possible.
A continuous integration pipeline that contains automated tests is essential in having a reliable product. The automated tests configured like this can be run whenever needed; therefore, the reliability of the product is strengthened. Having automated tests that cover most of the basic testing flows leaves more time for the test engineers to perform exploratory testing.
Automation can do what manual testing cannot
Once implemented, the automated tests run much faster than manual tests. Also, you can test scenarios that are impossible to verify manually (e.g. load testing – simulating thousands of users).
Surely, you cannot entirely exclude the human from the testing process, but even if the tester is the best in the world, he is still a human and can make mistakes. Automated tests that are implemented correctly with a clean and easily maintainable code are a way better solution than doing manual testing.
Having a test automation suite implemented correctly that is run every day or on an ad hoc basis gives you feedback in a short period of time – just a few minutes.
Increases team morale
A well-implemented test automation suite can be a major boost in team morale. Having quick feedback from the automated tests is always desirable. Being able to catch bugs as soon as possible in the development process can also improve team morale. Also, the overall improvement of the product with automated tests is a big factor in team morale.
As a consequence of the advantage above, having good team morale leads to increased productivity.
Implementing a test automation solution containing automated tests at all levels of testing is the way to go in order to have a reliable product and increase your revenue.