The banks form the economic background of any country. Hence, each move banks make towards improving their digital platform determines where they are in their transformation journey. The banks globally are in stiff competition, and no one wants to leave any stone unturned. From implementing new technologies to upgrading and transforming the business flow, enterprises are making multiple efforts to improve their services and ensure customer satisfaction.

Banking applications always face massive loads, like continuous usage for long hours, multiple users using applications at the same time and more. It puts an immense load on banking systems and applications. The usage capacity sometimes exceeds the limited capabilities of the systems. In addition, users demand new features based on new technologies, which may impact the software if the same is not validated. It is essential to understand the upper limits of the system’s capacity by increasing the load beyond the maximum limit and verifying the stability and reliability of the software application and ensuring that the systems do not fail beyond a certain level and even if it fails, it can recover back.

This is where stress testing becomes critical. The primary goal of stress testing is to measure the robustness of software applications even when the system is running at optimum capacity and sometimes beyond the expected load. Stress testing, also known as Endurance testing, ensures systems do not crash under extreme pressure. Systems sometimes run under extreme conditions to evaluate their conditions beyond normal operating points.

The endurance of banking AUT is checked by putting it under the highest form of stress. It is done to understand if the banking applications can withstand the stress. It helps the testers to determine the stress limit at which the software/systems/hardware will crash. Stress testing also validates that the system has effective error management under extreme conditions.

The current scenario of why stress testing becomes essential for a banking company

  • Frequent feature included with the existing one
  • Less time for the product release cycle
  • Frequent changes in government compliance and a need to keep up with the pace
  • Frequent releases on digital applications and people reliability with a digital platform
  • Interconnectivity of digital platform with main bank server applications

Let’s take an incident for an example,

During the salary transaction, the first couple of days in a month, banks may witness a spike in traffic. High value and volume of transactions and multiple users using the applications simultaneously can create a lot of stress on banking applications. Stress testing becomes essential to validate the abnormal spikes in traffic, and prevent the banks against the loss of revenue and reputation.

Types of Stress Testing:

Systemic Stress Testing – It is conducted across multiple systems working on the same server. It helps discover defects in one application when another application data blocks it.

Exploratory Stress Testing – It is conducted to test the systems with unusual parameters running on extreme conditions, which is rare in real scenarios. Exploratory stress testing is used to detect defects related to multiple users at the same time, virus scanning in all machines simultaneously, large volumes of data fed into the database simultaneously, and the database going offline when accessed from a website.

Application Stress Testing – It is conducted to find defects in performance bottlenecks in applications, network issues, data locking and blocking.

Transactional Stress Testing – It is executed to validate one or more transactions between multiple applications. This testing helps in fine-tuning and optimizing the systems. 

Why Stress Testing?

  • To check if systems can function as usual under extreme stress conditions
  • Show the error message when the systems run on extreme stress
  • Highlight the Grey areas like loss of revenue and reputation when the system crashes under extreme condition
  • Stress testing prepares your systems for extreme conditions

Stress testing helps to analyze the behaviour of the systems in case it fails. A system passes stress testing when it displays appropriate error messages under extreme conditions. It also helps in validating if the system can recover from the failure.  

Why Stress Testing is becoming exceedingly complicated?

During stress testing massive data sets can be lost in the process. This data are often security-related and has a risk of getting lost or the data sensitivity could be compromised. The data in the banks and financial institutions are both massive and sensitive, hence the organizations must compromise the data with a calculated risk.

Banks and financial institutions’ constant effort is to innovate their services and adapt to new technology. In their quest to transform digitally, banks and FIs are constantly implementing changes to their digital platform. Even a tiny amount of change can make the systems extremely vulnerable leading to system failure. Hence, adequate stress testing is essential to ensure that the systems do not fail under extreme conditions. It also prevents the loss of massive and sensitive information stored in the banking systems.

Stress testing helps FIs to ensure better customer experience and builds confidence in the institutions’ ability. The overall QA burden is increasing in banks and FIs due to the growing complexity of environments, frequent releases, complex workflows, and changes implemented by Government regulatory institutions. Hence, it is inevitable to conduct stress testing to ensure the recoverability of the banking systems even after the system fails in extreme conditions.

As banks and financial institutions are transforming digitally there is greater dependency on digital platforms. Transactions have increased in mobile devices, which has increased the chances of system failure more than ever. Whenever there is a spike in traffic with an increasing number of application users, the systems require thorough stress testing to ensure that the digital platforms do not fail with subsequent and rigorous usage.

Is your system stable and reliable to handle extreme scenarios and recover back after service failure?

Is your risk equivalent to the return? Can you expect an equal return to the risk you have incurred?

How can Yethi simplify the complicated stress testing process while ensuring that the banks gain a fair return on investment from a calculated risk?

Considering the volume and sensitivity of data stored in bank systems are massive, testing the stress level of the banking systems can be complicated. Banks may lack available resources; hence, they can consider outsourcing it to third parties who have domain expertise and experience. Stress testing determines the stability of the system by testing beyond normal operational capacity. While we were handling one of our performance testing projects of Greenfield implementation of a newly formed Small Finance Bank, we noticed a few instances.

It included multiple applications like Core Banking Solutions, CRM, Mobile apps, Lending and more. We designed Performance Engineering Parameters based on Testing and Observation to validate transaction response times, average transaction response time, memory usage, CPU usage and throughput of the system.

The system under test was across 400 branches for 4 million customers and 4.5 million accounts simulation, and 4 host servers (20+ cores), load balancers and Database. The target matrix set for the project was response time for transactions within 3-5 secs, EOD batch should be less than 2 hours, EOM/EOY should be less than 3 hours, achieve 1 million transactions daily load, and achieve a maximum 5000 users load. The stress testing was conducted for 5000+ until the system broke.

Through stress testing, banks and FIs validate the stability and reliability of multiple applications. They test their applications under extreme scenarios and check if their systems recover after a service failure. Organizations take this calculated risk to ensure that in real-world scenarios when thousands of users are involved, the systems do not fail and harm their revenue and reputation. The risk is equivalent to the return, as the organizations are sure of their systems’ capacity to handle a load of multiple users simultaneously.  

With a decade in the business and a client base of 125+ clients across 30+ global countries, Yethi has handled more than 60 performance testing projects. Our IP, a ready-to-use test case repository of more than 1 million test cases consists of reusable test assets (including PT instances) that can be further built to multiple test scenarios. It saves 40% human effort and 50% time for testing further reducing time-to-market by up to 70%.

Our team of experienced performance testers adopt a structured approach to planning and executing the performance testing phase. They define clear objectives, milestones, and timelines to ensure optimal utilization of the available time and resources. We employ an agile approach to issue analysis and resolution. They promptly identify performance-related issues through comprehensive monitoring and analysis and quickly resolve them through collaborative efforts with the bank’s stakeholders. This iterative process enables timely issue resolution, ensuring stable and reliable applications.

We collaborate and communicate effectively with the bank’s stakeholders to fast-track the go-live process and mitigate potential delays with thorough feedback and discussion. Client satisfaction is vital for us, so we concentrate on testing efforts, accelerated issue resolution, and ensuring that any critical issues are addressed promptly, minimizing the risk of delays. We establish a robust testing environment and infrastructure that accurately simulate the anticipated user load and concurrency levels. We offer comprehensive test coverage to cover various usage scenarios and user loads. By simulating realistic usage patterns, data sets, and user behaviours, we ensure that applications under scope are thoroughly evaluated and optimized.

 Our typical performance testing flow would look like,

  1. Capturing NFR (Gather & Analyse NFR, Perform Feasibility study, Identify performance test tool)
  2. Environment Setup (Setting up server-tier deployment, Populating Target DB, External Systems & Licenses, Performance Test Strategy & Plan)
  3. Use Case Scripting (Develop Load Test Scripts, Design Load Test Scenarios, Create Test Data)
  4. Scenarios Building (Identify & build Volume, Soak, Stress scenarios, Determine Think & Pacing time, Define Injector Profile  for injector deployment, Define time lines)
  5. Execution (Sanity test, Volume test, Isolation tests, Stress test, Soak test, Load Balancing tests)
  6. Reporting & Analysis (Data sample collection, Determine test outcome by comparing expected Performance, Result report & dashboard for all test types)

 If the stress testing is done strategically, following a performance reengineering framework, the return is worth the risk taken.  A proper framework would not just allow you to attend the desired result but will also simplify the process.

Recommended Posts