The biggest problem in test automation is constantly changing locators and unstable tests. As a rule, unstable tests are still commonly called the slang expression Flaky. There is a lot of information and approaches for working with locators. I discussed this in detail in my article. And in this article, we will try to deal with the problem of unstable tests.
If you do not have Flaky tests, then you are doing something unreal. Flaky tests are evil. A flaky test is a pain. This is something that you have to fight for days, and sometimes for weeks.
In my recent article, I offered my vision of how code review should take place in test automation. In this article, I want to continue and present the best practices of working with the Git version for discussion.
Version control (sometimes called source control) plays an important role in any development project, including test automation. This is the practice of tracking and providing control over changes made to the source code. And since one of the most common tools used in version control is Git, let’s take a look at some of the most common Git commands.
All automation engineers…
In the process of testing our project, we sometimes have to face the requirement to upload files. In most cases, we need to upload files using Selenium WebDriver. In most cases, the web application should contain a feature that allows users to upload files to the server. However, this is not always the case, but more on that later. When testing a product, it is very important to have the skills to upload files using Selenium WebDriver. In this article, we will talk and learn how to work with uploading files using Selenium WebDriver.
Let’s analyze the file upload to…
A decorator is a structural design pattern that lets you attach new behaviors to objects by placing these objects inside special wrapper objects that contain the behaviors.
Structural design patterns are concerned with how classes and objects can be composed, to form larger structures.
The structural design patterns simplify the structure by identifying the relationships.
These patterns focus on, how the classes inherit from each other and how they are composed of other classes.
In Software Engineering, Structural Design Patterns are Design Patterns that ease the design by identifying a simple way to realize relationships between entities.
The primary goal of the code review process is to assess any new code for bugs, errors, and quality standards set by the organization. The code review process should not just consist of one-sided feedback. Therefore, an intangible benefit of the code review process is the collective team’s improved coding skills.
Doing test automation is about writing code. Test automation code can be easily treated as “second-class citizens”. As it’s not delivered to customers, development is often less formalized and may lack the scrutiny and quality practices otherwise applied in the organization. Lately, I’ve been doing lots of code reviews…
Any report is an important and concise form of information transfer from the contractor to the client(customer). As you may have noticed, the prepared reports should contain information about the actions from the previous stages.
Thus, we can define a test report as a document that contains information about the actions performed (run test cases, errors detected, time spent, etc.) and the results of this work (failed/passed test cases, number of errors and failures, etc.).
Do we need to prepare test reports? Yes, of course. In fact, there are at least 3 reasons to prepare test reports:
One of the most popular UI automation tools is Selenium Webdriver. At the time of writing, the second beta 4 version has been released.
The release includes an API for working with DevTools via CDP (Chrome DevTools Protocol), which takes interaction with the browser to a new level.
The Chrome DevTools Protocol allows for tools to the instrument, inspect, debug and profile Chromium, Chrome, and other Blink-based browsers. Many existing projects currently use the protocol. The Chrome DevTools uses this protocol and the team maintains its API.
The DevTools toolkit is divided into blocks (DOM, Debugger, Network, etc.), …
Factory Method is a creational design pattern that provides an interface for creating objects in a superclass but allows subclasses to alter the type of objects that will be created.
In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or added complexity to the design. Creational design patterns solve this problem by somehow controlling this object creation.
When working with automated tests using Selenium, we often need to take a screenshot of a web page or part of a web page. This can be useful, particularly when debugging test failures or verifying our application behavior is consistent across different browsers. We can take screenshots at runtime using the test script that helps us bug analysis by viewing the state of the application at the time of failure.
In this article, we’ll take a look at three ways we can capture screenshots using Selenium WebDriver.
As we know, one of the primary purposes of automation testing is to…
Test design is the process of transforming general testing objectives into tangible test conditions and test cases.
The test designer should build a process for testing all the most important parts of the software product, using the minimum possible number of checks. In small teams, the work of a test designer often falls on the shoulders of an ordinary tester. in large companies, the functions of testing and test design are usually clearly divided between specialists.
As a result, the testing chain looks like this: