Automated quality assurance in Gorazdo

We bring several quality assurance (QA) techniques to our products and services to meet customer expectations for reliable and high quality web sites. It helps us provide services at a lower costs, increase our competitiveness, and comply with regulatory requirements.

#A journey from feature request to release candidate

In Gorazdo we use Github Projects to manage projects and track the progress. Each task or story has its own representation in Git Repository -- the central part and the only source of truth of the website.

From Feature Request to Release Candidate
From Feature Request to Release Candidate

#Code quality gatekeeper

We use Github Actions as a part of Continious Integration and Delivery (CI/CD) process. Every code commit will have to meet Typescript and Eslint checks.

Eslint is a static code analysis tool that helps identify potential errors, inconsistencies in the code. We have a custom configuration that enforces code standards, best practices and certain rules that increase code maintainability, readability and consistency.

Typescript on the other hand, makes our code more resilient and robust by introducing Static Types checking. It also improves code quality and makes Developer Experience smoother. With Typescript our developers have enchanced code completion to increase delivery time.

On top of that we use Code Review practices to share knowledge, improve teamwork, identify defects that were uncaught by Eslint and Typescript checkers.

Together, these practices and tools help us to improve quality of code, increases maintainability of projects and reduce the amount of time spent debugging and fixing issues. Moreover, it prevents a lot of bugs from being published on staging environement.

#The stage

Each feature request, each story have its own independent environment, we call the stage. This is a full copy of the website, where the new feature can be tested and viewed.

We gather feedback from designers, our clients, before the feature goes to the production Once feedback is given we reiterate the process and the changes will go throguht Code quality gatekeeper over and over.

The staging environment is also imprortant as a place, where automated end-to-end tests can run.

#End-to-end (e2e) testing

As a last resort in this pipeline we apply end-to-end tests. We use 🎭 Playwright framework to enable reliable and modern end-to-end testing.

How does it work? The runner automatically executes a test case. Each test case contains a list of actions and the result to expect. Each time it opens in the cloud a virtual browser (Chrome, Firefox, Safari or other ones) and follows the steps.

Test results of Playwright run
Test results of Playwright run

Here is an example of one of the tests we execute:

  1. Open page ``;

  2. Click on a button "Contact us";

  3. Fill in a name into name input field;

  4. Fill in a brief into brief input field;

  5. Fill in an email address into email field;

  6. Click on "GDPR" checkbox;

  7. Click on a button "Send";

  8. Expect "Success" message;

We have dozens tests for different purposes: SEO, User journeys, Accessibility complience and others.

#Bonus: Availability dashboard

We provide with the availability dashboard for our clients. It is powered by one of the SaaS services we use to enchance workflow.

With this tool we can monitor how the website (or multiple ones) is behaving. It shows 95 and 99 percentiles of accessibility.

Availability dashboard by Checkly
Availability dashboard by Checkly

With cloud-based technologies we use you do not need to think of resource scaling. It's happening automatically!