Apache Fineract Testing
Apache Fineract is an open-source platform for digital financial services used globally, especially in underserved or unbanked populations. It is a modern platform with a modular service-oriented architecture providing the core functionality needed for financial inclusion.
Fineract just contains the back-end platform and APIs. The platform is highly flexible and scalable and works through APIs, making it suitable for various financial service providers, from small microfinance institutions to large banks. It allows partners & developers to re-use the core and customize it according to the requirements quickly.
Key Features of Apache Fineract
Below are the key features of Apache Fineract:
- Open-source: The agenda behind Apache Fineract is to fulfill the banking needs of the underserved or unbanked, which is why it is available for free.
- Core Banking Solution: Designed to handle complex core banking transactions related to savings, loans, fixed deposits, and accounting.
- Customizable and Scalable: It is scalable and customizable to serve small community-based financial organizations and even large banks with millions of clients according to their specific needs.
- API-driven: It is primarily built with robust APIs (Application Programming Interfaces). It allows for easy integration with other systems and third-party services, such as payment gateways, mobile apps, and more.
- Cloud-ready: You can simply deploy and use it from the cloud. It increases the scalability and accessibility and reduces the cost.
- Community Support: It is a part of the Apache Software Foundation and has a strong community support system for troubleshooting, development, and continuous improvements.
Who Uses Apache Fineract?
Apache Fineract is a product for digital financial services. It is used globally, especially in regions with a high need for financial inclusion, such as below:
- Inclusive Finance Services: Banks aiming to provide services to lower-income groups and rural populations often use Apache Fineract. It enables them to offer various financial products customized to these demographics.
- Microfinance Institutions: It benefits microfinance institutions (MFIs) that provide financial services to low-income clients. These services include microloans, savings products, insurance, and more.
- Cooperatives and Credit Unions: The community-focused financial organizations use Fineract to manage their member-centric services, such as savings, credit, and insurance.
- Mobile Banking: Used to provide services like mobile wallets, money transfers, and bill payments. Especially in areas where mobile phone usage is high but access to traditional banking is limited.
- Exchange Platforms: Apache Fineract provides capabilities to set up an exchange platform, such as a crypto exchange, easily. Balances can readily be displayed in Apache Fineract based on integrations with different software.
- Fintech Startups: Many organizations that are working towards financial inclusion, mobile banking, or microfinance use Apache Fineract as their core banking platform. The reasons are its flexibility, scalability, and low cost of deployment.
- Investment Companies: They use Apache Fineract to manage their customers’ investment portfolios or specific investments for each customer.
- Development Agencies and NGOs: Non-governmental organizations (NGOs) and development agencies that are working towards financial inclusion initiatives often implement Apache Fineract. It is open source and thus helpful to manage and deliver financial services in the regions they serve.
How to Test Apache Finteract?
You can use the below testing types and supporting tools to test the Apache Finteract application:
Functional Testing
To verify that the features and operations of Apache Fineract work as expected. Read a good article about different function testing types.
Examples:
- Create and manage savings accounts, checking that interest calculations and transactions are processed correctly.
- Loan management functionalities, including application processing, disbursement, repayment schedule, and interest calculation.
Supporting Tools
- JUnit: It is widely used for unit testing Java applications and can be particularly effective for testing the business logic in Apache Fineract.
- Selenium: A powerful tool for automating web browsers, Selenium is ideal for conducting functional tests on Apache Fineract’s web interfaces.
- Postman: For API testing, Postman allows testers to create, share, test, and document APIs, which is valuable for testing Fineract’s RESTful APIs.
Integration Testing
It is important to test that Apache Fineract integrates seamlessly with other systems and third-party services like payment gateways, SMS gateways, and mobile apps. Know about integration testing vs. end-to-end testing.
- Testing the integration with payment gateways to ensure transactions are processed securely and accurately.
- Verifying the integration with mobile banking apps, ensuring that data flows correctly between the app and Fineract backend.
Supporting Tools
- Apache JMeter: Useful for both load testing and integration testing, JMeter can simulate a heavy load on a network or object to test its strength or to analyze overall performance under different load types.
- SoapUI: Though more focused on SOAP web services, SoapUI can also be used for RESTful API testing and is useful for testing Fineract’s web services integration capabilities.
Performance Testing
To evaluate the system’s performance under various conditions and workloads to ensure it can handle expected and peak loads.
- Simulating thousands of concurrent users to test system behavior and response times during high traffic.
- Load testing the database operations ensures the system can handle large volumes of transactions without degradation in performance.
Supporting Tools
- Apache JMeter: Apart from integration testing, JMeter is excellent for performance testing, capable of simulating multiple users with concurrent requests to test the scalability and performance of web applications.
- Gatling: It is an open-source load testing tool designed for analyzing and measuring the performance of services. Gatling can be used for stress testing Fineract, especially its RESTful APIs.
Security Testing
It is required to identify vulnerabilities within the system and ensure that data is protected against unauthorized access.
- Conducting penetration testing to uncover security weaknesses.
- Testing for SQL injection, cross-site scripting (XSS), and other common security threats.
Supporting Tools
- OWASP ZAP (Zed Attack Proxy): It is an open-source web application security scanner. ZAP is excellent for finding vulnerabilities in web applications, including those built with Apache Fineract.
- Fortify: Offers comprehensive static and dynamic security testing of software code. It helps identify security vulnerabilities in the Fineract platform.
Usability Testing
It is required to check that the application is user-friendly and aligns with the needs of its target users, including administrators, financial officers, and end-users.
- Gathering feedback from a group of microfinance institution (MFI) workers. One case is feedback about the ease of use of loan management features.
- Testing the mobile app interface with actual users to evaluate navigational ease and clarity of information.
Supporting Tools
- UserTesting: Provides real-time feedback from users, which can be invaluable for usability testing of Fineract’s user interfaces and overall user experience.
- Lookback: Offers a set of tools for conducting live or recorded user testing sessions. It provides insights into how real users interact with your application.
Regression Testing
Verifies that new code changes and bug fixes do not adversely affect existing functionalities.
- Running the entire test suite after updates are made to the loan or savings module to ensure that existing functionalities are not broken.
Supporting Tools
- Selenium: For automating web browsers, Selenium can also be effectively used for regression testing. It helps in ensuring that new changes do not break existing functionality. However, here are 11 reasons why not to use Selenium because better tools are available. We will see that in the next section.
- TestNG: A testing framework designed to cover all categories of tests: unit, functional, end-to-end, integration, etc., making it suitable for regression testing.
Compliance Testing
Compliance testing is more about adherence to standards and regulations than specific tools. However, organizations and products like Qualys and Nessus provide security and compliance solutions. They can help identify vulnerabilities and ensure systems comply with specific security standards.
Role of AI and Test Automation
Considering the complexity and the services that are being provided by Apache Fineract, the number of test cases is quite huge. For example, a banking project’s typical code coverage for lending or deposit modules has 10,000 to 20,000 test cases. This is just one module, and a banking project has multiple complex modules. To attain great test coverage, automation testing is a must, that too with testing tools supporting parallel testing.
Firstly, the financial application is complex, and then creating test scripts for this application with good code coverage in a programming language is daunting. Here, you need support from intelligent automation testing tools such as testRigor. It allows you to write test cases in plain English through generative AI. Also, it does not use flaky CSS/XPath locators. It uses a unique and easy way to identify elements on UI. Just mention the text as you see on the screen to identify any element.
login click "My accounts" click on exactly "More" wait 3 sec click "profile" click "payment method" verify page contains "payment method" verify page contains "visa" or "amex" verify page contains "add payment method"
You can see how simple writing test cases is for even a complex module. testRigor makes it simple for everyone in your team to contribute to testing activities irrespective of their programming skills. Here are a few features which will help you in testing Apache Fineract applications with testRigor:
-
File Upload/ Download: You can simply upload or download files using simple English commands:
enter "<FILE_URL>" into file input "fileField" check that file "instruction.pdf" was downloaded
-
API Testing: Call API and provide all required information in a single command and verify the response as:
call api post "http://dummy.restapiexample.com/api/v1/create" with headers "Content-Type:application/json" and "Accept:application/json" and body "{\"name\":\"James\",\"salary\":\"123\",\"age\":\"32\"}" and get "$.data.name" and save it as "createdName" and then check that http code is 200
-
2FA Authentication, SMS, Phone Call Testing: testRigor provides simple commands to perform 2FA authentication, sending/receiving SMS, phone calls, email testing, and many more such features.Phone Call Example: Call a number and assert if it was picked:
call "+15344297154" and validate it was picked up
Email Example: Send an email and check that it was deliveredsend email to "user@customer.com" with subject "Test message" and body "Hi, this is a test, this is just a test message." check that email from "user@customer.com" is delivered
- Data-driven Testing: You can easily create datasets in testRigor for data-driven testing. Also, you can create datasets by importing data from CSV or MS Excel files. testRigor also provides in-built data templates to generate unique data such as names, email, phone numbers, credit card numbers, SSNs, etc. Here is a cautionary guide about online fake credit card number generators.
- Reusable Rules (Subroutines): If you have a test steps sequence that will be used often, you can save it as a Reusable Rule and refer to it with the English name. Just write the name to call it, and the steps will be executed.
See a reusable rules example here.
Read about other powerful capabilities of testRigor that might help you.
Conclusion
Apache Fineract’s API-based functionality enables Fintech companies to develop services and integrate with various interfaces and service providers. This Open API movement is transforming the services of lenders, insurance companies, banks, KYC, etc. Its flexibility, affordability, scalability, and ease of use have made it popular globally.
Choosing the complimenting testing tools will make the whole testing process easy and convenient. With intelligent tools like testRigor, you can focus more on creating robust test cases than debugging and maintaining the test script code. With its simplicity, everyone on your team can join the testing bandwagon, quickly and efficiently delivering a high-quality product.