In today’s digitized world, a growing number of people use their mobile devices to perform almost any type of action they need. Near the top of the list are interacting with financial services and banking. These end-users highly expected all of the mobile banking apps they use, provide them with the highest level of user experience and present high performance.
Mobile banking apps face a lot of challenges that do not affect other industries. The main challenges are securing customer data and assuring data safety, integrity and security.
Based on analyzing what is most effective for our top banking customers I put together a list of our top 10 tips for testing banking applications. Applying these will greatly improve your testing processes, reliability, and speed. The main benefit you should see is that you will release high-quality software at a faster pace.
1. Improve QA Environment availability
A banking application’s QA environment is complex. It is typically composed of multiple services that need to work together. If they don’t, and the environment demonstrates poor availability, it has an impact on the entire team’s performance.
We found the following two steps to be the most effective for our large banking customers in overcoming this challenge:
- Building a squad team that includes DevOps engineers aligned with the QA team’s priorities.
- Implementing service virtualization for the services that show the highest instability.
Implementing these two methods will highly improve the QA environment availability, improve team performance, and allow the faster release of high-quality apps.
2. Test data complexity
One of the unique aspects of mobile banking apps is the complexity of their test data.
Having a stable automation execution process requires that the test data used will be accurate and ‘clean’. Otherwise, a major amount of time is wasted around debugging testing issues, rather than design/programming issues.
The key to solving this, based on our experience with large banking customers, is in applying these two methods:
- Again, implementation of service virtualization can help to address test data challenges.
- Using a central system that contains valid test data tested continuously and ‘checked-out’ by the automated test or user.
These two solutions will help assure that test data is always valid and “clean”, and minimize the time invested in investigating testing issues.
3. Combine API in your UI functionality tests
When looking into functional tests, it is typically found that more than 50% of the code is test preparation and setup. This means that we attribute more than 50% of test code writing and test execution time to test preparation and setup. Additionally, this test setup is the cause of more than 50% of test failures, making it the number one cause of flaky tests.
To solve this, it is highly recommended to combine an API with functional UI testing. Implementing this can eliminate setup overhead, and allow for the functional tests to stay short, atomic and focused.
4. Test for Banking specific scenarios
Mobile banking apps introduce some specific scenarios that are unique for the banking industry and are not very common in other industries, such as check scanning and security features like fingerprint authentication.
Due to these unique requirements, it is highly recommended to also test these use case scenarios:
- Check scanning – simulate a user that scans a check.
- Test security features like:
- Fingerprint authentication – application-based authentication that integrates with the device authentication.
- Rooting and jailbreak device identification.
- SSL pinning
You are sure to deliver a more stable and reliable product when you test these scenarios.
5. Build a fast feedback pipeline
Building a fast feedback pipeline is important for every industry but it’s especially important in a banking testing environment.
The overall testing challenges and the environment, which is sometimes unfriendly for QA, make a fast feedback pipeline a necessity.
6. Handle device fragmentation
A wide range of people uses different banking apps. They use a vast and fragmented number of devices with differences in operating systems, versions, screen sizes, manufactures and more.
Due to the secure nature of banking applications, it will usually use some native libraries. Native libraries tend to break (especially on Android devices) since they’re sensitive to operating system version, CPU architecture, and other factors.
Additionally, the integration of sensors like phone camera and fingerprint also creates device-dependent friction points that need to be handled.
7. Test for accessibility
Accessibility testing is important due to the need for organizations to be kind and inclusive, and because it can increase the application revenue by more than 10% by making it available for people with disabilities.
Banks specifically have additional sensitivities around meeting different regulations and avoiding legal processes. This is due to the fact that banks are considered to be an ‘easy target’ with big pockets.
Therefore, testing for accessibility has become a necessity, assuring the application is in line with regulations, standards, and expectations.
8. Test in the cloud
QA is a very challenging task by itself. On top of that, testing in a banking environment introduces additional challenges, mainly due to the application’sand the environment’s complexity.
Yet, many of the ‘IT’ challenges around maintaining a lab of devices, can be removed by testing in the cloud, despite some security challenges it may introduce.
Maintaining an on-premise lab of devices is a very complex task. A SaaS environment provides a significant improvement in scale, improves time to market (especially for supporting new devices modules and versions) and improves device availability SLA.
9. Engage with your Security and IT teams
When working in a bank, the working environment significantly limits the operations a user can perform.
Users don’t have administrator rights on their machines, in many cases they don’t have access to the local machine’s USB ports, and in many cases communication with external and internal resources relies on a proxy configuration as well as certificate installation.
Working closely with the IT and Security teams is crucial for a successful QA organization.
QA managers should engage the security and IT teams to work closely with QA and trust them.
10. Test your User Experience application performance
Every industry must provide a perfect user experience! Due to the competitive nature of the banking industry, it’s extremely important to provide a perfect user experience.
A big part of the user experience is related to the way your application performs under different network conditions. It sums up to the time it takes the application to respond to user interactions on the device.
Mobile applications have additional areas of focus around the CPU, memory, and battery consumed.
Our analysis shows that out of the 5 stars available in app stores, 1-2 stars are related to the application performance user experience. It is therefore very important to test these parameters and make sure your application provides an awesome user experience.
Implementing these 10 tips, based on Experitest’s vast experience with leading international banks, and our analysis of what works for them will let you rest assured that you are providing high-quality mobile banking apps to your customers in a timely manner.