Browsed by
Category: Testing

Cypress vs Selenium

Cypress vs Selenium

This article shows you the differences between Selenium library and Cypress framework. Cypress is a modern end to end testing library – a competitor of Selenium. I recommend you to get familiar with the general description of Cypress and description of Selenium problems. I wrote about it earlier (http://www.diwebsity.com/2019/07/16/why-choose-cypress/).  Below is a table with a comparison between these two approaches (libraries) line by line for each category. I tried to be as objective as possible. This table is intended to…

Read More Read More

Why choose Cypress?

Why choose Cypress?

What is it? Cypress (https://www.cypress.io/) is a quite new testing framework. It becomes very popular last year. Mostly among the front-end developers. It is not surprising when we look into the most interesting features of this library: Modern UI with the ability to: preview test execution, time travel in test execution, validate and debug the page during the testing. The integrated mechanism for network call simulations. All in one solution. The new kind of UI is especially interesting because it…

Read More Read More

Selenium problems (and how to solve them)

Selenium problems (and how to solve them)

Selenium library is a very popular standard. It has many advantages, but it also has many problems. In this article, I want to list all Selenium problems and try to address them one by one. At first, we need to define, what are the most important problems: Hard to select elements on the web page This problem is not related strictly with the Selenium library. It is related mostly with a poor semantic description of the element on the application…

Read More Read More

Testing the same behaviour every time

Testing the same behaviour every time

Tests give us an assurance which application works fine. We usually want to execute them on some Continuous Integration servers. It is very convenient because we can configure them to run after each repository commit or once a day.

Continuous integration flow usually works as follows. The application is built on CI server and then it executes all tests. Because all tests run on the same database, it is hard to make all them all independent. However, test independence is a very important principle. The result of one test may affect the correctness of another test. It is especially problematic if we want to run tests in parallel. We can’t be sure what will be the order of execution. It is not only the problem of the database. The browser can also store a state of the application.

QA interview questions

QA interview questions

What is a Test Case? What does it include?

A Test Case is a step by step description of the testing process and a set of conditions under which a tester can determine if the application works as expected.

It includes:
– test case description
– test steps
– requirements
– expected result

Make sure that your application works on multiple browsers

Make sure that your application works on multiple browsers

Sometimes we need to create a system exposed to a public web application. We may even need to create it for the broad group of customers. In that case, we need to develop it working on many different types of browser versions. In usual development, we would be forced to open the website in each browser ant test in manually. It would be very beneficial if we can automate it.

We can perform testing on multiple browsers very simple using Selenium WebDriver. We will just use its ability to works with different drivers and configure them.

End-to-end testing mail course

End-to-end testing mail course

Some time ago I noticed some interesting fact. Developing application in the real world doesn’t mean just writing code. Definitely not in modern development. Before we start coding, we have to know what we want to create and how it should look like. Moreover, after the writing code, we ensure that it works fine. It doesn’t have bugs, it can handle the incoming traffic, and so on … After creating the project we have plenty of work to do. When…

Read More Read More

PageObject use – is it rewarding?

PageObject use – is it rewarding?

In this post, I want to show you the principles of the most useful pattern for end-to-end testing. I will use Selenium for all examples. I assume that you know this tool. It would be easier to explain some things.

Selenium WebDriver gives us powerful tools for writing end-to-end tests. We can imitate the user behavior on every aspect. However, it doesn’t come without some pain. It has several problems that testers must deal:

Simple method to improve application quality

Simple method to improve application quality

Some times ago I faced the problem with the low quality of the customer’s demonstration. When we try to present our application for the wider audience, we have problems with doing some basic scenarios again and again. We thought that we well tested this functionality. We were using it every day, and everybody in our team was checking it after each change. However, the application functionality still evolving. Moreover, any modification of the code may result in changing final functionality. Because of many changes before demo we can’t test it enough to be 100% sure that everything works fine.

ProtractorJS + TypeScript – tutorial

ProtractorJS + TypeScript – tutorial

ProtractorJs is an end-to-end framework written for AngularJS applications. It uses Selenium WebDriver features internally. The main advantage of the regular WebDriver test is an ability to cooperate well with SPA application. The main problem with this type of systems is asynchronization. Single Page Applications change their look without reloading the whole page. So it is very hard to determine when the application is ready for action. Fortunately, Protractor knows the Angular internal mechanisms, so he is aware when application finish all operations.