Test automation is a software testing technique where you run your test automatically as a part of the quality assurance process. Automated software testing increases the scope of testing by executing repeated and complex designed tests automatically and as a result, it reduces workload and helps to improve product quality. It is very important to maintain your automation project so that it does not lose its value over time and become a burden for the team. I am going to share a few lessons I have learned in my five years of test automation journey in bonial.
I have seen in some places it is considered that developers will write unit test cases and QA will write UI or functional test cases. From my experience, if the test automation project is treated like that, it is very difficult to keep it UpToDate and maintain it for a long time. Test automation should be part of the main build process and can be written by both developers and QA. So that the whole team can take care of the project and get benefitted.
Selecting incorrect tools or tools without proper training can lead to failure in your overall test automation project. Finding a tool that everybody feels comfortable which is very important. For developers to easily adapt and contribute as well as maintain the automation project, it is always better to use the same programming language as development. For example, if your resources are familiar with JavaScript and your application to be tested is also developed in JavaScript, it is more realistic to pick a tool with offers writing tests in JavaScript.
Once you have selected your automation tool, you should not just automate a random test case. You should pick some set of test cases that are most beneficial. There is a quote from the book “Lessons Learned in Software Testing”-
“Automating without good test design may result in a lot of activity, but little value.”
Remember a few things while building your first automated test suit
We should not compare manual tests to automated tests. Rather consider automated tests as something which will extend your reach, help you to do things that you would not do with manual testing, and decrease repeating manual work.
Automated tests only do what you have implemented and tell it to do exactly in the same order and same speed. Manual tests allow you to explore different aspects from little to big. Manual tests are still very important. Test automation in combination with exploratory testing combines the best of both worlds.
Quality = Manual + automated testing
The right approach is to make a list of repeatedly executed test cases and to ensure the return of investment (ROI) of automating them. A mix of testing strategies including different types of automated tests and a minimum number of manual exploratory testing results in the best product quality.
Another approach to avoid flakiness is to design your test differently. Sometimes tests are flaky because of the way it is designed. So planning the test differently might solve the problem.
To build a successful Test Automation project – in other words to get proper benefit of automated tests, proper planning as well as defining appropriate strategy for maintenance is very important. Everybody related to the Test automation project should be aware of the fact that selection of proper tools and techniques will make this journey smooth and easier.