Home / Corporate / Portfolio / Automation Testing for CRM pyramid

Automation Testing for CRM pyramid

Modern digitally progressive businesses and organisations need reliable, informative, trustworthy, reusable and optimal automated testing to achieve maximal user journey coverage across software projects.

Business Requirement

Our client, is the large events company in the world. The project we are working on with them is a scalable and modular white label CMS used by leading online, offline and hybrid conferences as well as other events including festivals.

The application was initially built with a monolith architecture over 6 years ago now. The original team were experienced, skilled software developers but the monolithic architecture was not scalable and be suitably adapted to current and planned future needs.

The original software development team also took on the QA role alongside development responsibilities and set up automated testing for the monolithic CRM.

However, as the application’s features were consistently iterated on at the request of the business an increasing number of bugs and other issues started to appear.

AKGPGroup continues to enhance, support and maintain the CRM pyramid, releasing regular updates to enhance the platform based upon customer feedback and growth.

Client

Startup

Industry

Media

Project Timeline

14 months. Ongoing support.

About the Client

Our customer, a European startup, came up with an idea for a mobile audio and video editing app that would enable media creation, viewing, and distribution. Aimed at music artists and producers, the app would enable them to become audio/video content creators, publishers, and distributors regardless of their experience and background.

And due to the solution’s social network capabilities, artists could be discovered and their content could be reused, gaining popularity and monetization.

Project Challenges

We had several problems with end-to-end test frameworks while setting up E2E automation due to:

  • The framework’s support and development
  • The legacy application’s reliance on locally and not cloud-hosted tools
  • Browser protocol restrictions and its lack of maturity.
    We had to implement our solution without re-developing the existing application and developing new features.

We also had inherent limitations to our options eg. you do not want to add Python test frameworks into a Java/Javascript codebase.

Why AKGPGroup?

AKGPGroup’s software developers and QA engineers are highly skilled and mature professionals able to identify gaps, limitations, opportunities much faster than others.

AKGPGroup teams include full-stack and QA automation engineers able to develop, maintain and test a wide range of application types.

Tech stack

Tech Stack:
The technology stack used in this project includes but is not limited to:

Languages:

Java & Typescript

Frameworks:

Spring & React.js

Test frameworks:

Puppeteer, Percy, Junit, Artillery, Lighthouse and Postman

Puppeteer provides a high-level API to control Google Chrome(or any other Chrome DevTools Protocol based browser) built by Google.

Jest is a framework developed by Meta Platforms (ex-Facebook).

Both are popular, well-supported and continuously developing tools used by a wide range of applications that require browser automation. The choice of these tools and technologies future-proofed the project and meant there was a deep pool of specialists from which to hire new team members while allowing for a high level of customisation.

Functional Area

The strategic decision was taken to bring in a AKGPGroup software development team to migrate the legacy app from a monolithic to microservices-based architecture. Initially, manual QA engineers were introduced into the team as a stand-alone role.

At a later date the decision was taken to evolve the CRM as a SaaS to be licensed to the multiple event brands under the Informa umbrella. Alongside the architectural changes that required the decision was taken to introduce a comprehensive automated testing system.

Without it, manual regressions of the application would have taken up to 2 weeks, followed by re-testing and any fixes required.

This wasn’t an option for the CRM’s agile development approach.

Solution Applied

Our solution was to develop an automated test pyramid with the following components:

  • Unit/component tests
  • Service integration tests
  • Service API tests
  • Feature functional tests
  • Feature non-functional tests
  • End-to-end tests

The unit/component and service integrations test were developed by the software developers and the remaining components by QA automation engineers.

Solution Features

  • Our team consists of 2 POs, 3 QAs, 16 developers and we keep hiring
  • Bi-weekly release with only smoke tests requiring manual intervention
  • 80% test coverage of the codebase
  • 60% of hotfixes are due to business requests and not system failures

Outcome

That approach has helped us improve the project’s quality and the efficiency of ongoing work as developers were not also taking on the QA role and able to focus only on the development while QA automation engineers develop, maintain and optimize automated testing. The result was a sharp reduction in the amount of overtime required of the team and the number of hotfixes and production issues. It also reduced the number of features to be released per sprint but the quality of those releases increased which attracted more users of the CRM.

The Results

The decision between Java and Javascript test frameworks for end-to-end tests

We were choosing between Java and JavaScript test frameworks for end-to-end tests. First we selected Selenium+Mocha+Chai as great-value and well-supported stack for browser test automation.

We compared the stack to the Serenity BDD framework which natively offers valuable features that needed to be introduced to Selenium+Mocha+Chai stack through third-party libraries or in-house development. Serenity BDD also demonstrated better performance and we thought we had our test stack.

But we concluded Serenity was the best option for our context as we weren’t going to use BDD so went back to the drawing board.

We then assessed CodeceptJS, which provides a superset for all protocols as devtools or web drivers and supports Typescript out of the box. However, we concluded it still lacks features we required which we would have to develop by ourselves. The tool also offers limited support.

Finally, we settled on the same combination on Puppeteer + Jest + Java/Type-script we were using in other tests. This resulted in a clearer and more consistent test set requiring the same tech stack across development and maintenance.

  • Maximizing the efficiency of the recruitment process;
    Tracking the admission process and communication with students after they log in;
  • Managing the entire constituent lifecycle;
  • Streamlining operations, reducing costs, intensifying revenue generation processes, and developing business processes;
  • Integrating with other campus programs;
  • Establishing and consolidating the relationship with students and keeping them engaged in all processes;
  • Providing school administrators with a better context about prospective students;
    Improving marketing automation, developing a smarter marketing budget, and allocating necessary resources properly to deploy the most efficient marketing campaigns;
  • Creating custom input fields, marking the required ones, and gathering all the critical student information;
  • Enabling the staff of higher education establishments to access the necessary student data quickly and seamlessly. Such data may refer to prospective students, the existing ones, and alumni;
    Creating sequences depending on defined activities or time-based triggers.
    Ultimately, Nikon, as a reliable CRM tool for the education industry, brings together and enhances cooperation between critical internal, including sales, support, and marketing. Thanks to this CRM platform, users obtain a single, shared view of their client data.

With Nikon, users can break internal silos for delivering tailored client experiences and building deeper relationships with their customers in the education industry.