What is our primary use case?
Currently I am doing mobile application automation with Appium and Selenium, as well as front-end application automation with tools like WAVE for mobile and desktop applications. The only area that I'm not involved in at present is API testing, though I am hoping there will be opportunities to get to that as well in the future.
We typically use Selenium and Appium in automation and testing by first identifying which modules we are able to automate. Then, whenever we encounter some new course in the framework that we're using, and we need to use a hybrid kind of framework, we will use Selenium to resolve it.
How has it helped my organization?
Selenium has improved the way we work because if you do what we need to do manually, you'll have to expend a lot of time. For example, it would be a huge chore to navigate through an application manually every day, and particularly if there's a new build on the way, you would have to check all the regulations over again by hand. That would simply take too much time, and so what Selenium does for us is that in one resource it can handle the work of three, four resources, provided that the scripts are straightforward and coded properly. That's the main cool thing about Selenium, I would say.
What is most valuable?
For me, the most valuable feature of Selenium lies in its ability to help us find elements quickly. Apart from that, the driver interface is really useful, too. When we implement the Selenium driver interface, we can easily navigate through all of the pages and sections of an app, including performing things like clicking, putting through SendKeys, scrolling down, tagging, and all the other actions we need to test for in an application.
What needs improvement?
One drawback to Selenium is that there is nothing like an object repository, such as that found in QTP, especially considering continuous integration practices that have become common nowadays. In future, if they can provide an object repository or some kind of repository for data, then that I would greatly appreciate it. For example, once you have the app credentials and all the other security data and you don't want to show them to other people who are not authorized, a repository for this kind of data would be very useful. You could then simply grant access to only those people who need it.
Another improvement I can think of is in the area of documentation and support. With Selenium, we're using freeware software, and because of this there is no support or anything from the vendor. In this case, you have to rely solely on your own coding experience and exposure to the tool, and you often have to search through many pages of code when you want to change something in your implementation. It also makes you rely on your problem-solving skills to a large degree, because some problems are not that easy to solve by yourself.
If I can compare Selenium with another solution such as SoapUI Pro, there's a big difference when it comes to coding your own solutions. With SoapUI Pro, if you want to fetch some data, you don't need to write any code or anything, and for someone with no coding experience, this makes it much easier to be able to use effectively. So, ultimately, more support for non-technical people would make for a great improvement in Selenium.
For how long have I used the solution?
I have been using Selenium HQ for the last two to three years.
What do I think about the stability of the solution?
The stability of Selenium depends on the skill level of the team that is using it. If you are writing solid code for automating your scripts, then you will find that Selenium itself is a stable solution. But if you're writing sloppy code then you may find that Selenium slows down or becomes unstable. Truly, I think it all depends on the people who are using it, and how they approach the architecture of the framework.
What do I think about the scalability of the solution?
I am hopeful that Selenium will scale well because, along with others nowadays, we plan to to move into cloud-based provisioning with continuous integration. We will be doing that with AWS, most likely.
How are customer service and support?
I haven't taken any technical support till now because Selenium is freeware, and you will not be getting any technical support directly. So that could be something that they could work on because if they were able to provide support, it would great for us and many others. Without it, you can still add code to the Selenium software itself, but they won't be able to help you with it.
On the other hand, I do believe there is enough documentation online for anyone who wants to figure it out by themselves. There are videos, tutorials, and other resources available to us.
How was the initial setup?
The setup of Selenium is easy, in my experience, since it is provided as JAR files that you can download. Apart from that, there is, I believe, an architectural approach where you can simply input your dependencies and it will automatically download all the JAR files needed, and other required files.
As for deploying the code, this is just as easy. For example, if you're working with some type of continuous integration, it's a breeze to deploy. First, you have to build up your framework, and then you can deploy it to Git, or GitHub, or anywhere you want. At this point it's just about uploading the code, so there's not much to it.
What about the implementation team?
I am currently implementing Selenium along with a few other tools. For example, for mobile device automation, I'm using Selenium with Appium. The Selenium architecture can be integrated with Appium in order to be able to automate with mobile devices such as Android and iOS, which is what I'm doing now. Beyond that, we also have desktop applications; for Windows we have EXE files and for Mac we have DMG files. With these, I have implemented the Windows application drivers using Selenium so that we're able to easily automate any Windows-based or Mac-based app.
As for the rest of the team who are implementing Selenium this way, we have about 15 people on the testing side of things, and 6 people in automation.
What's my experience with pricing, setup cost, and licensing?
Selenium is free software so we do not pay licensing costs.
What other advice do I have?
My advice to others is that, first of all, you have to understand the process of automation from a general point of view, and how people get on with the coding and all that. If you only have manual experience, like a lot of new testers, then you likely don't have much experience in coding either. And in that case, my advice would be to first understand the logic of the process. For instance, before jumping into it from the deep end, try get a handle on a few small steps first, and as you go along you will learn the basic coding, the basic architecture, how Selenium works, how the automation process works, and so on.
Then, take a piece of code and ensure that it works as a standalone script, then finally jump into the framework. Develop from any framework, use it as best as possible, get some experience with it, and try to become an expert from there.
You can use any programming language you prefer. As for myself, I'm using Java, but you can use C#, Python, Ruby, PHP, etc. There's a lot of support for different programming languages with Selenium.
My biggest lessons while using Selenium have had to do with automation and how it really works, which is something I've always been interested in. Once I get an application, any application whether it be a WAVE app or mobile app, I very much enjoy getting stuck into the automation part of testing. And what I've learned is that not everything is that easy to automate.
In many cases, I have had to team up with new solutions and play around with code on my own, which has been a great learning experience for me. Apart from that, with Selenium I have been able to implement new things such as OCR (Optical Character Recognition) which is useful when you are not able to find all the elements you need, and I feel good that I was personally able to enhance the automation process with what I have learned along the way.
I would rate Selenium HQ an eight out of ten.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
I like your article because it is well written. I noticed you said your team uses Java. What is the advantage of using Java over JavaScript?