How to choose your IDE for development or test automation

As an automation tester, we spend a lot of time playing around the code, debugging it and reusing it. It’s important to have a good IDE (integrated development environment) where you can save a lot of time while writing code for your automation script.

Although the criteria for selecting the IDE is common for every language. It also depends on the personal preferences, and the kind of requirement one have in their project. In this blog post , I will talk about how to choose your JAVA IDE for Selenium WebDriver test.  An IDE should have following capabilities

  • Little configuration
  • Flexible
  • In-built plugin and build deployment support
  • Smart enough in code completion (most important)
  • Powerful, smart debugging

I have recently started working on a new selenium java project.For me it was not that hard to choose as I had most of experience using Eclipse from my previous projects and no experience using Netbeans and IntelliJ at all. This time I have thought of doing  experiment by using some other IDE

I was a big fan of Eclipse until I figure out the capabilities of IntelliJ IDEA. I have used IntelliJ IDEA community edition and following are some awesome features I have identified which I didn’t notice in Eclipse-

  1. It provides auto-suggestions while reusing variables, keywords and out of box method highlighting
  2.  If you have used some code for which reference is not added, it will suggest you to find maven info and add that in to pom.xml
  3. There is no need to create work space, you can start using/building any project from anywhere
  4. It has in-built support for identifying the possible plugin which can easy user’s work and will suggest you to install that (e.g. if you are using feature file in code , it will suggest to use cucumber plugin automatically)
  5. It has inbuilt ANT, Maven and Gradle support, while creating a java project in IntelliJ it automatically create Gradle, Build.xml and Pom.xml files
  6. It provides inbuilt Git, SVN, TFS support without installing any additional plugin

In a nutshell, conclusion is –

  • Eclispe – Very flexible, not very smart in code completion
  • IntelliJ IDEA – flexible, powerful, best code completion, smart,user-friendly
  • NetBeans – user-friendly, good for JAVA Enterprise beans projects

Current Market trend

According to a recent report by SoftSys the most used IDE by Java developers is Eclipse, which is open source and free to use. The next one is IntelliJ followed by Netbeans. Thus, more often than not cost can be one of the factors, specially if there is not much difference in features between different IDEs. From the perspective of a beginner almost all the IDEs seem identical in terms of their feature set, however, I am sure there are many differences in the details of how those features are exposed and how convenient it is to use them. So, is it just a matter of preference that some people like Eclipse and others like IntelliJ-

java-web-and-application-development-services-8-638

According to a recent survey, when people directly asked about choosing the IDE, here is what there response was –

1a5d510

So it’s very clear that as Agile is the new SDLC where all part of software development are aggressively done, so its better to have a powerful and smart IDE for development and save our time. 🙂

How did you choose your current IDE? What are the features that matter when deciding on an IDE? How much would you be willing to pay for it? Do let me know of your thoughts in the comments discussion.

Happy coding 🙂

 

Advertisements

Selenium WebDriver : An ecosystem of browser standards

Yes!.. You read that right, Selenium WebDriver : An ecosystem of browser standards. We says that WebDriver is a tool which automates browser. But looking at its W3C standard being implemented by almost every browser vendor, It seems to me a Creator of  an ecosystem for browser standards. 

Just have a look at the evolution happening around WebDriver –

  1. Selenium 3.0 is soon going to be released with most of the W3C standard
  2. Apple has announced that Safari 10.0 would have official WebDriver support
  3. Microsoft now has official support for WebDriver with Edge browser
  4. Mozilla has released Marionette(an automation driver for Mozilla’s Gecko engine)
  5. WebDriver is not able to launch FF47.0 (but that’s not an issue with WebDriver, that is a Firefox issue 😀 )

All above facts clearly stats that all the browser vendors are focusing so much to implement W3C standard , so that doing cross-browser automation testing is no more a hectic task.

Now lets spot some light on all the points discussed above.

  • Selenium 3.0 – The details about selenium 3 can be found in my previous blog post – Way to Selenium 3.0
  • Apple’s Safari 10.0 release –  WebDriver is mentioned as one of the feature of Safari 10.0 on its official release page –Apple’s Safari 10.0. It says that  – Safari on OS X supports WebDriver, which lets you automate web-content testing. It provides a set of interfaces to manipulate DOM elements and control the browser’s behavior. You can enable Remote Automation in the Develop menu and then launch the server using /usr/bin/safaridriver
  • Microsoft’s Edge release – “The Microsoft Edge implementation of WebDriver supports both the W3C WebDriver specification and the JSON Wire Protocol for backwards compatibility with existing tests”. More details can be found at –Microsoft Edge WebDriver guide
  • Marionette driver by Mozilla – Marionette is an automation driver for Mozilla’s Gecko engine. It can remotely control either the UI or the internal JavaScript of a Gecko platform, such as Firefox. It can control both the chrome (i.e. menus and functions) or the content (the webpage loaded inside the browsing context), giving a high level of control and ability to replicate user actions. In addition to performing actions on the browser, Marionette can also read the properties and attributes of the DOM.
  • Recently one of my colleague had upgraded Firefox 46.0 to 47.0 and existing WebDriver scripts was breaking with error “Firefox 47 – Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms“. After a lot of debugging and going through the link – Issue With FF47.0, I got to know that this is some issue with FF 47.0 and fixed in FF 48.0 which is not yet released. I just felt proud that an automation tool is identifying issues in a Browser. 😀

WebDriver has actually created an ecosystem for all browser. And when this thing would be implemented in all browsers, cross browser testing would be just about changing the browser driver.

Looking forward to see all the browsers implementing this W3C standard and making our cross browser automation work so transparent, error free and simple 🙂