Banking System Load Testing for Payroll Card Programs
Our client is one of the largest commercial banks, with European offices and state participation.
The bank has its own payroll system which is used to automate the issue, maintenance, and cancellation of agreements and their conditions, as well as processes related to handling the following data:
- payroll card issue registry;
- payroll accounting registry;
- dismissed people registry.
This salary system is crucial for the employees’ convenience, as payments are made directly into their bank accounts.This is also an advantage for both the bank and the employers.
To distribute money from companies into employees’ salary accounts, dozens of registry versions must be received and sent to different companies through various integration channels. Also, the bank system has a complicated framework of verification at each stage. In addition, the salary system remits a portion of employees’ pay to a tax service and other government entities. A failure in the system would result in millions of people not receiving their money.
The system provides services for the payroll programs of the largest European companies.
The salary program service system works on DBMS Oracle, Oracle BPM Suite platform, and the WebLogic interface.
Have a project in mind?
There is no better place for a QA solution than Performance Lab.Drop us a line to find out what our team can do for you.
The bank had a goal to minimize performance and resiliency risks in IT infrastructure and salary program systems, such as possible disruptions in payroll card services, payroll accounting delays, and system failures during registry processing.
Performance Lab provided performance testing of payroll systems. The testing challenge was to understand the structure of component interaction given a variety of registry types and a large status model.
During system load testing, registries passed through several processing stages in the system and we had to consider them all. At each stage, a registry can be assigned a status according to the business process model, making it possible to have a maximum of 12 transaction statuses:
As a part of the task, our testing team had to do the following:
- analyze operation execution statistics and performance requirements;
- develop load profiles by defining a list of emulated operations and their execution intensity;
- develop load testing tools: scripts, scenarios, mock-ups for the external system, test data generators;
- perform comprehensive load testing of the system:
- determine maximum and peak performance levels;
- test reliability;
- test the processing of a large-size registry (up to 9,000 records);
- define average registry processing time under a load of 10,000 registries per hour;
- compare testing results with previous releases;
- analyze system load testing results and prepare a report for the client.
Performance Lab’s specialists organized the comparison of system release load testing performance. Each release contained at least three changes in system functionality. During the tests, we measured the impact of each release on system performance; changes that did not pass a check were not included in the release.
Our team executed more than 60 business cases by receiving and processing registries from different channels and sources, generating reports, working with agreements, activating cards, and performing other actions.
We defined 16 high resource-consuming interface operations, such as activation and obtaining document or task lists. These operations were also tested for every system release.
For load emulation, we used LoadRunner and МicroFocus Performance Center instruments. We developed 29 emulators to simulate the work of seven adjacent bank systems and created additional loads using Java, BPEL, and JMeter technologies.
Besides, we wrote 43 test registry generators in Python.
During testing, our team tracked business process status transitions of all registries and detected status defects.
DBMS performance was tracked using Oracle Automatic Workload Repository.
For monitoring purposes, we used Telegraf, InfluxDB, Grafana, and self-written scripts in Python and Go.
Benefits for the client
Performance Lab engineers have been performing load testing for financial systems for more than five years. We have prevented numerous system failures and provided timely payroll for large clients, reducing financial and reputational losses.
Our services allow clients to address releases with performance degradation, preventing possible decreased system reliability before production deployment. This enables banks to minimize risks and reduce losses of funds when operating with salary clients. Punctual testing of the payroll system provides significant benefits and savings to businesses.