No matter what the size of the business, every organization needs to properly manage its customer support routine. The question is how to do this properly when the customer base becomes too broad to cover it manually.
That’s when enterprise software solutions may be a game changer.
Developing such software for mid and large-sized organizations is a tough challenge. As well as ensuring that the whole product works flawlessly and provides a top user experience.
In this case study, we will focus on how we helped a customer support software platform, in ensuring the platform’s stability by implementing comprehensive automated quality assurance solutions.
.
Brief summary
- The goal was to ensure thorough validation of functionality through the creation of a large number of tests, while also preventing test failures caused by minor changes.
- Over 500 tickets have been covered using cypress and 100+ automated tests were created using playwright. Approximately, 93% of test cases are fully automated, reducing the risk of undetected issues.
.
About the project
We had a chance to cooperate with a customer support software platform that helps companies effectively manage customer interactions and inquiries. It offers multi-channel support, allowing companies to handle customer support requests from various channels on one centralized platform.
The ticketing system categorizes, prioritizes, and assigns tickets to the appropriate agents, streamlining ticket management and ensuring quick customer issue resolution.
The platform includes a knowledge base feature that enables companies to create and maintain a database of articles, FAQs, and documentation for customer self-service. Additionally, the platform offers automation capabilities, such as ticket routing and canned responses, to reduce manual tasks and improve response times.
.
What was the challenge
The project team aimed to improve test coverage for their React/Typescript single page application (SPA) using Cypress for end-to-end (E2E) testing.
They faced several challenges, including the need to significantly increase test coverage, the requirement for specialists with experience in Cypress testing, the need for optimized test performance, and the prevention of brittle tests.
Overall, the goal was to ensure thorough validation of the application’s functionality through the creation of a large number of tests, while also preventing test failures caused by minor changes in the application.
.
Problem we faced
- A large number of existing test cases that were not automated. Manual coverage was relatively large and automation was only used for a few critical tests. As a result, this created a large burden on manual testers.
- The development team did not take advantage of the reporting automation.
- The existing automated tests were outdated and uninformative.
- Poor documentation.
.
Solution we provided
- The QA Automation team analyzed the current technology stack and scalability. We decided to change the test framework and language. Currently, tests are written using TypeScript.
- Maximized test automation coverage.
- Reduced manual run of test cases and increased automation test execution.
- Achieved a significant reduction in test time; not only due to the test execution time but also due to the redistribution of testing levels.
- Built stable test environments due to more accurate test data.
- Introduced clear reporting.
- The documentation was updated constantly with details on how to clone, setup, configure, and write new tests. Added details about the structure, best practices, and frameworks used.
- Manual QA switches focus on testing which is hard to automate: UI, Usability, Localization, Compatibility, and partly regression.
.
Advantages of the tools used
The technology stack used in this project includes but is not limited to:
.
JavaScript and TypeScript
Main programming languages we used for test automation.
Cypress 10
It’s a good solution for UI end-to-end tests because of a huge variety of commands that imitate real users’ behavior. Also, it provides API requests that significantly reduce the run time, and more useful features such as time traveling, automatic waiting, screenshots, videos, etc. This was just the tool that we needed.
Playwright
It is an open-source automation library developed by Microsoft for web browsers. It offers several advantages for web testing and automation, making it an ideal choice for developers and testers.
Playwright supports multiple browsers, such as Chromium, Firefox, and WebKit, enabling tests to be written for different browsers using the same code base. It also provides bindings for various programming languages like JavaScript, Python, and .NET, making it accessible to developers with different language preferences.
Playwright allows tests to be run in either headless mode or headful mode, providing flexibility for different testing scenarios. It also includes built-in device emulation functionality, making it easy to test the responsiveness of web applications on various devices. Additionally, Playwright supports parallel execution of tests, enabling efficient testing processes.
Overall, Playwright delivers cross-browser support, language compatibility, flexible testing modes, device emulation, and parallel execution for effective web testing and automation.
Sorry Cypress
It is an open-source testing tool that offers several advantages for testing web applications. It enables parallel execution of Cypress tests, reducing test execution time and increasing efficiency.
The tool allows integration with a real-time dashboard in the CI pipeline, providing detailed information, such as test execution videos, logs, and screenshots, to quickly identify and debug issues.
Sorry Cypress also automatically records test execution videos, making it easier to identify where failures occur. Additionally, it captures screenshots at different points in test execution, aiding in the diagnosis of issues when tests fail.
The tool provides test analytics, including historical data and trends, allowing for tracking of test performance over time. Lastly, Sorry Cypress has a simple setup process and integrates well with existing Cypress test suites, making it accessible to developers of all levels of experience.
GitHub Actions and Docker
Both are powerful tools used in software development. GitHub Actions offers automation, integration with GitHub repositories, versatility for different programming languages and platforms, customization through YAML files, a marketplace for community-created actions, and scalability.
Docker provides containerization to package applications and their dependencies, ensuring consistency across environments, portability, isolation for increased security and stability, resource efficiency by sharing the host OS kernel, version control for tracking changes, and a rich ecosystem with tools like Docker Compose, Docker Swarm, and Kubernetes.
When combined, GitHub Actions and Docker can automate the creation and testing of Docker containers and simplify the development and deployment process, making it more efficient and reliable.
Overall, these tools improve the development workflow from build and testing to deployment and scaling.
Jira
As a tracking system, we chose Jira, it allowed us to easily record and track bugs and assign them at the right time with the bug tracking template.
For the customer, Jira gave an opportunity to monitor work progress and always be up to date with team tasks through a sprint cycle.
It helped all team members to keep everyone aligned on each issue’s status and ensure that the highest priority work is being tackled first.
.
Achievements
The project`s team has seen significant results from their partnership with Pecode.
Firstly, we helped to increase test coverage by building hundreds of Cypress and Playwright tests. Over 500 tickets have been covered by automation testing using Cypress and 100+ automated tests were created using Playwright. Approximately, 93% of test cases are fully automated, reducing the risk of undetected issues.
Secondly, our experience in structuring Cypress and Playwright tests efficiently improved the test structure, making them easier to manage and update.
Additionally, our approach to preventing test fragility proved to be effective by adopting best practices and working closely with front-end engineers. This ensured that tests remained stable even as the application evolved.
Most importantly, the collaboration with Pecode improved the overall quality of the application by identifying and fixing bugs and issues early in the development process. The positive feedback received reflects the success of this partnership.
In Pecode, we always focus on bringing maximum value to our partners by ensuring flawless and swift work of their products. Our goal lies in addressing real challenges and overcoming them to build productive partnership. If you need fast, continuous, and visible quality verification of your software, you can schedule a call and get a free POC, just drop us a note to hello@pecodesoftware.com