Reduce regression time in a

Introducing change in a large and complex system is often tricky. Adding new features or fixing bugs with every sprint may disrupt existing product functionality. To achieve a certain level of quality, proper testing is required. Manual testing can be time-consuming, requiring additional investments in human resources. To reveal defects early in the process as well as reduce the risk, we implement regression testing. 

However, the more complex the product becomes, the more regression testing needs to be done to make sure that nothing was broken in every iteration and the quality didn’t deteriorate. That’s why it’s crucial to have an effective strategy for regression testing.

Project Overview

For our client, we developed a social platform. The challenge was to help deliver quality and stable product.

Problem statement

Because of the size of the project, there were parts of the application that couldn’t be manually tested regularly in a cost-effective manner. Additionally, over time, as the system started to increase in complexity, it became more difficult and time-consuming to execute all test cases.

ad-2

To reduce the time spent on regression testing, and enable testers to achieve better test coverage regularly, we decided to optimize the regression test suite. 

Our main task was to deliver a working product through short iterations (every three weeks) as well as guarantee that the parts of the app which were affected by the changes still work.

Solution

From a technical perspective, the social platform is a complex product that includes multiple user interfaces.  To ensure smooth app releases, the CX Dojo digital product development team created a robust automation framework from scratch that facilitated the ability to quickly and effectively find and resolve bugs.   

One of the important things to understand about regression testing is that it works best when running early and often during each sprint.

ad-1-1

This is because running them later in the development cycle may yield unfavorable test results. 

The aim was to react quickly to changes in the production environment and to ensure the high quality of the product – much before users even realize there’s an issue. For this reason, our QA specialists created detailed specifications with clear acceptance criteria to speed up the development process and to exclude possible bugs before they appear. Additionally, thanks to clearly defined tasks and the correct execution of functions, there was no need to write test cases, which allowed us to save time.

ad-3

Our team of QA engineers created a flexible checklist, which we update whenever adding new features. 

Since microservices architecture depends heavily on the communication between service components, test automation checks APIs, interfaces, communication paths, and service components while ensuring the internal implementation of services remains independent.

Because of the complex structure of the project and the need to provide a fully functional and high-quality product within short iterations, we decided to automate a certain number of tests to solve the problem of growing regression testing time in a system with microservice architecture.


We used the Test-Driven Development (TDD) method in this project. This method assumes that the right application code is created only when tests to verify the accuracy of the code have been designed; it mitigates the risk of regression errors and supports high coverage of the code with unit tests, resulting in a much lower number of application errors.

Value Delivered

Automated regression testing allows us to check a variety of changes and free up QA engineers to conduct manual exploration into more unusual cases in the production environment.

Thanks to testing automation at the level of unit tests, modules, and integration tests, the number of regression bugs has decreased. 

After six iterations, the team managed to achieve a result when the data integrity control points and integration cases were 100% covered by autotests. 

Solving-the-problem
Improving Software Quality
Integration-of-a-payment-cover
Integration of a payment gateway
Improving-web-app-performance-and-load-time
Improving web app performance

541 Jefferson Ave. Ste. 100
Redwood City, CA, USA 94063

4a bakulina st. Ste. 48
Kharkiv, Ukraine 61000

4a bakulina st. Ste. 48
Kharkiv, Ukraine 61000