Monday, April 4, 2016

Getting started or better, where to start?

After taking the decision to "turn techy", as it is called by my Indian colleagues,  the next challenge is right there in my face. Great, I will be picking up Selenium and become a world class Test Automation Specialist in no time! It can't be that hard, right? It is probably down right easy!

This was of course my first mistake, there is no way a high demand and matching low supply of a skill if it is easy to pick up. Let me also say that it is not so very hard, it is absolutely not easy either. Rather, I would say it is a lot and it is complex. Over the last few months, I have been gathering little crumbs of knowledge here and there to be able to do what I wanted to do. There does not really seem to be a single source covering Test Automation, but the puzzle pieces are all over the place. Even my journey is highly customized to my needs and wants, your puzzle might look very different.

"So let's get started with Selenium!" I told myself and went to visit the Selenium Website. One amusing little fact I found is that Selenium was names as such because the writers wanted to get rid of the Mercury (now HP) test automation toolset and the antidote to Mercury poisoning is Selenium...

It turns out Selenium is a suite, a collection of applications and each has a different approach and purpose. It also seems that not all bits and pieces of Selenium are equally up to date, but that is to be expected.

Currently there are four components or projects to Selenium:
  • Selenium Webdriver, a library (binding) for a couple of popular programming languages
  • Selenium IDE, a Firefox plugin allowing for record and playback testing
  • Selenium Grid and Selenium Remote Control
Grid and RC are basically merged into the Selenium Stand Alone Server, this is a setup that will allow you to have a server control all test execution. This can be useful for centralized test setups in Continuous Delivery environments.

Of course, I will have none of that and will pick the easiest option first, Selenium IDE. After installation into Firefox, I went to google.com and recorded some little search test. Click here, type this, click there. It worked pretty well until I wanted to have a bit more logic and consistency. Re-use of code and maybe import or export some files and reports. It turns out that all this is not very possible with Selenium IDE, which was pretty much a bummer, I can tell you.

For help, I called a friend of mine who is an experienced programmer for about 2 decades now and I remembered that he gave me some demo of Selenium a few years ago. We discussed the things I wanted to do with test automation and what I could not find as a feature in Selenium IDE. So he told me what I feared, that Selenium IDE simply does not have that functionality and neither does the Selenium Webdriver library. However, Java does (and Python and C#) and by using Selenium bindings into that language, I would use Selenium as the component that would be talking to the browser and the programming language itself to take care of the surrounding logic.

To be honest, this sounded like work. And I rather minimize the amount of work I do, it is a general outlook in life.
So I did the most logical thing: more research! How exactly would one go about in a technical oriented testing role, what skills, tools, languages, setup is needed to be able to confidently say to a hiring manager "I can solve your test automation woes." And not just that, how would I hone those skills? How to build some experience?

The complete list and the project picked in the next post!

No comments:

Post a Comment