How to use Test Automation successfully in Agile?
Many times organization/people tend to use Test Automation, but they stop using it as it does not give the benefits as expected.
So does it mean that Test Automation is useless?
Well any practice, especially followed in Software Industry, must be followed properly so that it can really be a "good" practice.
Before going to discuss how to make it successful, will like to bust some myths/misconceptions around Test Automation, which will also be helpful to make it successful:
1. We can use Test Automation successfully in the existing setup and culture of the organization.
- This is a big "no-no". Test Automation can never be successful if it's not given proper supportive environment. It is like expecting a plant to grow properly without providing it required things like water,fertiliser,sunlight,etc properly.
2. Once we have setup proper and working Test Automation, the task is done. Now we only have to keep using it without any worries.
- As the software changes or the test environment changes (for example, New version of browser/machine os/mobile os arrives), there is high probability that some changes/maintenance will be required.
3. The only persons responsible for Test Automation are QAs.
- Even though QAs play the major or primary role for Test Automation, some effort is required from other team members and management as well for the Test Automation, will discuss in a while in detail how and what is required.
Now let's discuss how to do test automation successfully. I will try to convey how to achieve this by discussing what role a person(s) have to play.
1. Management
- Since being the most powerful and being the decision-makers, people at management level have a very crucial role to play.
- As per the need of the organization, they have to setup the overall policies and strategies for Test Automation and also the ones which support Test Automation.
- They need to decide tools, resources working on Test Automation, etc.
- Apart from that they would have to clearly understand and define the role each person (QA and Non-QA) has to play for successful Test Automation. They have to decide whether they will have existing resources do this, or will hire new ones to do this.
- They have to understand that 100% Automation should not be the goal, but having reliable, robust and scalable automation of the required things should be the goal.
- They need to understand that like every other Software project, it will require ample amount of time and dedicated and regular efforts. If they will consider that a person will do if and when they do not have other tasks, then there are very high chances it will fail.
- Most of the times, Test Automation fails in organizations due to lack of understanding and accepting the above point.
- In the words of Angie Jones, "Make no mistake, test automation is a software development project in and of itself. It takes a considerable amount of time and skill to do it. If you treat it as a side task that people only contribute to whenever they have time, it will fail."
2. Product Owner/Business Analyst
- They can help in identifying the use cases for which Test Automation will be most helpful from business perspective.
- So the team can put their effort on only Automating the Useful Test Cases and that also in a prioritised manner.
3. Developers
- Developers should do Unit Testing of the code they are developing. Management comes into picture here once again, they should provide ample time to do both development and unit testing and should have the policies to ensure that unit testing is not missed out.
- Apart from that, if required, they can also help and guide the QAs for best coding practices which they can use while doing Test Automation and do code reviews of Test Automation code, etc.
4. DevOps
- Persons managing DevOps can help to guide the team for making their deliverable(s) CI/CD friendly and creating the end-to-end automation solutions.
Note : In many organizations, there are no dedicated persons for this or they have very limited things to do. Each person(Dev/QA) themselves have to manage the DevOps portion of their deliverable.
5. QAs/Testers
- You should try to emphasize and put more efforts in API Test Automation and only do the Minimum/Required UI Test Automation if possible.
- Try to add and cover another aspect of Test Automation, which is Visual Automation, if you have the bandwidth to do so.
- If you are doing Performance or Security Testing as well, try to automate it as well by choosing proper tools and having those test into CI/CD pipeline as well if required.
- If you are already aware with Test Automation, I have nothing more to say except to follow best practices and make the Test Automation solution reliable, scalable and independent of data/environment as much as possible.
- If you are unaware or new to Test Automation, you also have to make sure/learn about the above points sooner or later. But as of now, don't consider Test Automation as something which can't be learnt or complex thing, just have patience and give regular and dedicated efforts to learn it. Once you have learnt it just do your best like you are doing in other types of testing.
In my knowledge, if an organization and it's people understands and implements above points well, there's nothing that can stop them from having successful and really beneficial Test Automation.
Feel free to Like, Comment, Share this article and also to provide your views and/or feedback regarding this topic as well as the article.
References Used:
Software Testing enthusiastic | Blogger | softwaretestingportal.com
5 年Good one Faiz
Consultant @ Microsoft | Enabler @ The Test Chat Community | Thoughts/Views shared are my own and shared in personal capacity only
5 年Angie Jones and Elisabeth Hocke Thanks a lot for giving the required knowledge and inspiration for this article with your amazing courses at #TAU!
Test Engineer
5 年Very good article with useful tips on Test Automation ????
Sr Quality Engineer
5 年Your article is very helpful sir, thank you for sharing this.