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 conclusion, cancellation, and maintenance of agreements and their conditions as well as processes related to handling the following data:
- Payroll card issue registry;
- Payroll accounting registry;
- Dismissed person registry.
This salary system is necessary for convenient payments to real people directly into their bank accounts. It is an advantage for a bank and company in which these employees work. The main purpose of such salary systems is to receive payments from different companies and transfer them to real people.
Dozens of registry versions to 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. Failure of this system would result in millions of people not receiving their money.
The system provides services for payroll programs of the largest European companies.
The salary program service system works on DBMS Oracle, Oracle BPM Suite platform, and WebLogic interface.
Got 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 has 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 vast status model.
During system load testing, registries pass through several processing stages in the system and we have 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 transactions statuses:
As a part of the task, our testing team should:
- Analyze operation execution statistics and performance requirements.
- Develop load profiles — 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 a given test, we measured each release’s impact 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 the Python language.
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 on 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 possibly 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.