Chromedriver - Under The Hood

Selenium Webdriver has been our companion in our test automation adventures for some time now. Over the years the Selenium open source project has obtained something I can fairly describe as global domination. With Selenium, we are able to interact with different browsers using the WebDrivers. But, how much do we really know about them and the way they work?
In this article, we will take a closer look into "Chromedriver" and explore a little bit about how it works.

So, what is the role of this Webdriver?

Starting from the release of Selenium 2, we were introduced to the concept of Webdriver.
The "chromedriver" for example is a .exe file that is able to act as a server. His role is to allow us to "Interact" with the browsers.
Eventually, the responsibility for developing and maintaining these drivers was transferred to the browser vendors. The idea is, that they know their browsers the best and the produces driver would be much more stable and robust. In re…

API - Let's make it simple

So, explain to me, what is an API? 

(It's a question I like to ask in an interview once I hear that the candidate has worked with one in his previous role).
Quite surprisingly, not many people can clearly explain this concept in simple words, and I'm not surprised.
If we search for the definition of API online, this is what we will find:
"In computer programming, an application programming interface (API) is a set of subroutine definitions, communication protocols, and tools for building software. In general terms, it is a set of clearly defined methods of communication among various components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer."

Now, let's try to break down and better understand this concept.
We live in a world that thrives of connectivity. At the edge of our fingertips, (and on the other side of our screen) there is a whole world that allows us to shop, pos…

Who are you, Docker?

"Docker" is a big buzzword these days. Everybody wants to use it, everybody wants to learn about it. but who is this mysterious whale?

Let's start by defining what is Docker.  Docker is a tool that is designed to make it easier for us to perform virtualization tasks and to create deploy and run applications in a different way than we used to. With Docker, we can perform these tasks using Containers. (We will understand what that is in a bit).

Virtualization in a nut-shell. Virtualization is a process of creating something Virtual rather than actual. This process allows us to create instances of operating systems, applications and environments without having them physically present on our work station or a dedicated remote machine.
There are several very popular and well-known solutions for virtualization purposes such as KVM, VMbox, Vagrant, Ovirt, etc...

So what is the hype around Docker and how is it different from a standard VM? Well, Docker uses a different approach to…

How We Built a Quality-Driven Development from Scratch

“When I talk to my colleagues and tell them that we have a team of developers that are performing manual testing guided by a test-plan nobody believes me… ”Let me just start by saying that I’m very proud of our team and how far we have come. Since my arrival, we have tripled in size and have significantly improved our quality standards. When I Joined Testim, we were a small R&D team based in Israel. We had no QA department or defined testing process and had to implement it all from scratch. There are many challenges in trying to create a process where testing is integrated into our CI/CD workflows. For one, there is awareness. The process of assimilating the Idea that we have to test our produced features and acknowledging there are consequences if we don’t. We have a very talented and speed oriented Dev team.  But, it comes to a point when you have to stop and take a step back to really plan for the future. As we strive for continuous improvement, we have to periodically evaluate…

5 Ways to Fail With Your Test Automation

In theory, Test Automation tools are supposed to make things easier for testers, save time and provide us with an additional comfort blanket for our test coverage. And yet, so many organizations fail to implement a good, solid and scalable Test Automation infrastructure that could, in fact, save them time and return the invested resources. Some "Throw away" written Test-automation projects and others sustained in an on-going struggle with their goals to make a stable Automation suite.
Over the years I have seen many companies trying to implement their automation initiatives, I have seen written projects thrown away, frameworks switched and managers being fired because they failed to deliver what was promised or set as a goal.

There are many reasons for failure, and though automation makes perfect sense in the long run, we do need to realize that it is a lot more challenging as it seems.
Here are some of the things to be aware of before you jump ahead and start building your…

Automation - Devops Meetup summary 8-11-18

Automation - Devops Meetup summary 8-11-2018
Last Thursday, "Atid" college in collaboration with "Optimove" hosted an Amazing "When Test Automation meets Devops" Meetup.
The meetup started at 18:00 with some cold beer and welcome notes by Tomer Caspy - QA Director, Optimove.

Tomer Caspy - QA Director - "Optimove"

After that, Yoni Flenner went on stage and talked about "Unit testing frameworks"

Yoni Flenner - Founder of "Atid" college"

After that I took the stage...

I had the great pleasure of delivering a lecture called "Demystifying Selenium Grid". We saw what is Selenium grid, how it works, what it looks like and why we need it.

The following lecture I gave was about Docker.
We saw how Docker changed the way we perceive virtualization and how "Dockerized" grids can scale up our immutable infrastructure.

The lecture was followed by the first ever "Selenium Tag" game!
It was open to everyone, and t…

Selenium 4 - and its bucket of surprises

 Selenium 4 - and its bucket of surprises

Selenium 4 is about to be released by the end of this year, which makes a lot of us wonder - what surprises are we in for?
Selenium-webdriver is the number one free open source testing framework which is being used by many organization as their main reliance for UI test automation. Selenium's API is also partially used by different free and commercial testing tools. With that being said, we should try and better understand our mysterious partner for automation adventures. Let's review in a nutshell some of the things that are in the bucket for the upcoming version.
In this upcoming version, we are in for some new treats

Selenium IDE is being revived : As some of us may remember, In August of 2017 it was announced that as of Firefox 55 Selenium IDE would no longer be supported. Selenium IDE or as the Selenium community refers to it - the Legacy IDE was, and is, dead. Since then a lot has happened with it. The Selenium community along with co…