QA & Software Testing
RUBICON Drives FinTech Forward with Quality Assurance for Optimal Performance
Delivering End-to-End Automation Testing for a Leading Fintech Company

Client quote
"RUBICON's test automation resources all had a strong software development background, which resulted in well-structured test scripts that our in-house developers found easy to maintain and extend. RUBICON's automation of a lengthy manual testing process reduced our time spent for each development cycle, standardized our process, and resulted in a higher quality product for our customers."
COO, Fintech company
Overview
In 2018, RUBICON collaborated with a London-based fintech company focused on data analytics software to support and deliver a web app designed for professionals in the financial industry. The client's goal was to provide global financial institutions with a platform that presents all financial data in real-time and allows professionals to make fast and smart business decisions.
To ensure a high-quality product, RUBICON dedicated a team to write and implement automated tests that provided a safety net for the development process. The client requested that RUBICON's quality assurance team write and generate end-to-end automation tests to confirm the usability, stability, and reliability of the software product.

Challenges
Here are the three main challenges that we encountered:
Large quantities of data - A significant part of the software's functionality was to display data, either by text or graphically, which required the software development team to ensure that all of the displayed data was correct and consistent. This proved to be a time-consuming task, down to the last pixel, which increased the time needed to perform the run of a test set
Multiple environments - The tests needed to be able to run on multiple environments that were configured differently from one another and consisted of different data and functionalities. This increased the number of tests the software team had to perform, as well as drastically increased the time needed to perform the run of a test set
Optimizing code for speedy executions - Having tests run in parallel to save time was great, but it required optimizing the tasks and questions, which were the building blocks of tests since even one unoptimized task or question that was used everywhere would waste precious time when being executed
Solutions
To overcome the aforementioned challenges, RUBICON and the fintech company's teams came up with some solutions. Here are the solutions we implemented:
Data consistency - The client made sure that the data in the testing environment was always constant, even with the exception of time-based data, which shifted daily. RUBICON engineered a custom-designed architecture product that was modeled specifically for the client's project. The data was loaded into the tests and then matched with the data collected from the application.
Running tests in parallel - Serenity-Grid and Jenkins were used to distribute test runs, allowing the software team to run tests in parallel. This reduced the amount of time a developer had to wait for a test run to be completed.
Optimizing code - The software development team prioritized optimizing the tasks and questions since they were the building blocks of tests. Serenity's report feature allowed the team to check the execution time for every task and action so they could identify the slow-performing ones and focus on them.
RUBICON's dedicated team composed of one tech lead and two quality assurance automation engineers worked on writing, running, and maintaining tests for the client's software. The framework the team used to write the end-to-end automation tests was Serenity.
Serenity produces an end report that presents the behavior of the web app, such as the user's series of steps on the web app, screenshot for each step, the outcome, and duration. Serenity uses abstraction to make the tests more humanly readable so that each person on the client's team can easily read and understand the tests.
Since the software was constantly changing during the project with new features, tweaks, and updates, RUBICON's team decided to use the Kanban methodology due to its flexibility. Using Kanban, RUBICON's team ran daily standups where the team members synced their current status with each other and exchanged ideas. In addition, weekly meetings and retrospectives were held where tickets were refined, and both the process and performance were evaluated.
By implementing these solutions and following an agile methodology, RUBICON's team was able to write and maintain efficient end-to-end automation tests for the client's software, ensuring a high level of quality and consistency in the final product.
Results
Through our end-to-end automation testing and software development process, RUBICON was able to provide significant business value to our client:
Improved software performance and behavior
Increased efficiency and speed of test runs with parallel testing using Serenity-Grid and Jenkins
Achieved data consistency through custom-designed architecture and matching data collected from the application
Optimized code for faster execution time using Serenity's report feature
Minimized downtime with a quick feedback loop for failures
Ensured high-quality and seamless software product for a positive user experience
Boosted productivity with flexible Kanban methodology for the software development process
Delivered value to the financial industry with a robust and reliable software solution
Technology stack
Java, Serenity BDD, Selenium, Jenkins


