Posts

Containers - Let's get moving!

Image
I recently posted an article about Docker and how it changed the way we perceive virtualization and deployment tasks. If you haven't read that one, I strongly recommend that you start by reading it before continuing to this one. Who are you, Docker?

In this short post, we are going to talk a little bit more about Containers. No, not the ones we use to ship out cars, clothes, electric Items and other goods. The ones we use to make it easier for us to manage virtualization and deployment tasks.

What is a Container?
Well, if we go to Google, we will find this definition:

"A container is a standard unit of software that packages up the code and all its dependencies so the application runs quickly and reliably from one computing environment to another."

Now let's try to better understand how it works. Take a look at the drawing below.



Let' say we have a machine with a Linux OS.
As we see in the above drawing there are several processes running on that machine.
In this …

Automated Mindset

Image
A part of my fascinating role in Testim.io is arriving at our customer's headquarters and helping them achieve their automation goals. This type of Solution Architecture is truly challenging and interesting because there is no "One size fit all approach" and each company has its own unique challenges, agenda, mindset, and skillset.



There are many difficulties in implementing test automation, one of which is changing your mindset from manual testing to automation-oriented perception.
One of the first things I tell everyone I meet is "before a single line of code is written, stop! take a piece of paper and a pen and list down your goals. Plan as detailed as you can what it should be like".
I noticed by talking to testers, that it is very difficult for some of them to detach themselves from what they are used to perform manually and try to think about automated tests from a different point of view.
One of the biggest common mistakes is attempting to automate every…

Kubernetes (K8S) introduction

Image
So, by now chances are you have heard about Kubernetes at least ones. In this article, we will try to demystify Kubernetes and transform this buzzword into something we can comprehend.
To those of you that didn't get a chance to read one of my previous articles introducing the key concepts of Docker, (Who are you, Docker?) I strongly suggest you start by reading that article before you move forward to this one.

So what is Kubernetes?
Kubernetes, (commonly stylized as K8s) is an open source originally designed by Google. It is a container orchestration system for automating application deployment, scaling, and management.

Cluster who? -  Terminology that will help us move forward.
For one let's understand what is a cluster.
If you ever played around with Docker containers you must know how easy it is to spin up several Containers or multi-container applications. Maybe you even got a chance to experiment with docker-compose.  For something very small this kind of deployment could…

Chromedriver - Under The Hood

Image
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

Image
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?

Image
"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

Image
“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…