QA City

   QA City >> Expert Column
Dont Miss Experts

Testing for Microfinance Applications

Mukesh Sharma
Mukesh Sharma
Founder & CEO, QA InfoTech
Mukesh Sharma is the founder and CEO of QA InfoTech. QA InfoTech (an ISO 9001:2008 and CMMI Level... more>>
It continues to be an ongoing discussion on whether software quality assurance and testing is a horizontal spanning across disciplines or if it is a vertical requiring domain specialization. Clearly, Software testing in itself is a horizontal with its fundamentals, approaches, methodology and best practices that can be leveraged across domains. However, in the last decade a lot of domain specialization is becoming more important in addition to the core testing expertise. Besides an understanding of the domain to customize testing techniques to align with them, a lot of compliance based testing and certifications are becoming mandatory. In this write-up I will be discussing such special testing needs for the Microfinance domain.

So, what is Microfinance to start off with? Microfinance is a service that provides financial support through varied forms such as deposits, loans, insurance, money transfers, and payment services catering to the needs of the low income group. Microfinance organizations can have a varied set of business models including:

1. Grameen banking - comprising of small group organizations with strict procedures

2. Self-help groups - comprising of larger and more autonomous groups with a mixture of social and financial intermediation

3. Regulated financial institutions - usually comprised of small groups operating in favorable regulatory environments

4. Credit co-operatives - with a focus on helping the poor

Given the target set of users for this service, microfinance is more popular in developing and under-developed nations. Given India's growing prominence in the IT sector as well as its large base of people in the low income groups / below poverty line, you will see a number of microfinance companies that have a strong online / web presence along with their physical brick and mortar shops, spread across the country. Obviously, from a software quality assurance and testing standpoint we are more interested in the online applications and what it entails to test them specific to the domain.

Typical microfinance applications:

a. Are multi-tier applications supporting thousands of concurrent user sessions and a huge volume of transactions per second
b. Have complex business workflows
c. Require large scale integration with several applications, real time and batch processing
d. Require secure transactions with robust reporting
e. Need strong auditing to troubleshoot customer issues
f. Have massive storage systems that require a very flexible and agile recovery management

As far as Indian microfinancing companies are concerned, operations are regulated and governed by the Reserve Bank of India (RBI). Taking all of these above defined characteristics into consideration, a comprehensive micro-finance test strategy should include:

1. Configuration Management Testing
2. Business Logic Testing
3. Security testing specifically covering authentication, authorization and web application protocols
4. Core functional and database testing
5. Performance testing for batches and transactions along with capacity planning
6. User acceptance testing
7. Most importantly, compliance with regulations defined by the RBI

Experience testing for banking and financial applications typically come in handy when testing for microfinance applications, but this calls for a variant of its own in terms of policies, regulations, target users (based on which applications usability needs are vastly different), kinds of transactions etc. In my opinion, the target user variance is a huge factor in testing for microfinance applications, since the user base here is the low income group whose exposure to web applications is often very limited, whereas a banking application typically has a wide range of users from the low income to very high income groups.

In our testing methodology for microfinance applications, we place special emphasis on:

a. Database testing (DB Schemas, stored procedures and functions, triggers, data integrity)
b. Identifying and testing for regulatory conditions defined by RBI (this typically would also require us to talk / interview relevant people in the microfinance organization to understand policies and checklists) - focusing on transaction specific compliance, interest disbursement for deposits and interest charged for loans per defined regulations
c. Performance testing using a combination of open source tools and our in-house frameworks
d. Security testing focusing on security protocols and authentication and authorization
e. Detailed usability testing

Coming to area of microfinance specific testing challenges, in our experience, weve found it particularly challenging or the need for additional focus and improvisation in the areas of: the ever changing regulations and market requirements, need for high data confidentiality and complex systems often involving large legacy systems. These when translated for purposes of software testing result in challenges around regression testing, security testing and integration testing.

To mitigate these, we have adopted very specific solutions including:

1. A trained team that has tested microfinance applications

2. A set of knowledge base articles/best practices specifically designed for this domain which we use for team ramp-ups/trainings

3. Case studies specific to this domain

4. Maintainable test automation for mundane and error-prone regression suites including an ongoing maintenance effort on the regression suite itself
5. Risk based testing

6. Use of data masking and synthetic test data to promote data confidentiality

7. A dedicated test environment for integration testing focusing on system coverage, operational coverage, data coverage and environment management

If you closely analyze this write-up you will see a pattern evolving in defining your testing methodology for any given domain, where you first start off with looking at what the domain is all about, then move on to core characteristics of applications in the domain including a look at the target users, what testing types will address those core characteristics, challenges specific to the domain and finally mitigation strategies to address them and more importantly a knowledge base built out of all of this experience for future training and knowledge sharing.

We take pride in the fact that this methodical approach has helped us build domain knowledge in a varied set of areas, of which microfinance is also an important one. After reading through this write-up, hope you have specific actionable points to take back for implementation , if you are part of this domain. As always, feel free to write to me with any comments, questions, feedback at
Experts on QA
Swaid Qadir Bhat
Sr System Architect
Virtusa Corporation
Subhash  Motwani
Prasad Rao Pasam
Ayaskanta  Mohanty
Managing Director
TATWA Technologies
Rajesh  Dagar
Software Architect
Connect Icon Pvt Ltd
Yasar  Khuthub
Software QA Manager
Azure IT Solutions
Sunil  Bhat
Project Management
HCL Infosystems Limi
Sharad  Agarwal
Team Lead