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 websites. It helps us provide services at a lower cost, increase our competitiveness, and comply with regulatory requirements.

#A journey from feature request to release candidate

At 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

#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 and 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 enhanced code completion to increase delivery time.

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

Together, these practices and tools help us improve code quality, increase project maintainability, and reduce the amount of time spent debugging and fixing issues. Moreover, it prevents a lot of bugs from being published in the staging environment.

#The stage

Each feature request and each story has its own independent environment, which 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 and clients before the feature goes to 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 important 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 a virtual browser in the cloud (Chrome, Firefox, Safari, or others) and follows the steps.

Test results of Playwright run

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

  1. Open page ``;

  2. Click on the button "Contact us";

  3. Fill in a name into the name input field;

  4. Fill in a brief into the brief input field;

  5. Fill in an email address into the email field;

  6. Click on the "GDPR" checkbox;

  7. Click on the button "Send";

  8. Expect a "Success" message;

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

#Bonus: Availability dashboard

We provide the availability dashboard for our clients. It is powered by one of the SaaS services we use to enhance 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

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