Best resources to learn test automation, keep up with trends in it?
Hi, I am in the process of learning test automation, Selenium + Java at the moment. It seems that still, the best way to learn it is some kind of apprenticeship. (But there is an issue that there you will not learn best practices, just this given person/company practices).
Most courses just skim topics, are not project focused, and do not talk about common problems and connected tools.
What was your approach to learn, do you have any sources to recommend? Is test automation your line of professional work?
My advice to learning test automation in this form is: don't
Look up the testing trophy, try to do everything using any tool but Selenium until you absolutely have to. You'll notice that you can come very far using integration tests, you'll also notice the tests are fast and reliable. Something selenium tests rarely are.
For frontend, look at testing-library or storybook with test runners.
Former is more lightweight but a hassle to debug, latter is heavier but much more visual and easy to maintain. Both are not flaky and fast and easy to run in a ci pipeline.
Run your tests as close as possible to the logic, you'll get the quickest feedback.
Once you're done with all this, make a happy flow E2E test or two. And I'd use typescript instead of Java. Then you have some hope of a frontend dev wanting to help you maintain it. And playwright instead of selenium, simply more modern and thought out
tests are fast and reliable. Something selenium tests rarely are
Yes, this has been my experience with Selenium so far. We actually have to set our tests to retry 3 times because of flaky Selenium issues causing failures
I just rewrote a test to bypass Selenium and use a different method to accomplish the same task and not only should it be more stable but the test ran in half the time
unfortunately all of our front end tests are very Selenium driven so rewriting them will probably be a lot of work, and of course I don’t have the luxury of being in possession of large amounts of free time