E2EE mobile messenger

Slogan

The way our dedicated QA team and full-stack expert helped a messaging app become a powerhouse in secure communications.

About client

Our client, a prominent tech company headquartered in Geneva, stands at the forefront of telecommunications innovation. Its mission is to connect communities, enterprises, and critical public services in a secure and sustainable manner. Embracing a customer-focused approach, the company prioritizes data privacy, simplicity, and strong ethical standards as guiding principles.

Industry

Telecommunications

Services provided

Back-end development, front-end development, DevOps services, mobile testing, web testing, desktop testing, automated testing, project management

Tech stack

NodeJS, Nest.js, React.js, Docker, Kubernetes, Terraform, Helm charts, Redux, Redux-Saga, NATS

6

Dev & QA team

Switzerland

Country

Since 2020

Cooperation

About the project

Our client's flagship product is a state-of-the-art mobile messaging app with end-to-end encryption (E2EE), designed particularly for enterprises prioritizing privacy and security. Compatible with iOS, Android, and desktop platforms, this application boasts advanced security protocols, seamless integration across various devices, and customizable branding options to align with each client's unique identity.

Our engagement

QA and project management

Our collaboration started with the engagement of our dedicated QA team, which has taken on responsibility for testing web, desktop, and mobile apps. To establish a seamless QA process, our experts created a testing strategy that hadn’t been in place before, updated existing documentation, wrote new test cases, optimized a bug-tracking workflow in Jira, and created structured user stories as well as acceptance criteria for them.

Beyond executing comprehensive manual testing, we have also introduced automated testing for iOS and Android apps. Up to 98% of test cases are automated. Tests are run on real devices with the use of parallelization. This way, we have stabilized the applications and facilitated fast smoke and regression testing. Up to 2 days are needed to complete automated regression testing, while automated smoke testing takes up to 2 hours. As of now, we have already reported more than 4000 bugs, 40% of which are critical or major.

Recognizing gaps and inefficiencies in the development process, we have introduced the Scrumban methodology to foster agile development. Our QA Lead has taken on the roles of a Scrum Master and a Project Manager.

Challenges & solutions in QA and project management:

There was no well-structured QA process.

We have created and implemented a comprehensive testing strategy for web, mobile, and desktop applications.

Test coverage was insufficient, and most of the existing test cases were outdated.

Our team updated existing test cases and created new ones to reach appropriate test coverage. To date, there are more than 2500 test cases.

Bug reporting was not efficient enough, and the created bug reports were non-informative.

The QA engineers optimized the bug tracking workflow in Jira as well as created a standardized template for bug reports.

User stories were not formalized, which resulted in inefficiency.

We have proposed a standardized user story template. As a result, the user stories that we create are well-structured and contain acceptance criteria. This has facilitated the optimization of the QA process.

Regression testing of mobile apps was executed manually and took about 20 days.

Our automation QA experts automated about 98% of test cases. Over 700 automation test scripts were created for the iOS app, and almost the same number of automation test scripts were created for the Android app. Parallel test execution on at least 3 threads significantly speeds up testing. As of now, up to 2 days are needed to complete automated regression testing, while automated smoke testing takes up to 2 hours.

A lot of bugs across web, desktop, and mobile apps were overlooked.

Our dedicated team has introduced an efficient QA process that suggests the regular execution of diverse tests, both manual and automated. 4000 bugs have already been detected and reported.

There were gaps and issues in the development process.

To make the development process more efficient and agile, our QA team has introduced the Scrumban methodology. Our QA lead has taken on the roles of a Scrum Master and a Project Manager to help set up all workflows correctly. He tackles all aspects, from maintaining software requirements to leading daily meetings, retrospectives, and demos.

Full-stack development

With regard to the diligent work of our QA team, the client also decided to augment their development team with our full-stack developer to help it build a load testing system for internal use. Its purpose is to provide significant loads of various types, including high message volumes, numerous concurrent user connections, and large file transfers, in order to detect performance issues and bottlenecks within the messaging app. With its help, the development team could optimize the app and ensure its stability and responsiveness under heavy usage.

Our expert has performed this task with flying colors. Currently, he continues to enhance the load testing system. The aim is to empower app clients to conduct load tests independently, as the messaging app is hosted on their internal servers. It's crucial to allow them to evaluate its performance across different configurations. This ensures optimal functionality and responsiveness in various operating conditions.

Challenges & solutions of full-stack development:

The key requirement was to enable the simulation of various types of load scenarios on client servers. The load testing system needed to generate high volumes of messages, support numerous concurrent user connections, and maintain the stability of extensive file transfers. Furthermore, the system should have been versatile enough to operate across different configurations to ensure optimal performance under various operating conditions.

To meet all these requirements, the system has been designed with the help of Kubernetes, Docker, Terraform, and Helm charts. This setup allows for easy adaptation to different environments and effective simulation of diverse load scenarios.

There was a need to ensure efficient real-time data handling.

Node.js was used for the development of the backend, responsible for managing communications with the client application. This has enabled data processing in real time.

A user interface should have been created for an administrative panel to enable effortless system management and customization.

Using the capabilities of React.js and its libraries, our developer has created a robust and user-friendly interface for the administrative panel.

Client success

The load testing system created by our developer has immensely improved the performance and reliability of the messaging application. In its initial deployments, it identified issues that could have led to instability under heavy usage conditions.

By simulating various load scenarios, the in-house development team has fine-tuned the messaging application, enhancing its stability and responsiveness across different operational environments.

The efforts of our QA team have resulted in well-structured and fine-tuned testing and development processes, which, ultimately, have translated into the unmatched quality of the messenger. So today, our client is recognized as a leader in secure communications.

+11
Lviv
+24
Kharkiv
+15
Kyiv
+48
Poland
+3
UK
+12
Germany
+21
Lithuania
+19
Latvia
+12
Slovakia
+2
Greece
+3
Portugal
+2
Netherlands
+15
Estonia
+21
Czech Republic
+2
Andorra

With a pan European talent pool, Devico brings together the continents best talent and makes them available for you

Request free quote

By submitting your information, you agree to the Devico Terms of Service and Privacy Policy. You can opt out at any time.