In brief
-
01
Project
Platform for data analysis and marketing automation
-
02
Problem
QA staff member doesn’t manage to do all the work alone
-
03
Solution
IT outsourcing — to strengthen the team with QA engineers from OrbitSoft. They:
- Identify potential problems during the requirements writing stage
- Write project documentation
- Check new features against customer requirements and user expectations
- Make sure the new features don’t change the work of other sections
- Assign tasks to developers to fix bugs
- Identify reasons why the error happens
The Finnish company develops web services for merchants and marketers. One of the projects is an online platform for data analysis and marketing automation. It helps companies find new customers.
Each company using the platform has a personal account. You can set up different roles in it: for marketers, analysts and sales managers. Specialists segment the target audience, set up advertisements, launch and analyze advertising campaigns.
For example, a factory produces utensils for catering. With the help of the platform, they can build a customer base and increase sales:
- The platform finds accounts of people who work in the restaurant industry on LinkedIn and other online sources. When selecting, it considers the size of the business, industry, country and other important characteristics.
- With the help of the platform, marketers can set up advertising for the assembled audience and attract new, interested customers.
The client company is already cooperating with OrbitSoft in several areas: development, DevOps, testing. We wrote about this in detail in the article «What tasks does a Finnish IT company outsource to OrbitSoft employees?». In this article, we focus on the tasks of a manual quality assurance engineer on one of our projects.
A manual QA engineer is a specialist in manual software testing. He checks the performance and monitors the quality of the software product.
Why does a customer need an outsourced QA
The platform is constantly improving: developers make changes for the users' convenience, and add new features. To avoid problems for customers, new features need to be tested.
Our client has a tester in the team, but he wasn’t able to keep up: over time, there were too many testing tasks. In order not to waste time on looking for specialists and not to hire them as a staff member, the company decided to use IT outsourcing.
OrbitSoft developers and Dev-Ops were already working on this project and the customer was satisfied with the cooperation, so QA was also invited. Two manual QA engineers are currently working on the project. Specialists ensure product quality, write documentation, test UI, UX, API.
Tasks of the manual QA engineer from OrbitSoft on the customer project
QA is connected to the project at the very beginning at the stage of drawing up development requirements: they analyze which scenarios contradict the logic of the service or may create inconvenience for users.
For example, on the customer’s platform, the term «number of unique accounts» is used in all sections, and in the requirements for the new section this field is called «new contacts». It will be difficult for the user to navigate, so QA offered two solutions: return the wording or add a hint with a description.
In this way, QA engineers help detect bugs before developers start writing code. This saves customer’s money for development and helps to release service updates on the scheduled dates.
People often confuse QA engineer with QC engineer. Both roles are related to software testing and quality, however they have different levels of responsibility and tasks. In another article, we will tell you how they differ.
Looking for bugs in the test and production environment
The testing stage takes the most time for a QA engineer. The more scenarios he checks, the fewer errors users will encounter after updating the service.
To test how the system responds to user actions, functional tests are carried out:
- positive — check that the system allows the expected actions to be performed. For example, an administrator can assign roles to new users, and a marketer can create advertisements.
- negative — think through cases in which the user behaves differently than he’s expected by the service. For example, he enters too many characters for an advertising banner, he types numbers in the text fields, or he wants to download a report while having access only to view the data.
In pre-production, regression testing is carried out before the release. It allows you to make sure that nothing is broken in the service due to new functions. For example, developers have added the ability to filter data by keywords. The filters are interrelated, so you need to make sure that they work as they should: if you apply a new filter, the previously applied ones are not reset, and the search deepens.
It’s important to test new features in a production environment. Only there is real data which the platform requests from other services. This allows you to check that the integration is configured correctly.
We control that the product turns out the way the customer wants
Immediately after the development of new features, QA checks the product for compliance with the requirements of the documentation. The task is to make sure that the product is developed correctly from the point of view of the customer:
- Engineers compare the interface with layouts in Figma: location of objects, colors, fonts and other elements must visually match.
- Check the platform’s functions to ensure that everything works as described in the documentation: a list of clients was created, segments were set up, advertising campaigns were launched, graphs with reports were built.
We check if it’s convenient for users to work with the platform
To understand how the product meets user expectations, UX testing is carried out:
- They go through user’s path in the company personal account step by step. For example, for a marketer, the path might be: create an audience segment → create an advertising campaign → create an ad in a campaign → target a campaign to a segment.
At each step, they evaluate how clear it is to work with the platform, what difficulties users may have.
- They check different blocks and user scripts in sections.
Testing the API
The customer’s advertising platform has a microservice architecture. It consists of small independent components, each of which performs a separate function and communicates with other components.
This architecture has many advantages. Microservices individually are easier to develop, test, scale: if one of them fails, others will continue to work. However, a microservice architecture requires good communication between components.
If the API integration is configured incorrectly, there will be no data in the company’s personal account. And without data from CRM, LinkedIn and other services, the platform is practically useless: analysts have nothing to segment, marketers have no audience to set up advertising campaigns for.
How we test API
- Verify if the API passes the scheme validation check — works as expected, without errors. For example, the API method returns data in response to a post request as described in the documentation.
- Check the status code to make sure the API is processing requests correctly. For example, we get a 403 error for a request if access to the resource is denied, and a 200 code if the operation was successful.
- We pay attention to the data structure. For example, check that the API method returns data in JSON format.
- Make sure that the endpoints — addresses for http-requests in the prod are written correctly: they contain the current protocol, host, address to the method. This is necessary for requests to go to the right server and return the desired data via API.
- Check the list of all methods. They must be for all functions as described in the requirements. There should be no duplicates: for example, when different methods return the same data.
Technical block
Figma
DevTools
Postman
Charles
Putty
Grafana
VS Code
GitLab
Jira
PostgreSQL
JavaScript
Qase
ClickHouse