A Testers View of Mobile App Payments

Testing-mobile-paymentapp-tesific

I recently paid my utility bills using a mobile payment app, and it took up to 4 working days for the payment to get credited. While most app providers do mention this upfront, there is always a doubt whether the transaction will go through or will there be a nasty a surprise just before the deadline?

Because of the convenience it offers, I have used Mobile Payment apps a few times when in a hurry. Most apps do a decent job of offering the required 3rd party integrations with utilities, telecom providers, and other service providers. You can either transact using your Mobile wallets (pre-loaded), or credit card or Net Banking or other payment modes supported in the app. That said, what always concerns me is the time between me completing the transaction using the mobile app till when it actually gets credited into the Biller’s account.

When you initiate the payment, here are some of the questions that occur to me (and I’m sure to you too):

  1. Do the 4 days include the day the transaction was performed? And if the payment fails for some reasons will the money get credited into your account immediately?

  2. What does an error mean? Error codes are sometimes so obscure that you wouldn’t know if you should perform the operation again or just wait.

  3. If you try to perform the Transaction again, you might either end-up paying twice or not at all – how to know immediately?

  4. Do the payment apps charge additional amount (e.g., service charge), and are you, the user informed in advance.

  5. What happens if you get disconnected (or suffer a network failure) before the Transaction is complete?

  6. And finally – was your transaction successful / unsuccessful?

Even if everything goes well, you’re still not sure if your money reached the correct place – as you can’t check till the amount is credited to the biller. What happens to your money while in transit after having been debited from your account is a story for another day!

As a tester, I was curious to know what goes on behind the scenes to ensure the transactions go through smoothly without causing any harm to the end user(s).

Here is a typical transaction flow:-

Picture3

Having understood the transaction flow, thinking like a tester – the next thing would be to come up with a methodology to test this.

At a high level there are a few things one considers:

  • Online Store (Application)

  • The Mobile device (platform on which the transaction is performed),

  • The payment gateway:

    • Third party aggregator (hosted or shared),

    • Buyer’s banking interface, and

    • Merchant’s banking interface

 

  1. Online Store (Application): Testing this is not too different from how you would test for a web application – similar components are involved. However, unlike a PC, mobile phones are more vulnerable. Hence, certain precautions are required – more from an end users usage point of view. You may want to watch out for:

    • Functional Testing: As the feature set is limited to the essential ones, your functional testing can be completed much quicker.

    • Automation: If time permits, and if the application is not going to change significantly, then automation can become a great help in such situations. Automation not only reduces time per release, but also develops predictability and helps hasten the process to achieve faster GTM (go-to-market). I have covered the details of what to automate and when in another blog.

    • Performance and Security testing are gaining prominence as mobile devices are becoming the main source of transactions. Application outages have a widespread impact leading to significant revenue loss and customer dissatisfaction. The performance should be measured across multiple OS/browser(s), geo-locations and networks. Transactions can take place instantly – a friend of mine recently bought a TV using his mobile app in less than 5 minutes, as soon as he saw the advertisement on TV. This is also a cause for concern. Since, your credit card information and other user details are pre-stored (for convenience) on the phone, these phone are vulnerable and the losses could be severe. Hence, tests should be performed to ensure that the user information is protected in the eventuality of a phone theft.

    • Recovery tests: This is important when testing mobile apps considering the widespread reports of network outages, Wi-Fi being out-of-range, no connectivity are not uncommon. The application should have a mechanism to bring the user back to where he/she was when the network problem occurred.

    • More than just testing: We also have to check how the information is displayed and accessible – does it replicate the web app and try to fit everything on a small screen. Testing is not only to find defects in the application but as a tester if you can suggest a few improvements in the application that would enhance the user experience such contributions are invaluable. If the application is developed for a mobile user then the number of features would be less versus a full blown web application but the mobile experience could be more consistent with the device.

  1. The Mobile device – the platform on which the transaction occurred. There are thousands of (most used) phones, hence, you have to smartly select the ones based on your user profile.

    • Public / Private Cloud options: This is economical if you use it wisely. So you can avoid buying, maintaining, and upgrading to the latest device(s). Perfecto Mobile and Device Anywhere are the 2 most popular platforms available for testing on live devices. Perfecto has even published the most optimal set of devices (i.e., 32 phones) you need to test based on several factors. This paper is available for free download. There are many others who offer competitive pricing and are strong in certain geographies. Cross Browser Testing (CBT) and Browser allows you to test a site’s layout and functionality on real browsers, running on physical (real) devices. They have flexible options where you can subscribe in units of hours.

    • In-house devices: This is an expensive affair, however, some companies prefer this over private / public cloud options for security reasons.

  1. The Payment gateway: Depending on whether your application uses a hosted payment gateway (e.g., PayPal, WorldPay) or a shared one (e.g., Stripe) one need to ensure that the credit card numbers, account holder details, merchant ID information are properly encrypted, and this information is safely passed between the customer and the merchant bank and vice versa. There is a lot you can do here including transacting using fake credit cards, payment wallets, test for parameters passed through the application and the payment gateway, testing integration services, error codes, currencies, geo-dependencies, etc.

As your cycles are shorter especially in case of mobile application development, you have to prioritise what to test in the given time. It’s good to get a buy-in from various stakeholders thus ensuring the risks are clearly understood. It’s also important to have a mechanism to include tests for every defect discovered outside of your testing – so that such scenarios are covered automatically in future tests.

That’s a tester’s view of making payments on mobile apps –I hope it gives you some insight into what to look for when testing a mobile ecommerce application. Happy Shopping and Happy Testing!!!

About the Author:

Ramanath Shanbhag is a creative professional with around 18 years of experience across the industry – having worked at Mindtree, Microsoft, HP, Aditi, and Accord Software.Being an innovative, motivated and goal-oriented professional, he has consistently proven his ability to handle multiple strategic and operational level responsibilities in start-ups, mid-sized as well as large organizations. With such a unique blend of diverse experience, he has now embarked on a journey to help organizations achieve the best in Software Testing.

Ramanath Shanbhag

linkedin-badge

Ramanath is an advisor to clients, has an unmatched ability to discover cost-effective solutions, and adept at client management.Ramanath has comprehensive experience in Strategic Planning, Test Delivery Management, Software Testing, Process Management, Quality Control, Project Management, Product / Process Development, Market Recognition, Client Relations Management, Cross Functional Coordination, People Management, Team Management, and Creating innovation in testing.He has published and presented several Whitepapers, Articles, and Blogs in many prestigious conferences and magazines.


Leave a Comment