We as QA Automation Engineers have lots of responsibilities, tasks and things to learn in our daily basis. We love solving problems, learning new cool stuff to apply to our projects, reporting bugs and off course automating everything. The job as a QA Automation Engineer is usually exciting and in many cases challenging.
Talking about challenges, there are some that I would like to point out.
There is still a gap between developers and the QA teams which we need to close. Usually, developers don't program taking in count automation needs, and it could be different. We should start thinking about working closer together. We could add more value to the projects by reporting issues earlier. Also, let developers know that, we could be that "safety net" for the programming processes, allowing them program with more confidence and less stress, just to mention one point.
I think there are many small "tweaks" that developers could add up to the various elements that help a lot the automating processes, such as, adding ids or unique names to the elements we need to automate. These minimum adjustments are nothing for developers and could have great impact on the automation.
With the products always changing and adding new features, test cases change all the time. If the application has many features, it could be translated into thousands of test cases which are tough to maintain. Therefore, we need to automate taking that in count. That means, making frameworks as flexible as possible, following best practices, allowing parallel testing, having a automation strategy, and so on...
Functional testing is great and that's usually the approach we take to assure quality, but we need to understand that not everything could be automated and not everything is functional testing.
On one side, we need to combine functional testing with sorts of testing. That's where other approaches such as visual testing could help us a lot, because it could make tests more reliable.
On the other side. Automation is not a replacement of manual testers. Automation should be used to take the repeated work away from manual testers, so that, they could use their full focus and strength in finding new testing scenarios and bugs.
Lastly, we should have an automation strategy...
Automation usually needs data. In many cases, that means creating entire projects or modules devoted for that purpose.
This projects have many advantages, for example, they could avoid using the UI to create data making many test cases less flaky, they shorten the test duration, and make the test cases go directly to their point.
Therefore, anytime we need any specific information we should create it under the hood, but in doing so we need to pay attention to adapt the test cases to avoid creating unnecessary data, because we could be filling the databases of the testing environments with garbage which is usually annoying for everybody (especially developers) and it could cause some additional problems.
Test automation is an interesting and rewarding career. It certainly has its challenges. I just mentioned four but there are many more.
We should start communicating better, close gaps between colleagues, maintain test cases, have automation strategies, take advantage of different testing approaches and adapt our tests to our needs. In doing so, we will have many benefits, not only for us (QA teams), but for the organizations we work for as well.
Let's keep learning, improving, testing and automation our projects!