In this article , we will talk about the impact automating of testing can have and why you would want to use test automation. This will result in freeing up your testing time for other areas such as exploratory testing or performance tests.
Where automation gives the best ROI –
- Smoke testing : The goal of smoke testing is to ensure the basic functionalities of the product are working well in the build provided. Once implemented, these tests can be run on each commit/push on both developer environments and in CI (Continuous Integration).
- Regression testing : Regression tests includes more detailed functionalities of the system. They are run in order to ensure that the fixes made are not breaking current functionalities right before the product is pushed into production. These take more time to be run compared to smoke tests but also help in a wider code coverage. These are usually run in a periodic job within CI and help give fast feedback if a breaking change has been committed.
- API/Contract testing : APIs are consumed by front end applications such as Mobile & Web Apps. If the architecture of your system involves microservices or any third party system which it interacts with by API, then automating this part is important. It helps in revealing an issue which may be caused when two services interact with each other and helps in covering the bigger picture. Since the response that is expected is already known , automating this test would compliment any UI testing done manually. Additionally, it can also be used by the frontend developers in order to test their code against the expected response from the backend.
While automating the above tests will definitely compliment manual testing and improve product quality, it can help the quality of testing in the following ways –
- More time – More bugs : The more tests/checks which are automated for testers, the more time they get to explore the system and break it in new/different ways. Before you can automate a feature you need to understand the tests, this requires manual testing. The more you test a feature, the more workflows you discover and this helps a tester break the system beyond automated “checks”.
- Reusable : Automated tests can not only be used on a new build but can also be reused on the existing build at any stage of the software lifecycle. This can be extremely beneficial to projects where there is not much new development been done but quality needs to be maintained or in an agile project where there are multiple fixes been made and the same functionality needs to be retested.
- Fewer human errors : The risk with manual testing is mainly human errors. Humans tend to forget/make human error,, machines don’t. If coded well, automated “checks” can be invaluable as a quality indicator for your product.
While many may debate on the pros and cons of relying on automated tests, well written automated “checks” can expedite the development process giving you confidence in your product.
Paired with CI/CD tools and readable reports they can provide great visibility to the developers as well as the business stakeholders hence providing positive value a to the overall business. Once you have built an automated suite, you can deploy/run it on all your environments as well as development machines to get faster feedback, helping avoid broken deployments & speeding up the development process.